我想使用PIL或opencv2在我的文件夾中裁剪多個圖像。但是,我在文本文件中具有與圖像文件名相同的尺寸。 所以,假設我的文件名是1_a.jpg,尺寸(左上角,左上角,左上角,上方左側,高度)在1_a.txt文件中。 因此,我的程序必須迭代每個文件,選擇尺寸並裁剪圖像。 我正在使用類似的設置,我試圖在列表中追加所有維度,然後嘗試在裁剪時迭代指向列表的圖像,但是它不起作用。 請幫忙。使用從txt文件中提取的維度裁剪圖像
找到我下面的代碼: -
for f in glob.glob(os.path.join(faces_folder_path, "*.txt")):
file = open(f)
small=[]
data= file.read()
print type(data)
small.append(data.rstrip('\n'))
print small
print small[1]
print type(small)
x.append(small)
print type(x)
print x
# print type(list)
# print list
# # print x
# x.append(list)
# for i,val in enumerate(x):
# print val[0]
for f in glob.glob(os.path.join(faces_folder_path, "*.png")):
imgfile = f[53:75]
print imgfile
img=cv2.imread(imgfile)
cv2.imshow('image',img)
print (x[i])
print type(x[i])
# new_image=img[x[i]]
# cv2.imshow('cropped',new_image)
# cv2.imsave('imgfile',new_image)
i+=1
cv2.waitKey(0)
我想你是假設兩個水珠調用將返回以相同的順序* .txt和* .png文件,但這是不一定是真的。有兩件事情可能會有所幫助:(1)遍歷* .TXT期間,存放在以f詞典數據[-4](文件名減去「.txt文件」)爲重點,例如,d [F [ -4]] =小。然後在* .png循環期間,通過訪問d [f [-4]]來檢索數據。 (2)跳過的* .txt文件的循環,只是讀.txt文件,而你是循環在* .png文件。你可能喜歡的東西'f_text =開做到這一點(F [-4] + 'TXT')' –
謝謝!這有幫助! – Praveen