设置首页收藏本站
开启左侧

[算子] rake卡直线 spoke卡圆工具(开源版) v1.3 20190527

  [复制链接]
宫林 发表于 2018-12-25 15:32:38 | 显示全部楼层
read_image (Image0, 'E:/TEST/halcon视频学习/测量边缘/图片/0.bmp')
dev_set_draw ('margin')
rgb1_to_gray (Image0, GrayImage)
threshold (GrayImage, Regions, 200, 255)
fill_up (Regions, RegionFillUp)
connection (RegionFillUp, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, ['circularity','area'], 'and', [0.8837,40201.5], [1,900000])
closing_circle (SelectedRegions, RegionClosing, 173.5)
area_center (RegionClosing, Area, Row0, Column0)
gen_cross_contour_xld (Cross, Row0, Column0, 16, 0.785398)
draw_spoke (GrayImage, Regions1, 3600, 30, 60, 15, ROIRows, ROICols, Direct)
draw_rake (Regions2, 3600, 30, 60, 15, Row1, Column1, Row2, Column2)
rows := [Row1,Row2]
columns := [Column1,Column2]
* Image Acquisition 01: Code generated by Image Acquisition 01
list_files ('E:/TEST/halcon视频学习/测量边缘/图片', ['files','follow_links','recursive'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1
    read_image (Image, ImageFiles[Index])
    * Image Acquisition 01: Do something
   
    rgb1_to_gray (Image, GrayImage)
    threshold (GrayImage, Regions, 200, 255)
    fill_up (Regions, RegionFillUp)
    connection (RegionFillUp, ConnectedRegions)
    select_shape (ConnectedRegions, SelectedRegions, ['circularity','area'], 'and', [0.8837,40201.5], [1,900000])
    closing_circle (SelectedRegions, RegionClosing, 173.5)
    area_center (RegionClosing, Area, Row1, Column1)
    gen_cross_contour_xld (Cross, Row1, Column1, 16, 0.785398)
    vector_angle_to_rigid (Row0, Column0, 0, Row1, Column1, 0, HomMat2D)
    affine_trans_pixel (HomMat2D, ROIRows, ROICols, RowTrans1, ColTrans1)
    affine_trans_pixel (HomMat2D, rows, columns, RowTrans2, ColTrans2)
   
    *拟合圆
    spoke (GrayImage, Regions3, 30, 60, 15, 1, 20, 'positive', 'max', RowTrans1, ColTrans1, Direct, ResultRow, ResultColumn, ArcType)
    gen_cross_contour_xld (Cross1, ResultRow, ResultColumn, 26, 0.785398)
    pts_to_best_circle (Circle, ResultRow, ResultColumn, 'circle', 10, RowCenter, ColCenter, Radius, StartPhi, EndPhi, PointOrder, ArcAngle)
   
   
    *拟合直线
    rake (GrayImage, Regions4, 30, 60, 15, 1, 30, 'all', 'first', RowTrans2[0], ColTrans2[0], RowTrans2[1], ColTrans2[1], ResultRow1, ResultColumn1)
    gen_cross_contour_xld (Cross2, ResultRow1, ResultColumn1, 16, 0.785398)
    pts_to_best_line (Line, ResultRow1, ResultColumn1, 10, Row11, Column11, Row21, Column21)
    elliptic_axis_points_xld (Line, Ra, Rb, Phi)
    elliptic_axis_xld (Line, Ra1, Rb1, Phi1)
    tuple_deg (Phi1, Deg)
    Deg:= Deg-180
   
    dev_display (GrayImage)
    dev_display (Circle)
    dev_display (Line)
    disp_message (3600, 'x='+(1.0*ColCenter)+'\r\ny='+RowCenter, 'image', RowCenter,ColCenter,  'red', 'false')
    disp_message (3600, 'angle='+Deg, 'image', Row21,Column21,   'red', 'false')
    stop ()
endfor
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
大凡光学,专注标定板提供
宫林 发表于 2018-12-25 15:33:03 | 显示全部楼层
read_image (Image0, 'E:/TEST/halcon视频学习/测量边缘/图片/0.bmp')
get_image_size (Image0, Width, Height)
dev_set_draw ('margin')
dev_set_color ('red')


rgb1_to_gray (Image0, GrayImage)
threshold (GrayImage, Regions, 200, 255)
fill_up (Regions, RegionFillUp)
connection (RegionFillUp, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, ['circularity','area'], 'and', [0.8837,40201.5], [1,900000])
closing_circle (SelectedRegions, RegionClosing, 173.5)
area_center (RegionClosing, Area, Row0, Column0)
gen_cross_contour_xld (Cross, Row0, Column0, 16, 0.785398)

Radius:= sqrt(Area/rad(180))
CircleParam := [Row0,Column0,Radius]


gen_region_line (ROI_0, 601.965, 172.121, 607.73, 584.046)
LineParam := [ 601.965, 172.121, 607.73, 584.046]
LineRows:=[601.965,607.73]
LineColumns:=[172.121,584.046]

list_files ('E:/TEST/halcon视频学习/测量边缘/图片', ['files','follow_links','recursive'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)

for Index1 := 0 to |ImageFiles| - 1 by 1
    read_image (Image, ImageFiles[Index1])
    * Image Acquisition 01: Do something
   
    rgb1_to_gray (Image, GrayImage)
    threshold (GrayImage, Regions, 200, 255)
    fill_up (Regions, RegionFillUp)
    connection (RegionFillUp, ConnectedRegions)
    select_shape (ConnectedRegions, SelectedRegions, ['circularity','area'], 'and', [0.8837,40201.5], [1,900000])
    closing_circle (SelectedRegions, RegionClosing, 173.5)
    area_center (RegionClosing, Area, Row1, Column1)
    gen_cross_contour_xld (Cross, Row1, Column1, 16, 0.785398)
    Radius:= sqrt(Area/rad(180))
    gen_circle_contour_xld (ContCircle, Row1, Column1, Radius, 0, 6.28318, 'positive', 1)
    CircleParam := [Row1,Column1,Radius]
    vector_angle_to_rigid (Row0, Column0, 0, Row1, Column1, 0, HomMat2D)
   
    affine_trans_pixel (HomMat2D, LineRows, LineColumns, RowTrans2, ColTrans2)
    LineParam:=[RowTrans2[0],ColTrans2[0],RowTrans2[1],ColTrans2[1]]
    create_metrology_model (MetrologyHandle)
    set_metrology_model_image_size (MetrologyHandle, Width, Height)
    create_metrology_model (MetrologyHandle1)
    set_metrology_model_image_size (MetrologyHandle1, Width, Height)
    add_metrology_object_generic (MetrologyHandle, 'circle', CircleParam, 20, 5, 1, 30, [], [], Index)
    get_metrology_object_model_contour (Contour, MetrologyHandle, 'all', 1.5)
    apply_metrology_model (GrayImage, MetrologyHandle)
    get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row1, Column1)
    get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'row', UsedRow)
    get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'column', UsedColunm)
    gen_cross_contour_xld (Cross, UsedRow, UsedColunm, 16, 0.785398)
    get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'radius', UsedRadius)   
    gen_circle_contour_xld (UsedCircle, UsedRow, UsedColunm, UsedRadius, 0, 6.28318, 'positive', 1)
   
   
    add_metrology_object_generic (MetrologyHandle1, 'line', LineParam, 20, 5, 1, 30, [], [], Index)
    get_metrology_object_model_contour (Contour, MetrologyHandle, 'all', 1.5)
    apply_metrology_model (GrayImage, MetrologyHandle1)
    get_metrology_object_measures (Contours, MetrologyHandle1, 'all', 'all', Row1, Column1)
    get_metrology_object_result (MetrologyHandle1, 'all', 'all', 'result_type', 'row_begin', UsedRowBegin)
    get_metrology_object_result (MetrologyHandle1, 'all', 'all', 'result_type', 'column_begin', UsedColunmBegin)
    get_metrology_object_result (MetrologyHandle1, 'all', 'all', 'result_type', 'row_end', UsedRowEnd)
    get_metrology_object_result (MetrologyHandle1, 'all', 'all', 'result_type', 'column_end', UsedColunmEnd)
    gen_region_line (RegionLines, UsedRowBegin, UsedColunmBegin, UsedRowEnd, UsedColunmEnd)
   
   

    clear_metrology_model (MetrologyHandle)
    clear_metrology_model (MetrologyHandle1)
    orientation_region (RegionLines, Phi1)
