HALCON示例程序distance_transform.hdev通过distance_transform检测线的缺陷
生活随笔
收集整理的這篇文章主要介紹了
HALCON示例程序distance_transform.hdev通过distance_transform检测线的缺陷
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
HALCON示例程序distance_transform.hdev通過distance_transform檢測(cè)線的缺陷
示例程序源碼(加注釋)
- 關(guān)于顯示類函數(shù)解釋
dev_close_window ()
dev_open_window (0, 0, 400, 400, ‘black’, WindowHandle) - 通過一系列的坐標(biāo)點(diǎn)生成多邊形像素輪廓
gen_region_polygon (Line1, [300,300,200,0], [0,200,300,300])
gen_region_polygon (Line2, [350,350,250,0], [0,250,350,350]) - 合并兩個(gè)輪廓
union2 (Line1, Line2, Lines) - 使用圓形元素對(duì)區(qū)域進(jìn)行膨脹
dilation_circle (Lines, ThickLines, 7.5) - 生成圓形
gen_circle (Error1, 120, 347, 7.5)
gen_circle (Error2, 90, 287, 7.5)
gen_circle (Error3, 302, 202, 7.5)
gen_circle (Error4, 242, 337, 7.5)
gen_circle (Error5, 346, 248, 7.5)
gen_circle (Error6, 204, 312, 7.5) - 合并生成的圓形區(qū)域
union2 (Error1, Error3, Errors1)
union2 (Errors1, Error5, ErrorsAdd)
union2 (Error2, Error4, Errors2)
union2 (Errors2, Error6, ErrorsRem)
union2 (ThickLines, ErrorsAdd, ThichLinesAdd)
union2 (ThickLines, ErrorsAdd, ThichLinesAdd) - 求兩個(gè)區(qū)域不相交的區(qū)域
difference (ThichLinesAdd, ErrorsRem, ThickLinesError) - distance_transform - 計(jì)算區(qū)域的距離變換;每個(gè)像素點(diǎn)到邊界的距離。
- distance_transform(區(qū)域:距離圖像:方式,是否區(qū)域內(nèi)所有點(diǎn),寬度,高度:)
distance_transform (ThickLines, LinesDistance, ‘chamfer-3-4’, ‘true’, 400, 400) - 提取區(qū)域的骨架
skeleton (ThickLines, Skeleton) - 減少定義域
reduce_domain (LinesDistance, Skeleton, LinesDistanceReduced) - 二值化
threshold (LinesDistanceReduced, NoErrors, [0,9], [6,20]) - 計(jì)算每個(gè)像素點(diǎn)到邊界的距離
distance_transform (ThickLinesError, LinesDistanceError, ‘chamfer-3-4’, ‘true’, 400, 400)
skeleton (ThickLinesError, SkeletonError)
reduce_domain (LinesDistanceError, SkeletonError, LinesDistanceErrorReduced)
threshold (LinesDistanceErrorReduced, Errors, [0,9], [6,20])
dilation_circle (Errors, ErrorsDilation, 5.5)
connection (ErrorsDilation, ConnectedRegions)
area_center (ConnectedRegions, Area, Row, Column)
dev_clear_window ()
dev_set_draw (‘fill’)
dev_set_color (‘gray’)
dev_display (ThickLinesError)
dev_set_draw (‘margin’)
dev_set_color (‘red’)
dev_set_line_width (3)
disp_circle (WindowHandle, Row, Column, gen_tuple_const(|Row|,15.5))
dev_set_draw (‘fill’)
處理思路
這個(gè)例子是主要講解了distance_transform算子的應(yīng)用。
后記
大家有什么問題可以向我提問哈,我看到了第一時(shí)間回復(fù),希望在學(xué)習(xí)的路上多多結(jié)交良師益友。
總結(jié)
以上是生活随笔為你收集整理的HALCON示例程序distance_transform.hdev通过distance_transform检测线的缺陷的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查找工具locate和find
- 下一篇: imx8mq - bootloader编