how to fix this"OSError: cannot identify image file " Opencv imwrite doesn't actually save image
how to fix this"OSError: cannot identify image file " Opencv imwrite doesn't actually save image
我现在正在学习 Opencv git
https://github.com/ageitgey/face_recognition/blob/master/examples/facerec_from_webcam_faster.py
并添加一些代码来捕获图像,它确实捕获图像并将其保存到我指定的路径
但它不显示它保存的图像(抱歉,我不知道该怎么称呼它)它说不支持这种格式文件
![1]: https://ibb.co/zXp7PmY
我尝试将格式文件更改为 jpg、bmp、png
移动了 for 循环的这些代码 in/out
添加
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 显示此 .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
。
我现在正在学习 Opencv git
https://github.com/ageitgey/face_recognition/blob/master/examples/facerec_from_webcam_faster.py
并添加一些代码来捕获图像,它确实捕获图像并将其保存到我指定的路径 但它不显示它保存的图像(抱歉,我不知道该怎么称呼它)它说不支持这种格式文件
![1]: https://ibb.co/zXp7PmY
我尝试将格式文件更改为 jpg、bmp、png 移动了 for 循环的这些代码 in/out 添加
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 显示此 .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
。