美文网首页halcon视觉专栏HALCON
halcon第六讲,边缘检测(干货)

halcon第六讲,边缘检测(干货)

作者: 青莲居士_村长 | 来源:发表于2019-06-27 19:59 被阅读22次

1.做一件事件之前我们先总结一下我们要达到最终结果和目的。

(1)找到物体的外边缘,以及中心点
(2)我们以下图,为对象,对白色圆进行边缘检测。

image.png

2.代码实现

****关注简书号:以后我要当村长_0a04:  机器视觉一起互相学习   ****
**读取图片
read_image(img,'测圆形边缘/1')
**计算图片大小
get_image_size(img,width,height)
**关闭窗口
dev_close_window()
**打开窗口
dev_open_window_fit_size(0,0,width,height,-1,-1,window)
**转换为灰度图
rgb1_to_gray(img,grayimg)
**显示图片
dev_display(grayimg)

*填充区域margin找轮廓
dev_set_draw ('margin')
**画你要测量的区域
draw_rectangle1(window,Row1,Column1,Row2,Column2)
**显示你话的区域
gen_rectangle1(roi1,Row1,Column1,Row2,Column2)
*减少其他区域,显示你画的roi区域
reduce_domain(grayimg,roi1,ImageReduced)
dev_display(ImageReduced)

**二值化,选取自己需要的区域
threshold (ImageReduced, Regions, 53, 255)
**连通区域
connection(Regions,ConnectedRegions)
**根据形状选择区域
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and',10, 8302.75)

**讲区域进行膨胀处理
dilation_circle(SelectedRegions,RegionDilation,10)
**将区域进行腐蚀处理
erosion_circle (SelectedRegions, RegionErosion, 4)
**补充区域的漏洞
fill_up (RegionErosion, RegionFillUp)


**差异计算两个区域的集合理论差异
difference(RegionDilation,RegionFillUp,RegionDifference)
**连接区域
union1 (RegionDifference, RegionUnion)
reduce_domain (ImageReduced, RegionUnion, ImageReduced1)
**使用canny算子提取亚像素轮廓
edges_sub_pix (ImageReduced1, Edges, 'canny', 1, 20, 40)
**
segment_contours_xld (Edges, ContoursSplit, 'lines_circles', 5, 4, 2)
**裁剪
select_contours_xld (ContoursSplit, SelectedContours, 'contour_length', 8, 1000, -0.5, 0.5)
union_adjacent_contours_xld (SelectedContours, UnionContours3, 10, 1, 'attr_keep')
fit_circle_contour_xld (UnionContours3, 'algebraic', -1, 0, 0, 3, 2, Row1, Column1, Radius1, StartPhi, EndPhi, PointOrder)
gen_circle (Circle, Row1, Column1, Radius1)


*显示结果
dev_set_line_width (2)
dev_set_draw ('margin')
dev_display (img)
dev_display (Circle)

运行结果:


image.png

谢谢您的观看!!!!

相关文章

  • halcon第六讲,边缘检测(干货)

    1.做一件事件之前我们先总结一下我们要达到最终结果和目的。 (1)找到物体的外边缘,以及中心点(2)我们以下图,为...

  • halcon第三讲:划痕检测(干货)

    随着智能化时代的来临,视觉就相当于人的眼睛,接下来给喜欢视觉的朋友出现划痕时我们怎么找到他! 话不多说直接上代码 ...

  • 纹理表面缺陷检测

    今天看到一个缺陷检测很有启发的halcon例子。启动halcon软件,ctrl+E弹出例程,选择表面检测中的det...

  • opencv+python学习记录(二十)边缘检测

    边缘检测包含:Prewitt边缘检测、Sobel边缘检测、Scharr算子、Canny边缘检测、Laplacian...

  • Canny边缘检测---OpenCV-Python开发指南(22

    什么是Canny边缘检测 Canny边缘检测是一种使用多级边缘检测算法检测边缘的方法。该方法由John F. Ca...

  • Opencv第三课---边缘检测

    边缘检测 边缘检测是图像领域非常重要的一种处理手段,要理解边缘检测,首先要理解什么是边缘。边缘是图像局部强度具有非...

  • Task06 边缘检测

    6.1 简介 6.1.1 什么是边缘? 边缘是图像强度函数快速变化的地方 6.1.2 如何检测边缘? 为了检测边缘...

  • cv领域之边缘检测技术学习

    一、边缘检测简单介绍 边缘检测是图像分割中最常见的操作之一,一般提到边缘可能有三个概念: 边缘检测:定位边缘像素的...

  • 图像轮廓(1)

    边缘检测虽然能够检测出边缘,但是边缘不是连续的,检测到的边缘不是一个整体。图像轮廓是指将边缘连接起来形成一个整体 ...

  • 数字图像 - 边缘检测原理 - Sobel, Laplace,

    先来看张图,左边是原图,右边是边缘检测后的图,边缘检测就是检测出图像上的边缘信息,右图用白色的程度表示边缘的深浅。...

网友评论

    本文标题:halcon第六讲,边缘检测(干货)

    本文链接:https://www.haomeiwen.com/subject/uzhlcctx.html