今天在尝试open-cv的使用过程中,我用画出创建了一张5*5象素大小的红色纯色图片,分别保存成jpg和png,结果发现两张图片的颜色还不一样。
import cv2
as cv
img
= cv
.imread
('red.png')
print('图片尺寸:', img
.shape
)
print('图片数据为:\n',img
)
输出结果:
图片尺寸:
(5, 5, 3)
图片数据为:
[[[ 0 0 255]
[ 0 0 255]
……
当我换成jpg时,读取结果为:
图片尺寸:
(5, 5, 3)
图片数据为:
[[[ 0 0 254]
[ 0 0 254]
……
这样子就产生了一问题,假如是以图找图的话,如果用的是jpg,可能会发生找不到的情况,因为jpg会改变原始图片的颜色,百度搜索jpg的压缩原理,也可以知道这一点。所以以后使用的话尽量用png格式来处理电脑上的图片。
最后,我又试了下: 用画图做了一张这样的图片: 5*5象素,每一行一种不同的颜色,外面的边框是我截图产生的,不是原本的图片,原始的图片太小,上传上来根本看不到: 保存成jpg后变成这样了: 这区别简直太大了,中间的粉红色完全变没了,所以如果在程序中遇到jpg的颜色不对的话,也不用太大惊小怪,可能jpg把原有的颜色给大变样了。
另外,今天还发现一个东西: cv.imread读取的图片数据,颜色值不是常用的rgb,而是bgr, 这个需要注意。