您的位置:首页 > 运维架构

opencv基本操作(五)

2018-03-09 21:12 134 查看
以下这一节不会再像之前那样详细介绍,主要是以理解概念为主,关于API介绍或者程序在视频中都有,以后用到知道去哪里找即可。
(一)拉普拉斯算子
作为一个卷积核,这是一个二阶的算子,是用来提取边缘的,主要是利用一阶导数最大的地方二阶导数为0这个特征来进行边缘提取,但是这个算子的噪声很明显。
处理的流程:先高斯模糊去掉噪声,在转换为灰度图像,在拉普拉斯二阶导数计算,取绝对值,显示结果。
(二)canny算子
这是一个很好的边缘检测算子,这个算法的主要步骤为,先高斯模糊,在灰度转换,在计算梯度(sobel,或者scharr),在进行非最大信号抑制,在进行高低阈值连接,输出二值图像。
(三)霍夫直线变换(当检测的直线不连续时候,增加API 的最后一个参数)
霍夫直线变换是用来做直线检测的,前提条件是边缘检测已经完成,霍夫空间本质上是极坐标空间,平面空间(或坐标)是图像的空域,所以霍夫变换就是平面空间到极坐标空间的变换。
霍夫变换的原理:属于同一条直线上点在极坐标空间必然有一个最强的信号出现,根据此反算到直线上各点的像素坐标,从而得到直线。
HoughLines这个API从平面坐标转换到霍夫空间,最终输出的是极坐标空间。
HoughLinesP这个API最终输出的是直线的两个点
(四)像素重映射
把输入图像中各个像素按照一定的规则映射到另外一张图像的对应位置上去,形成一张新的图像。
g(x,y)=f(h(x,y)),g表示重映射之后的图像,h是功能函数,f是源图像
(五)直方图、直方图均衡化(这一节视频讲的很好,但是不知道为什么视频截图不能放在博客里。。。)
图像直方图,是指对整个图像在灰度范围内的像素值(0-255)统计出现频率次数,据此生成的直方图,称为图像直方图,图像直方图反映了图像灰度的分布,是图像的统计学特征。



直方图均衡化 是一种提高图像对比度的方法,拉伸图像灰度值的范围。其实是通过像素重映射实现的,API equalizeHist(src,dst):
src表示8位单通道图像,dst表示输出结果。



对于图像梯度,每个像素的角度、等一切图像的属性值,我们都可以建立直方图,不过基于像素值的直方图是最常见的。
直方图的属性:dims表示维度,对灰度图像来说只有一个维度,dims=1
bins表示维度中子区域划分的大小,bins=256,划分256个等级,bins=16,划分16个等级,每个等级16个跨度,range表示取值范围,灰度值范围为0-255. 

直方图比较:对输入的两张图像,计算得到直方图H1,H2,归一化到相同的尺度空间,然后可以通过计算H1与H2之间的距离,得到两个直方图的相似程度,进而比较图像本身的相似程度。
比较方法:Correlation 相关性比较
          Chi-Square 卡方比较
         Intersection 十字交叉性
     还有一种是巴氏距离。

流程:先把图像从RGB彩色空间转换到HSV彩色空间,在计算图像的直方图,然后归一化到【0-1】之间,然后使用上述四种比较方法之一进行比较。
直方图反向投影:反映了直方图模型在目标图像中的分布情况,就是利用直方图模型去目标图像中寻找是否有类似的图像,通常用HSV色彩空间的HS两个通道直方图模型。



反向投影的步骤为:建立直方图模型;计算待测图像直方图并映射到模型中;从模型反向计算生成图像。

(六)模板匹配
模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域。所以模板匹配首先需要一个模板图像(给定的子图像),另外需要一个待检测的图像(源图像),工作方法就是在带检测图像上,从左到右,从上到下,计算模板图像与重叠子图像的匹配程度,匹配程度越大,两者相同的可能性越大。
轮廓发现:是基于图像边缘提权的基础寻找对象轮廓的方法,边缘提取的阈值选定会影响最终轮廓发现的结果。整个流程:
输入图像转为灰度图像,使用canny进行边缘提取,得到二值图像,寻找轮廓,绘制轮廓。
凸包:









过程:首先图像转换为灰度,然后转换为二值,然后发现轮廓得到候选点,凸包调用API,绘制显示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv