我现在正在从这个git学习Opencv
https://github.com/ageitgey/face_recognition/blob/master/examples/facerec_from_webcam_faster.py
并添加一些代码来捕获图像,它确实捕获并将图像保存到我指定的路径 但是它不显示保存的图像(抱歉,我不确定该怎么称呼),它说不支持此格式文件
我尝试将格式文件更改为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”
答案 0 :(得分:0)
如果您使用
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对此.jpg
显示大小为0,并且您无法打开空文件。
您至少需要
top = 200
bottom = top + 1 # 201
left = 200
right = left + 1 # 201
创建一个像素为frame[200:201,200:201]
的文件。
如果您使用print()
显示imwrite()
的结果
print(cv2.imwrite(...))
如果保存文件有问题,您将得到False
。