圆环划痕检测halcon

  • 博主写作不容易,孩子需要您鼓励
  • 万水千山总是情 , 先点个赞行不行

处理要求

查找圆环缺陷
在这里插入图片描述

处理源码

read_image (Image, 'F:/HALCON/圆环划痕处理/10_33221_ba4582f0e88ec79.bmp')
rgb3_to_gray (Image, Image, Image, ImageGray)
dev_close_window ()
dev_open_window_fit_image (ImageGray, 0, 0, -1, -1, WindowHandle)
get_image_size (ImageGray, Width, Height)
auto_threshold (ImageGray, Regions, 2)
select_obj (Regions, ObjectSelected, 1)
complement (ObjectSelected, RegionComplement)
fill_up (RegionComplement, RegionFillUp)
difference ( RegionFillUp,RegionComplement, RegionDifference)
smallest_circle (RegionDifference, Row, Column, RadiusIn)
boundary (RegionFillUp, RegionBorder, 'outer')
dilation_circle (RegionBorder, RegionDilation, 3.5)
reduce_domain (ImageGray, RegionDilation, ImageReduced)
edges_sub_pix (ImageReduced, Edges,'canny', 0.5, 20, 40)
segment_contours_xld (Edges, ContoursSplit, 'lines_circles', 5, 4, 2)
union_cocircular_contours_xld (ContoursSplit, UnionContours, 0.9, 0.5, 0.5, 200, 50, 50, 'true', 1)
length_xld (UnionContours, Length)
select_obj (UnionContours, LongestContour, sort_index(Length)[|Length| - 1] + 1)
fit_circle_contour_xld (LongestContour, 'algebraic', -1, 0, 0, 3, 2, Row1, Column1, RadiusOUT, StartPhi, EndPhi, PointOrder)
gen_circle (Circle, Row1, Column1, RadiusOUT)
dilation_circle (Circle, RegionDilation, 5)
erosion_circle (Circle, RegionErosion,RadiusOUT-RadiusIn+5)
difference (RegionDilation, RegionErosion, RegionDifference1)
erosion_circle (RegionDifference1, RegionErosion1,8)
reduce_domain (ImageGray, RegionDifference1, ImageReduced1)
polar_trans_image_ext (ImageReduced1, PolarTransImage, Row1, Column1, 0, rad(360), RadiusIn, RadiusOUT, 6.28*RadiusOUT, RadiusOUT-RadiusIn, 'nearest_neighbor')
dev_open_window_fit_image (PolarTransImage, 0, 0, -1, -1, WindowHandle1)
mean_image (PolarTransImage, ImageMean, 100, 3)
dyn_threshold (PolarTransImage, ImageMean, RegionDynThresh, 10, 'dark')
connection (RegionDynThresh, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 5, 99999)
polar_trans_region_inv (SelectedRegions, XYTransRegion, Row1, Column1, 0, rad(360), RadiusIn, RadiusOUT, 6.28*RadiusOUT, RadiusOUT-RadiusIn, Width, Height, 'nearest_neighbor')
intersection (RegionErosion1, XYTransRegion, RegionIntersection)
dev_set_window (WindowHandle)
dev_display (ImageGray)
dev_display (RegionIntersection)

处理效果

在这里插入图片描述

------------------------------------------------------------------------------------------
                                              分割线
------------------------------------------------------------------------------------------
  • 博主简介:
  • 工业自动化上位机软件工程师、机器视觉算法工程师、运动控制算法工程师。目前从业于智能制造自动化行业。 博主邮箱:2296776525@qq.com
  • 帮忙点个赞吧。哈哈。
  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值