cv2笔记

部分opencv函数

基础函数

读入图像

cv2.imread(filepath,flags)
filepath: 图片的完整路径
flags: cv2.IMREAD_COLOR 默认参数,彩色图片,忽略alpha通道;
cv2.IMREAD_GRAYSCALE 灰度图片;
cv2.IMREAD_UNCHANGED 完成图片,包括alpha通道;

显示图像

cv2.imshow(wname,img)
wname: 显示图片的窗口名称
img: 显示的imread读入的图片

保存图像

cv2.imwrite(file,img,num)
file: 要保存的文件名
img: 要保存的图像
num: 压缩级别, 默认为3(对于JPEG,可用0-100整数调整图像质量,默认为95)

图像颜色空间转换

cv2.cvtColor()
ps: img = cv2.cvtColor(img, toImg)
img: 原来图像
toImg: cv2.COLOR_‘X’2‘Y’: X,Y = RGB,BGR,GRAY,HSV,YCrCb,XYZ,Lab,Luv,HLS;
ps: cv2.cvtColor(img,cv2.COLOR_RGB2BGR)

图像大小变更

cv2.resize(src,newImg,dsize)
src: 原来图像
newImg: 将生成的图像(可省略)
dsize: 转换后的大小 ps: cv2.resize(src,(x,y)) x:列,y:行
cv2.resize(src,dsize,fx,fy) # dsize或fx,fy, 两者设置其一即可
fx,fy: 以1为基础的倍数,用来放大缩小,fx: 水平方向, fy: 垂直方向
ps: b=cv2.resize(a,None,fx=0.5,fy=0.7)

图像翻转

cv2.flip(img,flipcode)
img: 用于翻转的图像
flipcode: 翻转的方式: flipcode = 0: 沿x轴翻转(上下翻转);
flipcode < 0: 沿x,y轴同时翻转;
flipcode > 0: 沿y轴翻转(左右翻转);

阈值分割

retval, dst = cv2.threshold(src,thresh,maxval,type)
retval: 阈值 src: 原图像
dst: 处理结果 thresh(threshold): 阈值
maxval: 最大值
type: 类型 cv2.THRESH_BINARY 二进制阈值化(阈值上变maxval下变0)
cv2.THRESH_BINARY_INV 反二进制阈值化(阈值上变0下变maxval)
cv2.THRESH_TRUNC 截断阈值化(阈值上变阈值) 亮转阈值
cv2.THRESH_TOZERO_INV 反阈值化为0(阈值上变0) 亮变0
cv2.THRESH_TOZERO 阈值化为0(阈值下变0) 暗变0

滤波

均值滤波

cv2.blur(img,coreSize)
img: 原图像
coreSize: 核大小: (x,y): x:高度,y:宽度
ps: newImg = cv2.blur(img,(5,5))

方框滤波

res = cv2.boxFilter(img,deep,coreSize,normalize)
res: 处理结果 img: 原图像
deep: 目标图像深度: int类型的目标图像深度,用"-1"表示与原始图像一致
core Size: 核大小 (x,y)
normalize: 是否对目标图像进行归一化处理
ps: r = cv2.boxFilter(img,-1,(5,5),normalize=1)
与 r = cv2.blur(img,(5,5)) 和 r = cv2.boxFilter(img,-1,(5,5))相同

高斯滤波

cv2.GaussianBlur(src,ksize,sigmaX)
src: 原图片
ksize: 核大小 (N,N): N必须为奇数
sigmaX: x方向方差,控制权重 sigmaX=0时: sigma = 0.3*((ksize-1)*0.5-1)+0.8
ps: dst = cv2.GaussianBlur(img,(3,3),0)

中值滤波

cv2.medianBlur(src,ksize)
src: 原图片
ksize: 核大小(奇数)
ps: r = cv2.medianBlur(img,3)

图像处理

图像腐蚀

cv2.erode(src,kernel,iterations)
src: 原图像
kernel: 卷积核 kernel = np.ones((5,5),np.uint8) 5行5列全为1的数组, np.uint8表整形数据类型
iterations: 迭代次数, 默认为1

图像膨胀

cv2.dilate(src,kernel,iterations)
与图像腐蚀相同的参数,可以先腐蚀然后膨胀去除毛边(开运算)。

开运算

cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)
img: 原图像
cv2.MORPH_OPEN: 进行开运算
kernel: 卷积核: kernel = np.ones((5,5),np.uint8) 卷积核变大,腐蚀膨胀更厉害

闭运算

cv2.morphologyEX(img,cv2.MORPH_CLOSE,kernel)
(膨胀后腐蚀)
与开运算对立但公式相同,根据第二个参数不同来区分, cv.MORPH_CLOSE:闭; cv.MORPH_OPEN:开

梯度运算

cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel)
同属于morpholpgyEx公式, 不同的是第二个参数设置为梯度运算, 值为原图片膨胀减去原图片腐蚀

礼貌运算

cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)
(只获取噪声: 原图像减去开运算图像)

黑帽运算

cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)
(取反噪声: 闭运算减去原图像)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值