基于opencv库把图像灰度化,二值化

1.灰度化:

在openCV中,通过cvtColor函数实现图像灰度化,格式为:

cv2.cvtColor(src,code[,dst[,dstCn]])

其中src表示输入的图像,没有默认值。

code表示颜色空间类型。

dst表示输出的图像,没有默认值。

dstCn表示目标图像数据通道数,没有默认值。

(1)那么下面把图像灰度化:

原图:


基于opencv库把图像灰度化,二值化_第1张图片

代码:

import cv2
src=cv2.imread('D:\pht/Taylor.jpg')
gray=cv2.cvtColor(src,cv2.COLOR_BGR2GRAY) #彩图转为灰度图
cv2.imwrite('D:\pht/Taylor1.jpg',gray) # 将图像写出到磁盘中

运行后的图片为:

基于opencv库把图像灰度化,二值化_第2张图片

 

(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)

运行后的图为:

基于opencv库把图像灰度化,二值化_第3张图片

 

你可能感兴趣的:(opencv,计算机视觉,图像处理)