OpenCV4图像处理算子不完全手册-进阶篇(已完结)

说明

本文主要是记录我在学习和使用OpenCV4过程中对常用算子的记录和简单描述,如描述有误请留言指正,我会持续进行完善!示例代码为C++编写,仅供参考。注意,为节省篇幅,函数中省略了参数类型和返回值,实际使用时参考opencv的接口说明即可!因版本不同而出现的接口和参数差异问题,请以具体版本为准,作者使用的opencv版本为最新版。

导航

OpenCV4图像处理算子不完全手册-入门篇
OpenCV4图像处理算子不完全手册-应用篇

正文

三、图像直方图与模板匹配

1、直方图统计

calcHist(images, nimages, channels, mask, hist, dims, histSize, ranges, uniform, accumulate)

参数说明:
images 待统计直方图的图像数组
nimages 输入图像的数量
channels 需要统计的通道索引数组
mask 可选的操作掩码
hist 输出的统计直方图结果,是一个维度为dims的数组
dims 需要计算的直方图的维度,一般灰度图像为1
histSize 存放每个维度直方图的数组的尺寸,如0~255就是256个级别
ranges 每个图像通道中灰度值的取值范围,如0~255
uniform 直方图是否均匀的标志符,默认为true
accumulate 是否累积统计直方图的标志,主要用于多个图像统计多个图像整体的直方图

2、直方图操作

直方图归一化,灰度值的概率分布
normalize(src, dst, alpha, beta, norm_type, dtype, mask)

参数说明:
alpha 在范围归一化的情况下,归一化到下限边界的标准值
beta 归一化时的上限范围,不用于标准规范化
norm_type 归一化过程中数据范数的种类标志
dtype 输出数据类型的选择标志

直方图比较
compareHist(H1, H2, method)//比较H1和H2,method为比较的方法

3、直方图的应用

直方图均衡,提高对比度
equalizeHist(src, dst)

4、图像模板匹配

matchTemplate(image, temp, result, method, mask)

参数说明:
image 待匹配的图像,仅支持CV_8U和CV_32F类型
temp 用于匹配的模板图像
result 匹配结果的输出图像,数据类型为CV_32F
method 选择的匹配方法

//匹配结束后在result中寻找最值和对应的位置,根据模板的大小进行绘制
double maxVal, minVal;
Point minLoc, maxLoc;
minMaxLoc(result, &minVal, &maxVal, &minLoc, &maxLoc);
//绘制最佳匹配区域,使用最大/最小值取决于使用的匹配方法标志
rectangle(img, cv::Rect(maxLoc.x, maxLoc.y, temp.cols, temp.rows), Scalar(0, 0, 255), 2);

四、图像滤波

1、线性滤波

均值滤波
blur(src, dst, ksize, anchor, borderType)

参数说明:
ksize 卷积核大小,即滤波器的尺寸大小,Size(w,h)
anchor 内核的基准点,即锚点,默认值(-1,-1)为内核的中心。
borderType 像素外推法选择标志

方框滤波
boxFilter(src, dst, ddepth, ksize, anchor, normalize, borderType)

参数说明:
ddepth 输出图像的数据类型深度,设置-1自动确定
normalize 是否将卷积核进行归一化,默认为true
其他参数同均值滤波

高斯滤波
GaussianBlur(src, dst, ddepth, ksize, sigmaX, sigmaY, borderType)

参数说明:
sigmaX X方向的高斯滤波器标准偏差
sigmaY Y方向的高斯滤波器标准偏差
其他参数同均值滤波

2、非线性滤波

中值滤波
medianBlur(src, dst, ksize)//主要用于去除椒盐噪声
双边滤波
bilateralFilter(src, dst, d, sigmaColor, sigmaSpace, borderType)//滤除噪声的同时,保持边缘清晰

参数说明:
d 滤波过程中每个像素邻域的直径
sigmaSpace 颜色空间滤波器的标准差值
sigmaSpace 空间坐标中滤波器的标准差值

3、边缘检测

拉普拉斯
Laplacian(src, dst, ddepth, ksize, scale, delta, borderType)//对噪声敏感,一般先使用高斯滤波去噪

参数说明:
ddepth 输出图像的数据类型深度,设置-1自动确定
ksize 滤波器的大小,必须设置正奇数
scale 导数结果缩放因子,默认为1不缩放
delta 偏值,在计算结果中附加的

坎尼
Canny(image, edges, threshhold1, threshhold2, apertureSize, L2gradient)//对噪声不敏感,效果较好

参数说明:
image 输入图像,仅支持CV_8U类型
edges 输出图像,与image尺寸和数据类型相同的单通道图像
threshhold1 第一个滞后阈值
threshhold2 第二个滞后阈值
apertureSize Sobel算子的直径
L2gradient 计算图像梯度幅值方法的标志

五、图像形态学

1、连通域

连通域统计
*原型1connectComponents(image, labels, connectivity, ltype, ccltype)//返回值为二值图像中连通域的个数
*原型2connectComponents(image, labels, connectivity = 8, ltype = CV_32S)//简化版本,带默认参数

参数说明:
image 输入图像,二值化后的图像,仅支持CV_8U类型
labels 标记不同连通域后的输出图像
connectivity 标记连通域时使用的邻域种类,有4邻域和8邻域
ltype 输出图像的数据类型,支持CV_32S和CV_16U
ccltype 标记连通域时使用的算法标志

连通域统计信息
*原型1connectComponentsWithStats(image, labels, stats, centroids, connectivity, ltype, ccltype)
*原型2connectComponentsWithStats(image, labels, stats, centroids, connectivity = 8, ltype = CV_32S)

参数说明:
stats 含有不同连通域统计信息的矩阵,CV_32S,每一行代表一个连通域的统计特性
centroids 每个连通域的质心坐标,CV_64F

2、腐蚀与膨胀

结构元素
getStructuringElement(shape, ksize, anchor = Point(-1,-1))//计算结构元素,用于腐蚀/膨胀

参数说明:
shape 生成结构元素的种类
ksize 结构元素的尺寸
anchor 结构元素的中心点,默认(-1,-1)为几何中心

图像腐蚀
erode(src, dst, kernel, anchor = Point(-1,-1), iterations = 1, borderType = BORDER_DEFAULT, borderValue = morphologyDefaultBorderValue())

参数说明:
kernel 用于腐蚀操作的结构元素,可自定义或由getStructuringElement得到
anchor 结构元素的中心点,默认(-1,-1)为几何中心
iterations 腐蚀的迭代次数
borderType 像素外推法选择标志
borderValue 使用边界不变外推法的边界值

图像膨胀
dialate(src, dst, kernel, anchor = Point(-1,-1), iterations = 1, borderType = BORDER_DEFAULT, borderValue = morphologyDefaultBorderValue())

3、形态学应用

形态学操作
morphologyEx(src, dst, op, kernel, anchor = Point(-1,-1), iterations = 1, borderType = BORDER_DEFAULT, borderValue = morphologyDefaultBorderValue())

参数说明:
op 形态学操作类型的标志,可选腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算、黑帽运算、击中击不中运算

图像细化,骨架提取
thinning(src, dst, thinningType = THINNING_ZHANGSUEN)//thinningType为细化算法选择标志
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值