st = cv2.cvtColor(src, code)
st
:返回处理后的图像;
src
:要处理的图像;
code
:转换图片的方式,该参数包含很多空颜色空间转换类型;常用标记举例:
图像色彩模式转换代码示例:
import cv2 #读取图片 filename = C:\Users\username\Desktop\opencv img = cv2.imread(filname + 'picture.jpg') #将图像转换成灰色图像 img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ps:彩色图像与灰色图像的转换是不可逆的。
ret, dst=cv2.threshold(src,thresh,maxval,type)
ret
:当制定了阈值参数thresh,ret就是指定的thresh(一般不用展示,可以随便取);
dst
:处理后的单通道图;
src
:原图片,只能是单通道图片,通常为灰度图(所以说进行阈值分割前,需要将彩色图像转换成灰度图);
thresh
:阈值;
maxval
:最大值,当像素值超过了阈值时自动设置为该值;
type
:操作类型,即如何处理阈值。该参数包含八种类型的阈值化操作;一下列举五种常用类型:
图像阈值分割代码示例:
ret, img2=cv2.threshold(img1,150,250,cv2.THRESH_BINARY) #对图像进行阈值化处理,像素值超过150的自动设置为250
dst = cv2.blur(img, ksize)
dst
:处理后返回的图像;
img
:要进行处理的图像矩阵;
ksize
:均值滤波核的尺寸,一般长设置为(5,5)或(3,3);
均值滤波代码示例:
img = cv2.blur(img,(5,5))
result = cv2.boxFilter(src, depth, ksize, normalize)
result
:处理后返回的图像;
depth
:表示目标图像深度,是int类型,通常用-1表示与原始图像一致;
ksize
:均值滤波核的尺寸,一般长设置为(5,5)或(3,3);
normalize
:该属性表示是否对目标图像进行归一化处理。该属性有两个值,True(进行归一化处理,等价于cv2.blur)和False(实际上为求周围各像素的和。但是这个结果很容易大于255,发生溢出,当溢出时对应像素值置为255);
方框滤波代码示例:
img = cv2.boxFilter(img, -1, (5,5), False)
cv2.GuassianBlur(img, ksize, sigmaX, sigmaY)
img
:要进行处理的图像矩阵;
ksize
:均值滤波核的尺寸,一般长设置为(5,5)或(3,3);
sigmaX
:X方向的标准偏差;
sigmaY
:Y方向的标准偏差;
(ps:如果仅指定了sigmaX,则sigmaY与sigmaX相同。如果两者都为0,则函数根据ksize来自动计算它们的值。)
高斯滤波代码示例:
cv2.GaussianBlur(img, (5,5), 0, 0)
img = cv2.medianBlur(src, ksize)
img
:函数返回的处理结果图像;
src
:要处理的图像;
ksize
:孔径的线性尺寸,若ksize为5,中值滤波器就会使用5×5的范围来计算,即把像素的中心值及其5×5邻域组成了一个数值集,对其进行处理计算,当前像素被其中值替换掉;
(ps:ksize必须是大于1的奇数,比如:3,5,7,9…)
中值滤波代码示例:
img1 = cv2.medianBlur(img, 5)