我现在正在从这个git学习Opencv
https://github.com/ageitgey/face_recognition/blob/master/examples/facerec_from_webcam_faster.py
并添加一些代码来捕获图像,它确实捕获并将图像保存到我指定的路径,但是不显示所保存的图像(对不起,我不确定该怎么称呼),它说不支持此格式文件
![1]:https://ibb.co/zXp7PmY
我尝试将格式文件更改为jpg,bmp,png将这些代码移入/移出for循环添加
top = 200
right = 200
bottom = 200
left = 200
如果不在imshow for循环中
poor_match_index = np.argmax(face_distances)
if matches[poor_match_index]:
cv2.imwrite("tanapat/unknown_" + str(count) + ".jpg", frame[right:left,top:bottom])
unknown = face_recognition.load_image_file("tanapat/unknown_"+ str(count) +".jpg")
unknown_encoding = face_recognition.face_encodings(unknown )[0]
known_face_encodings.append(unknown_encoding)
known_face_names.append("unknown_"+str(count))
name = known_face_names[poor_match_index]
count +=1
break
我试图重复拍摄新面孔并认出它(不要让它继续捕捉同一个人太多帧)
但在线上出现错误
unknown = face_recognition.load_image_file("tanapat/unknown_"+ str(count) +".jpg")
OSError:无法识别图像文件“ tanapat / unknown_0.jpg”
如果您使用
top = 200
right = 200
bottom = 200
left = 200
然后frame[200:200,200:200]
创建一个空数组。
width = right - left = 200 - 200 = 0
height = bottom - top = 200 - 200 = 0
当您保存一个空数组时,您会得到一个空文件-我的Linux为此显示大小0-.jpg
并且您无法打开空文件。
你至少需要
top = 200
bottom = top + 1 # 201
left = 200
right = left + 1 # 201
创建一个像素为-的文件frame[200:201,200:201]
。
如果print()
用于显示来自imwrite()
print(cv2.imwrite(...))
那么您将获得False
保存文件时遇到的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句