簡體   English   中英

打開過程並將特定圖像保存在相關文件夾中

[英]Open process and save specific images in related folder

我正在尋找一種打開並裁剪多個tiff圖像,然后將創建的新裁剪圖像保存在同一文件夾(與我的腳本文件夾相關)中的方法。

我當前的代碼如下所示:

from PIL import Image
import os,platform

filespath = os.path.join(os.environ['USERPROFILE'],"Desktop\Python\originalImagesfolder")

for file in os.listdir(filespath):
    if file.endswith(".tif"):
        im = Image.open(file)
        im.crop((3000, 6600, 3700, 6750)).save(file+"_crop.tif")

該腳本向我返回錯誤:

追溯(最近一次通話):

文件“ C:\\ Users ... \\ Desktop \\ Python \\ script.py”,第22行,位於im = Image.open(file)
打開文件“ C:\\ Python34 \\ lib \\ site-packages \\ PIL \\ Image.py”,行2219 fp = builtins.open(fp,“ rb”)FileNotFoundError:[Errno 2]沒有這樣的文件或目錄:' Image1Name.tif'

“ Image1Name.tif”是我嘗試在文件夾中處理的第一個tif圖像。 我不知道該腳本如何在找不到文件的情況下給出文件名。 有幫助嗎?

PS:我有2天的python和一般代碼經驗。 對不起,如果答案很明顯

[編輯/更新]借助vttran和ChrisGuest的答案修改了我的初始代碼后,將其轉換為:

from PIL import Image
import os,platform

filespath = os.path.join(os.environ['USERPROFILE'],"Desktop\Python\originalImagesfolder")

for file in os.listdir(filespath):
    if file.endswith(".tif"):
        filepath = os.path.join(filespath, file)
        im = Image.open(filepath)
        im.crop((3000, 6600, 3700, 6750)).save("crop"+file)

該腳本向我返回了新的錯誤消息:

追溯(最近一次通話):
在im.crop((3000,6600,3700,6750))中的文件“ C:/ Users /.../ Desktop / Python / script.py”,第11行,.save(“ crop” + file)
作物self.load()中的文件“ C:\\ Python34 \\ lib \\ site-packages \\ PIL \\ Image.py”,行986
加載self.load_prepare()中的文件“ C:\\ Python34 \\ lib \\ site-packages \\ PIL \\ ImageFile.py”,行166
文件“ C:\\ Python34 \\ lib \\ site-packages \\ PIL \\ ImageFile.py”,行250,處於load_prepare self.im = Image.core.new(self.mode,self.size)ValueError:無法識別的模式

可能有用的信息,它是GeoTiff格式的Landsat8圖像。 因此,TIFF文件包含地理,投影...信息。 如果我首先打開並使用Photoshop之類的軟件(16int tiff格式)重新保存腳本,則腳本可以正常工作。

搜索文件名時,可以使用filespath指定目錄。

但是,當您打開文件時,僅使用基本文件名。

所以你可以更換

im = Image.open(file)

filepath = os.path.join(filespath, file)
im = Image.open(filepath)

還可以考慮使用glob模塊,就像可以做glob.glob(r'path\\*.tif) 避免將諸如file類的內置函數用作變量名也是一個好習慣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM