基于opencv库把图像灰度化,二值化
1.灰度化:
在openCV中,通过cvtColor函数实现图像灰度化,格式为:
cv2.cvtColor(src,code[,dst[,dstCn]])
其中src表示输入的图像,没有默认值。
code表示颜色空间类型。
dst表示输出的图像,没有默认值。
dstCn表示目标图像数据通道数,没有默认值。
(1)那么下面把图像灰度化:
原图:
代码:
import cv2 src=cv2.imread(D:pht/Taylor.jpg) gray=cv2.cvtColor(src,cv2.COLOR_BGR2GRAY) #彩图转为灰度图 cv2.imwrite(D:pht/Taylor1.jpg,gray) # 将图像写出到磁盘中
运行后的图片为:
(2)灰度化的代码也可以写为:
gray=cv2.imread(D:pht/Taylor.jpg,0) #将彩图灰度化并读取 cv2.imwrite(D:pht/Taylor2.jpg,gray)
运行后的图跟上面的灰度图一样。
2.二值化:
在OpenCV中,通过threshold函数实现图像的二值化,格式如下:
ret, dst=cv2.threshold(src, thresh, maxval, type[, dst])
其中,src表示输入的图像,没有默认值。
thresh表示阈值的大小,没有默认值。
maxval表示大于阈值的设置的颜色,没有默认值。
type表示阈值处理方法。其中常用的有:
cv2.THRESH_BINARY #表示将灰度图进行二值化
cv2.THRESH_BINARY_INV #表示将灰度图进行反二值化。
二值化的代码如下:
import cv2 src=cv2.imread(D:pht/Taylor.jpg) gray=cv2.cvtColor(src,cv2.COLOR_BGR2GRAY) #彩图转换为灰度图 ret,binary=cv2.threshold(gray,127,255,cv2.THRESH_BINARY) #输入灰度图,实现图像二值化 cv2.imwrite(D:pht/Taylor3.jpg,binary)
运行后的图为:
