PILまたはopencv2を使用して、フォルダ内の複数の画像を切り抜きたいと思います。しかし、私は画像と同じファイル名を持つテキストファイルの次元を持っています。 私のファイル名は1_a.jpg、寸法(top left.x、width、top left.x、height)は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)
を私はあなたが2つのグロブ呼び出しが同じ順序で* .txtファイルと* .PNGファイルを返すことを想定していると思うが、それはあります必ずしも真実ではない。 (1)* .txtのループ中に、f [-4](ファイル名のマイナス '.txt')をキーとしてデータを辞書に格納します。例えば、d [f [ -4]] =小さい。その後、* .pngのループ中にd [f [-4]]にアクセスしてデータを取得します。 (2)ループを* .txtファイルにスキップし、* .pngファイルをループしている間に.txtファイルを読み込みます。 'f_text = open(f [-4] + '。txt')' –
ありがとう!それは助けて! – Praveen