halcon模板跟随找线的一个演示例子


运行程序前先创建ROI以创建模板,然后顺时针或者逆时针绘制三根直线,以确定找线的方向与距离。

image.png

由于找线的时候是模板跟随的,最后得到下面的结果:

image.png


代码如下:

其中draw_rake,dev_display_shape_matching_result,rake,pts_to_best_line为外部算子。

有需要的朋友可以找勇哥索取。

dev_close_window ( )
read_image (Image, 'C:/Users/Administrator/Desktop/罗伟/ttt4.bmp')
scale_image (Image, ImageScaled1, 1.81, 0)
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)

gen_rectangle1 (Rectangle, 1247, 1182, 1632, 1842)

area_center (Rectangle, Area, Row3, Column3)
reduce_domain (ImageScaled1, Rectangle, ImageReduced)
*stop()
create_shape_model (ImageReduced, 'auto', rad(0), rad(360), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
draw_rake (Regions, WindowHandle,30, 160, 15, Row1First, Column1First, Row2First, Column2First)
draw_rake (Regions2, WindowHandle, 30, 160, 15, Row1Secound, Column1Secound, Row2Secound, Column2Secound)
draw_rake (Regions3, WindowHandle, 30, 160, 15, Row1thress, Column1thress, Row2thress, Column2thress)
find_shape_model (Image, ModelID, rad(0), rad(360), 0.5, 0, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
stop()
gen_empty_obj(EmptyObject)
for Index := 0 to |Row|-1 by 1
    dev_display_shape_matching_results (ModelID, 'red', Row[Index], Column[Index], Angle[Index], 1, 1, 0)
    vector_angle_to_rigid ( Row3, Column3, 0, Row[Index], Column[Index], Angle[Index], HomMat2D)
     affine_trans_pixel (HomMat2D, Row1First, Column1First, RowTrans, ColTrans)
     affine_trans_pixel (HomMat2D, Row2First, Column2First, RowTrans1, ColTrans1)
     rake (ImageScaled1, Regions1, 5, 20, 1, 1, 20, 'all', 'max', RowTrans, ColTrans, RowTrans1, ColTrans1, ResultRow, ResultColumn)
     pts_to_best_line (LineFirst,  ResultRow, ResultColumn, 2, Row12, Column12, Row22, Column22)
     affine_trans_pixel (HomMat2D, Row1Secound, Column1Secound, RowTrans2, ColTrans2)
     affine_trans_pixel (HomMat2D, Row2Secound, Column2Secound, RowTrans3, ColTrans3)
     rake (ImageScaled1, Regions4, 5, 20, 1, 1, 20, 'all', 'max',  RowTrans2, ColTrans2, RowTrans3, ColTrans3, ResultRow1, ResultColumn1)
     pts_to_best_line (LineSecound, ResultRow1, ResultColumn1, 2, Row1, Column1, Row2, Column2)
     affine_trans_pixel (HomMat2D, Row1thress, Column1thress, RowTrans4, ColTrans4)
     affine_trans_pixel (HomMat2D,  Row2thress, Column2thress, RowTrans5, ColTrans5)
     rake (ImageReduced, Regions5, 5, 20, 1, 1, 20, 'all', 'max',RowTrans4, ColTrans4,RowTrans5, ColTrans5, ResultRow2, ResultColumn2)
     pts_to_best_line (Linethress, ResultRow2, ResultColumn2, 2, Row11, Column11, Row21, Column21)
     
     intersection_ll (Row1, Column1, Row2, Column2, Row12, Column12, Row22, Column22, Row4, Column4, IsParallel)
     gen_cross_contour_xld (Cross, Row4, Column4, 16, Angle)
     intersection_ll (Row11, Column11, Row21, Column21, Row12, Column12, Row22, Column22, Row5, Column5, IsParallel1)
     gen_cross_contour_xld (Cross1, Row5, Column5, 16, Angle)
     ROIRow:=(Row5+Row4)/2
     ROICol:=(Column5+Column4)/2
     gen_cross_contour_xld (Cross2, ROIRow, ROICol, 16, Angle)
     dev_display (Image)
     concat_obj(EmptyObject, LineFirst, EmptyObject)
     concat_obj(EmptyObject, LineSecound, EmptyObject)
     concat_obj(EmptyObject, Linethress, EmptyObject)
     concat_obj(EmptyObject, Cross, EmptyObject)
     concat_obj(EmptyObject, Cross1, EmptyObject)
     concat_obj(EmptyObject, Cross2, EmptyObject)
     dev_display (LineFirst)
     dev_display (LineSecound)
*      dev_display (Linethress)
     dev_display (Cross)
     dev_display (Cross1)
     dev_display (Cross2)
     *stop ()
endfor
dev_display(EmptyObject)



--------------------- 

作者:hackpig

来源:www.skcircle.com

版权声明:本文为博主原创文章,转载请附上博文链接!



本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
  • 评论列表:
  •  访客
     发布于 2020-04-13 10:41:28  回复该评论
  • 一直有关注勇哥,非常感谢勇哥的无私分享,想学一下这几个封装的找线,拟合直线的算子,我的邮箱1226317693@qq.com
  •  访客
     发布于 2020-08-17 00:55:22  回复该评论
  • 一直有关注勇哥,非常感谢勇哥的无私分享,想学一下这几个封装的找线,拟合直线的算子

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864