0005_图像边缘提取

关于图像边缘的一些知识点:

在拟合之前,需要先进行边缘提取。

图像边缘的总结:灰度值变化剧烈的地方为边缘,其实就是求导,导数的绝对值越大,越可能为边缘

边缘有正负之分,就像导数有正值也有负值一样:由暗到亮为正,由亮到暗为负

求边缘幅度的算法:

一阶导数:sobel、Roberts、prewitt等算子

二阶导数:Laplacian、Canny算子

Canny算子效果比其他的都要好,但是实现起来有点麻烦

在halcon的示例程序中,关于边缘提取,主要看两个地方:

1. 边缘提取(像素精度)

2. 边缘提取(亚像素精度)

边缘提取的一些函数说明:

//提取亚像素边缘轮廓(此函数在边缘提取中使用比较多

edge_sub_pix

Image:输入图像

Edges:提取出来的边缘

Filter:使用的边缘提取算子

Alpha:滤波参数:值越小,越平滑(canny算子相反)

Low:低阈值

High:高阈值

在Low和High之间的像素,如果八临域中有一个像素高于High,那么也是边缘。

edges_image

Image:输入图像

ImaAmp:边缘幅度图像

ImaDir:边缘方向图像

Filter:使用的边缘提取算法,如canny等

Alpha:滤波参数,值越小,越平滑,细节越少,如果使用canny,则相反

NMS:非极大值抑制

Low:滞后阈值操作的阈值较低(如果不需要阈值处理,则为负)

High:滞后阈值操作的上限阈值(如果不需要阈值处理,则为负)

在Low和High之间的像素,如果八临域中有一个像素高于High,那么也是边缘。

//提取骨架

//计算一个区域的骨架

skeleton

Region:要被稀疏的区域

Skeleton:骨架结果

//对区域去获取边缘

boundary

Region:被计算边缘的区域

RegionBorder:边缘结果

BoundaryType:边缘类型

//获取亚像素轮廓

threshold_sub_pix

Image:输入图像

Border:输出边缘

Threshold:分割边缘的幅度值

猜你喜欢

转载自blog.csdn.net/ymj7150697/article/details/82534010
今日推荐