我尝试使用cv2,PIL,scipy使用python加载和保存图像,但是保存的图像与原始图像相比颜色有所不同。
我正在加载并保存tif格式,所以我希望没有颜色变化。
链接到我正在使用的图像: https://data.csail.mit.edu/graphics/fivek/img/tiff16_c/a0486-jmac_MG_0791.tif
the difference between loaded image and saved image is:
您能帮助我了解我做错了什么吗?为什么颜色会改变?
更新: 问题是因为图像是原色rgb颜色。 有谁知道我如何将一批照片从prophoto rgb转换为rgb?
谢谢, yoav
选项1:
img = imread(file_name)
imsave('imread.tif', img)
选项2:
img = cv2.imread(file_name)
cv2.imwrite('cv2.tif', img)
选项3:
img = Image.open(file_name)
img.save('pil.tif')
答案 0 :(得分:0)
我思考 OpenCV对计算机视觉更感兴趣-即检测和测量对象等而不是打印或高质量的图像复制,编辑和打印,因此它几乎忽略了ICC配置文件。如果有人知道的更好,我很乐意得到纠正。
您可以使用 ImageMagick 将图像从一种格式转换为另一种格式,并执行许多其他操作,其中之一是更改颜色配置文件。因此,我认为,如果您转到this website并下载sRGB配置文件(我选择了第一个名称为“ preference” 的配置文件)并将其另存为sRGB.icc
,您可以在终端中使用以下命令将ProPhoto图像之一更改为普通sRGB图像:
convert input.tif -profile sRGB.icc output.tiff
尝试一下,看看是否可行。如果是这样,制作图像的副本,然后在副本上运行mogrify
一口气完成全部工作-请小心并像我建议的那样进行复制,因为这样做会非常快速更改您的所有图片...
magick mogrify -profile sRGB.icc *tif
您可以使用 ImageMagick 的identify
命令来查看嵌入的配置文件以及有关图像的其他信息的负载:
magick identify -verbose OneOfYourImages.tiff