Halcon视觉实战例程之矩形边缘距离测量

该例程目的是测量图片中intel部分的水平边缘距离,上代码。

*测量边缘 2020/04/01

*更新
dev_update_window('off')
dev_update_pc ('off')
dev_update_var ('off')
dev_close_window ()

*读入图片
read_image (Image1, 'C:/intel.jpg')
rgb3_to_gray (Image1, Image1, Image1, Image)
get_image_size (Image, Width, Height)
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)
stop ()

*校正
threshold (Image, Regions, 0, 128)
connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 59239.1, 62500)
fill_up (SelectedRegions, RegionFillUp)
shape_trans (RegionFillUp, RegionTrans, 'rectangle2')
orientation_region (RegionTrans, Phi)
area_center( RegionTrans, Area, Row, Column)
vector_angle_to_rigid (Row, Column, Phi, Row, Column, rad(90), HomMat2D)
affine_trans_image (Image, ImageAffineTrans, HomMat2D, 'constant', 'false')
set_display_font (WindowHandle, 24, 'mono', 'true', 'false')
disp_continue_message (WindowHandle, 'black', 'true')
stop ()

*形成矩形
Row := 581
Column := 551
Length1 := 150
Length2 := 10
Angle := rad(0)
dev_set_draw ('margin')
dev_set_color ('red')
dev_set_line_width (2)
gen_rectangle2 (ROI, Row, Column, Angle, Length1, Length2)

*形成测量矩形
gen_measure_rectangle2 (Row, Column, Angle, Length1, Length2,  Width, Height, 'nearest_neighbor', MeasureHandle)
dev_display (ROI)
stop ()

*测量
count_seconds (Seconds)
measure_pos (ImageAffineTrans, MeasureHandle, 1, 30, 'all', 'all', RowEdge, ColumnEdge, Amplitude, Distance)
count_seconds (Seconds1)
Time:= (Seconds1-Seconds)*1000

*显示
if(|Distance|>0)
    disp_line (WindowHandle, RowEdge[0]-30, ColumnEdge[0], RowEdge[0]+30,ColumnEdge[0])
    disp_line (WindowHandle, RowEdge[1]-30, ColumnEdge[1], RowEdge[1]+30,ColumnEdge[1])
    disp_line (WindowHandle, RowEdge[0], ColumnEdge[0], RowEdge[1], ColumnEdge[1])
    set_tposition (WindowHandle, RowEdge[0]+150, ColumnEdge[0]-50)
    dev_set_color ('blue')
    write_string (WindowHandle,'width: ' + Distance + ' pix')
    set_tposition (WindowHandle, RowEdge[0]+210, ColumnEdge[0]-50)
    write_string (WindowHandle, 'Measuring time: '+ Time +' ms')
endif

close_measure (MeasureHandle)

测量结果
在这里插入图片描述
原图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值