我有这个功能,获取视频,提取一帧并保存为图像,如果我使用cv2.write它完美地工作(但我无法设法使它与py2exe或Pyinstaller一起工作),所以我现在尝试使用PIL,当我用PIL保存帧时,图像颜色是错误的,通常绿色和红色都有蓝色酊剂。无法使用正确的颜色设置PIL保存创建的图像
from PIL import Image
# import cv2
def getThumbnail(video):
cap = cv2.VideoCapture(video)
cap.set(1, 150)
ret, frame = cap.read()
im = Image.fromarray(frame)
print (im, im.format, "% dx%d" % im.size, im.mode)
im.save(video.split(".")[0] + '.mp4' +'.jpg', icc_profile=im.info.get('icc_profile'))
# cv2.imwrite(video.split(".")[0] + '.mp4.jpg', frame)
感谢您的帮助。
相同的结果,根据手册: 格式 - 可选的格式覆盖。如果省略,则使用的格式由文件扩展名确定。如果使用文件对象而不是文件名,则应始终使用此参数。 所以,即使我不添加“JPEG”,它仍然应该使用正确的参数作为结尾是.jpg – Angrod
您尝试省略第三个参数('icc_profile = ...')吗? – MarianD
是的,我添加它,因为这个元数据浏览器:http://exif.regex.info/exif.cgi说,它没有色彩空间元数据,没有嵌入颜色配置文件,所以我可能是问题是它错过了数据,但它没有任何区别...... – Angrod