学习halcon,提取边缘的方法记录
方法1:使用Sobel_Image,Scale_Image配合检测
sobel_amp(Image : EdgeAmplitude : FilterType, Size : )
使用Sobel算子检测边缘(振幅)。
FilterType:选择滤波器
Size:设置滤波器的大小
scale_image(Image : ImageScaled : Mult, Add : )
缩放图像的灰度值。
Mult:图像灰度值乘的倍率
Add:总体增加的灰度值
正常的布料
![](https://i-blog.csdnimg.cn/blog_migrate/22067afd13cabed5984282e19bf605d0.png)
有模糊的布料
![](https://i-blog.csdnimg.cn/blog_migrate/8d53e88f47651ff4f253e0a6d64e59fe.png)
dev_update_off ()
read_image (Image, 'img_000002_bad.png')
sobel_amp (Image, EdgeAmplitude, 'sum_abs', 7)
scale_image (EdgeAmplitude, ImageScaled, 10, 0)
threshold (ImageScaled, Regions, 0, 136)
opening_circle (Regions, RegionOpening, 3.5)
dilation_circle (RegionOpening, RegionDilation, 3.5)
dev_display (Image)
dev_display (RegionDilation)
![](https://i-blog.csdnimg.cn/blog_migrate/89e9f979d56d8ddd8509d64da594e50a.png)
方法2:使用texture_laws,median_separate过滤纹理
texture_laws(Image : ImageTexture : FilterTypes, Shift, FilterSize : )
使用Laws纹理过滤器过滤图像。
median_separate(Image : ImageSMedian : MaskWidth, MaskHeight, Margin : )
矩形遮罩分离中值滤波。
dev_update_off ()
read_image (Image, 'img_000002_bad.png')
texture_laws (Image, SS, 'ss', 0, 5)
median_separate (SS, SSMed, 25, 25, 'cyclic')
threshold (SSMed, Regions, 15, 40)
opening_circle (Regions, RegionOpening, 3.5)
dilation_circle (RegionOpening, RegionDilation, 3.5)
dev_display (Image)
dev_display (RegionDilation)
![](https://i-blog.csdnimg.cn/blog_migrate/079919759b9de44923b9ea38e1ac3334.png)
方法3:使用mean_image,abs_diff_image找出图像差异,提取边缘
这种方法提取边缘感觉不稳定,使用图像差值,膨胀图像灰度值,我创建一个黑色
图像元素膨胀,结果图像变亮了,也可以提取哈哈哈。
dev_update_off ()
read_image (Image, 'img_000002_bad.png')
mean_image (Image, ImageMean, 30, 30)
abs_diff_image (Image, ImageMean, ImageAbsDiff, 1)
scale_image (ImageAbsDiff, ImageScaled, 2, 0)
gen_image_const (Image1, 'byte',3, 3)
gen_image_proto (Image1, ImageCleared, 0)
gray_dilation (ImageScaled, ImageCleared, ImageDilation)
threshold (ImageDilation, Regions, 0, 40)
opening_circle (Regions, RegionOpening1, 3.5)
dilation_circle (RegionOpening1, RegionDilation1, 2)
dev_display (Image)
dev_display (RegionDilation)
![](https://i-blog.csdnimg.cn/blog_migrate/9a11b4491bb4d1f8f8c556d85f260027.png)