该例程目的是测量图片中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)
测量结果
原图