halcon图像滤波(一)halcon实现sobel处理

本文介绍了Sobel滤波在图像处理中的应用,通过理解卷积概念,探讨了Sobel算子在边缘检测中的作用。利用Halcon的sobel_amp函数,展示了如何进行图像边缘检测,并讨论了不同FilterType和Size参数对结果的影响。

首先在网上搜索了什么是sobel:

一、先是理解一下什么是卷积

最容易理解的对卷积(convolution)的解释



文字来解释就是:卷积的其中一方参与者是冲击响应,它所描述的的曲线方向与时间流逝一致。而卷积的输出等于以前的信号效果累加,这个累加必然从当前时间点逆时间流逝方向进行的。很显然,离当前时间越近,那个输入残留在系统中的回响就越大。

转自知乎 

再说说自己对卷积公式的理解,也是每次自己容易困惑的地方:注意公式中的n才是自变量(意义便是n时刻的系统响应),t只是用于积分的,f(n-t)是n时刻时往回倒t单位时间时,也就是(n-t)时刻的信号输入,而h(t)则是f()这个信号对于时间的变化,所以将n时刻前的每个时间的信号输入与其对应的对于时间变化的响应相乘(结合上面图片理解),把这些结果叠加起来就是n时刻获得的响应。

二、然后是对图像处理中的卷积,涉及到一些矩阵的东西

ps:虽然上面对卷积的理解解开了以前一直以来对卷积的困惑,不过在看图像处理中的卷积时感觉好像不一样。。。


关于下面这个文章:

彻底理解数字图像处理中的卷积-以Sobel算子为例

这篇文章前面的概念部分讲得很详细,对几个名词解释也通俗易懂(感觉就是矩阵元素的对应相乘),只是没说sobel算子的gx和gy的具体用法,所以还是不知道这个算法的意义和用处。。。

好在下面这篇文章对sobel的用法和用处有一定的解绍,让我大致理解了sobel的概念

https://www.cnblogs.com/sophia-hxw/p/6088035.html 

也大概知道gx和gy对于结果的差别,举个例子:比如原图是一个方框,用gx计算了垂直梯度后,由于只反映纵向的梯度差异,结果显示出来就只有原来的两条水平的边,相反,如果是用gy计算了水平梯度,由于只反映横向的梯度差,原来的两条垂直边就被反映出来,而水平边因为水平方向上的梯度值都一样就显示不出梯度差。


三、使用halcon中的sobel_amp函数及一系列操作完成图像边缘检测

参考如下链接

Halcon学习(八)边缘检测(一)

不禁感慨,halcon真是简单粗暴啊

关于sobel_amp(Image : EdgeAmplitude : FilterType, Size : )这个函数

read_image (Image, 'fabrik')

sobel_amp (Image, EdgeAmplitude, 'y', 3)
sobel_amp (Image, EdgeAmplitude, 'x', 3)
sobel_amp (Image, EdgeAmplitude, 'sum_abs', 3)
sobel_amp (Image, EdgeAmplitude, 'sum_sqrt', 3)
sobel_amp (Image, EdgeAmplitude, 'sum_sqrt_binomial', 3)
sobel_amp (Image, EdgeAmplitude, 'x_binomial', 3)
sobel_amp (Image, EdgeAmplitude, 'y_binomial', 3)
sobel_amp (Image, EdgeAmplitude, 'sum_abs_binomial', 3)
*sobel_amp (Image, EdgeAmplitude, '', 3)
*sobel_amp (Image, EdgeAmplitude, '', 3)

dev_display (EdgeAmplitude)

试了各种FilterType参数,有不同的效果,具体的用处还不知道。

read_image (Image, 'fabrik')


sobel_amp (Image, EdgeAmplitude, 'sum_abs', 3)
sobel_amp (Image, EdgeAmplitude, 'sum_abs', 5)
sobel_amp (Image, EdgeAmplitude, 'sum_abs', 7)
sobel_amp (Image, EdgeAmplitude, 'sum_abs', 9)
sobel_amp (Image, EdgeAmplitude, 'sum_abs', 11)

dev_display (EdgeAmplitude)

然后是size参数,效果应该是值越大,筛选的线越粗,很多细节就被忽略了,值越小就能体现更多细节,具体用法应该是根据实际情况。根据FilterType选择的不同,size的值的可选数值也不同,可以参考halcon里的函数解释。









评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值