*     elliptic_axis_points_xld (RegionLines, Ra, Rb, Phi)
*     elliptic_axis_xld (RegionLines, Ra1, Rb1, Phi1)
    tuple_deg (Phi1, Deg)
    Deg:= Deg-180
   
    dev_display (GrayImage)
   
    dev_display (UsedCircle)
    dev_display (RegionLines)
    disp_message (3600, 'x='+(1.0*UsedColunm)+'\r\ny='+UsedRow, 'image', UsedRow[0],UsedColunm[0],  'red', 'false')
    disp_message (3600, 'angle='+Deg, 'image', UsedRowBegin[0],UsedColunmBegin[0],   'red', 'false')
     stop ()
endfor




奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
恒大冰泉 发表于 2018-12-25 16:27:09 | 显示全部楼层
学习啦。。。。。。。。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
kebi07 发表于 2018-12-27 14:22:50 | 显示全部楼层
多谢分享,支持楼主。。。。。。。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
zbw19870914 发表于 2018-12-27 15:18:45 | 显示全部楼层
非常非常好的资料
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
feel 发表于 2018-12-29 04:26:12 | 显示全部楼层
好东西收藏一下
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
boydenyol 发表于 2019-1-2 19:12:07 | 显示全部楼层
谢谢大神的分享,学习让人进步
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
benyea 发表于 2019-1-17 17:06:27 | 显示全部楼层
这个不错,好好学习
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
wdj031014 发表于 2019-1-20 21:19:08 | 显示全部楼层
asffd
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表