python+opencv图像处理(二)
----图像变换
自然界中有很多的颜色,红红的花,绿绿的草,蓝蓝的天,白白的云,多姿多彩的世界,美轮美奂的图像。
通过手机,照相机就可以定格每一个美的瞬间。
但是,当把这些景象定格的时候,就被采样、量化成了数字图像了。
数字图像就是计算机当中处理的图像,也是我们所处理的图像。
彩色图像有很多的理论,RGB三基色理论啊,HSI彩色模型啊,那些我也还搞得不是特别清楚,就不在此班门弄斧了。
1、彩色图像转换为灰度图像
在对图像进行处理时,很多时候会将彩色图像转换为灰度图像进行处理。
灰度图像即仅有灰度值的图像,灰度值也就是从0~255共256种值的图像,只是灰度我们人眼分得并不是特别清楚。
果然,古人诚不欺我,世间哪儿有绝对的黑白,你看,图像中都200多种灰呢,反正我是分不清楚的。
opencv中已有函数:
cvtColor()
来进行图像之间的转换。此函数可以在官方文档上查看其解释。本文只使用它。
如下图所示,将就是美女lena变成了灰度图像。
代码如下:
import cv2 as cv
img=cv.imread("E:/image/le.jpg")
cv.imshow("le",img)
gray=cv.cvtColor(img, cv.COLOR_RGB2GRAY)
cv.imshow("gray",gray)
第一行,导入opencv包
第二行,读入图像
第三行,显示图像
第四行,转换为灰度图像
第五行,显示灰度图像
2、彩色图像转换为二值图像
二值图像也是黑白图像,非黑即白的。
它是在灰度图像的基础上,设定一个值,超过这个值为黑,低于这个值为白。
这个值即是网上说的阈值。
Opencv中有函数threshold可完成此功能。
下图即将lena的灰度图像转换为二值图像。
代码如下:
import cv2 as cv
img=cv.imread("E:/image/le.jpg",0)#也可读为灰度图像
cv.imshow("le",img)
ret,dst=cv.threshold(img,55,255,cv.THRESH_BINARY)
cv.imshow("dst",dst)
函数threshold的功能也不止这一种,网上随处可查哦...