ループ内に切り取った画像を保存する際に問題があります。私のコード:画像を異なる名前のループに保存する
def run(self, image_file):
print(image_file)
cap = cv2.VideoCapture(image_file)
while(cap.isOpened()):
ret, frame = cap.read()
if ret == True:
img = frame
min_h = int(max(img.shape[0]/self.min_height_dec, self.min_height_thresh))
min_w = int(max(img.shape[1]/self.min_width_dec, self.min_width_thresh))
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = self.face_cascade.detectMultiScale(gray, 1.3, minNeighbors=5, minSize=(min_h, min_w))
images = []
for i, (x, y, w, h) in enumerate(faces):
images.append(self.sub_image('%s/%s-%d.jpg' % (self.tgtdir, self.basename, i + 1), img, x, y, w, h))
print('%d faces detected' % len(images))
for (x, y, w, h) in faces:
self.draw_rect(img, x, y, w, h)
# Fix in case nothing found in the image
outfile = '%s/%s.jpg' % (self.tgtdir, self.basename)
cv2.imwrite(outfile, img)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
cv2.destroyAllWindows()
return images, outfile
私は顔にトリミングするすべてのフレームのループを持っています。問題は、切り取られたすべての画像と画像で同じ名前が付けられ、最後には最後のフレームからのみ顔があることです。すべての切り抜かれた顔や画像を保存するには、このコードを修正する必要がありますか?あなたはまた、他の技術を使用することができます
from datetime import datetime
outfile = '%s/%s.jpg' % (self.tgtdir, self.basename + str(datetime.now()))
cv2.imwrite(outfile, img)
:として
ありがとう、それはうまくいきます! – GGzet