openCV的imread()函数和imwrite()函数能支持各种静态图像文件格式。
不同系统支持的文件格式不同,但都支持BMP(全称Bitmap, 这是一种与硬件设备无关的图像类型,几乎所有的软件都支持bmp格式,并且能够非常快地读取),通常还支持PNG,JPEG(人们日常碰到的".jpeg"、''.jpg"等指代的是图像数据经压缩编码后在媒体上的封存形式,不能与JPEG压缩标准混为一谈),TIFF格式。
无论哪种格式,每个像素都会有一个值,但不同格式表示像素的方式有所不同。例如,可以通过二维NumPy数组来简单创建
一个黑色正方形图像:
img =numpy.zeros((3,3),dtype=numpy.unit8)
控制台上打印结果如下
array([ [0,0,0],
[0,0,0],
[0,0,0] ],dtype=uint8
)
每个像素都由一个8位整数来表示,即每个像素值的范围是0~255
利用cv2.cvtColor()函数将该图像转换成BGR(blue-green-red)格式
控制台上
array(
[ [ [0,0,0],
[0,0,0],
[0,0,0] ],
[ [0,0,0],
[0,0,0],
[0,0,0] ],
[ [0,0,0],
[0,0,0],
[0,0,0] ] ],
dtype=uint8
)
现在每个像素都由一个三元组
(网上找的图,侵权删)
所以它的返回值可以理解为图像存储格式,有无通道。