Opencv 图像处理:图像基础操作与灰度转化
本文已收录于 Opencv 系列专栏: 深入浅出OpenCV ,专栏旨在详解 Python 版本的 Opencv,为计算机视觉的开发与研究打下坚实基础。免费订阅,持续更新。
图像属性
1.图像格式
图像压缩比: 通过编码器压缩后的图象数字大小和原图象数字大小的压缩比。
- BMP 格式 Windows 系统下的标准位图格式,未经过压缩,一般图像文件会比较大。在很多软件中被广泛应用。 
- JPEG 格式也是应用最广泛的图片格式之一,它采用一种特殊的有损压缩算法,达到较大的压缩比可达到 2:1 甚至 40:1,互联网上最广泛使用的格式 
- GIF 格式不仅可以是一张静止的图片,也可以是动画,并且支持透明背景图像,适用于多种操作系统, 体型很小,网上很多小动画都是 GIF 格式。但是其色域不太广只支持 256 种颜色。 
- PNG 格式与 JPG 格式类似,压缩比高于 GIF (因此 png 损失较小,质量更好),支持图像透明支持 Alpha 通道调节图像的透明度。 
- TIFF 格式它的特点是图像格式复杂、存贮信息多。在 Mac 中广泛使用, 非常有利于原稿的复制。很多地方将 TIFF 格式用于印刷。 
2.图像尺寸
图像尺寸
- 图像尺寸的长度与宽度是以像素为单位的。 
像素
- 像素是数码影像最基本的单位,每个像素就是一个小点,而不同颜色的点聚集起来就变成一幅照片。 
- 灰度像素点数值范围在 0 到 255 之间, 0 表示黑、255 表示白,其它值表示处于黑白之间; 
- 黑白照片只需一个通道表示即可。 
- 彩色图用红、绿、蓝三通道的二维矩阵来表示。每个数值也是在 0 到 255 之间, 0 表示相应的基色,而 255 则代表相应的基色在该像素中取得最大值。 
读入图像 cv2.imread()
参数说明:
第一参数为待读路径;
第二个参数为读取方式,常见读取方式有三种
 
 显示图像 cv2.imshow()
参数说明:
参数 1 :窗口的名字
参数 2 :图像数据名/变量名
也可 matplotlib 导入图像
 
 键盘绑定 cv2.waitKey(0)
删除窗口 cv2.destrovAllWindows()
保存图像 cv2.imwrite()
参数说明:
参数 1 :图像名(包括格式)
参数 2 :待写入的图像数据变量名。
3.图像分辨率
- 分辨率:单位长度中所表达或截取的像素数目。每英寸图像内的像素点数,单位是像素每英寸 (PPI) 。图像分辨率越高,像素的点密度越高,图像越清晰。 
- 通道数:图像的位深度,是指描述图像中每个 pixel 数值所占的二进制位数。 位深度 越大则图像能表示的颜色数就越多,色彩越丰富逼真。 
- 8 位:单通道图像,也就是灰度图,灰度值范围 2**8=256 
- 24 位:三通道 3*8=24 
- 32 位:三通道加透明度 Alpha 通道 
灰度转化
- 目的 
- 将三通道图像(彩色图)转化为单通道图像(灰度图)。 
- 公式 
- 3---->1: GRAY = B * 0.114 + G * 0.587 + R * 0.299 
- 1---->3: R = G = B = GRAY; A = 0 
- 函数: 
- cv2.cvtColor(img,flag) 
- 参数说明 
- 参数 1 :待转化图像 
- 参数 2 :flag 就是转换模式 
- cv2.COLOR_BGR2GRAY :彩色转灰度 
- cv2.COLOR_GRAY2BGR:单通道转三通道 
RGB 与 BGR 转化
Opencv 读取图像是以 BGR 读取的,但是许多包是 RGB 读取,因此有些情况下需要转化。
转化的方法
opencv 自带的方法转
numpy 转
示例:
 
 版权声明: 本文为 InfoQ 作者【timerring】的原创文章。
原文链接:【http://xie.infoq.cn/article/079571708e31a598591ac92b6】。未经作者许可,禁止转载。










 
    
评论