引言:卡尺测量就是通过两个测量矩形来获取灰度值变换大的点,两点确定直线
一、绘制、生成测量矩形并定位
dev_get_window (WindowHandle)
read_image (Image2, 'D:/Desktop/pic4.jpg')
rgb1_to_gray (Image2, Image)
get_image_size (Image, Width, Height)
draw_rectangle2 (WindowHandle, Row, Column, Phi, Length1, Length2)
gen_rectangle2_contour_xld (Rectangle, Row, Column, Phi, Length1, Length2)
draw_rectangle2 (WindowHandle, Row1, Column1, Phi1, Length11, Length21)
gen_rectangle2_contour_xld (Rectangle1, Row1, Column1, Phi1, Length11, Length21)
gen_measure_rectangle2 (Row, Column, Phi, Length1, Length2, Width, Height, 'nearest_neighbor', MeasureHandle)
*[1] Image:输入图片
*[2] Measurehandle:测量句柄
*[3] 1:高斯平滑(Gaussian smoothing)中的西格玛(Sigma) Sigma越大-高斯函数曲线更宽-计算每个像素点的新值时会考虑更大邻域内的像素-
* 产生更强的平滑效果,去除图像中较大的噪声,也可能导致图像边缘模糊; 需要保留图像中一些重要边缘信息的同时去除少量噪声时,就会选择较小的Sigma值。
* Default: 1.0 Value range: 0.4 ≤ Sigma ≤ 100 (lin) Suggested values: 0.4, 0.6, 0.8, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0
*[4] 100:阈值(最重要的参数) 最小边缘幅度,灰度值 相差超过该值就会被检索!
*[5] 'all':极性 亮区-暗区上升沿/暗区-亮区上升沿 List of values: 'all', 'negative', 'positive' negative(只检测亮-暗)
*[6] 'all':端点的选择 List of values: 'all', 'first', 'last'
*[7] RowEdge:输出边缘中心的行坐标
*[8] ColumnEdge:列坐标
*[9] Amplitude:带符号的边缘幅度 边缘幅度反映了边缘的显著性,幅度值越大,边缘越明显。正号表示从暗到亮的变化(正边缘)
*[10] Distance:连续边缘之间的距离
measure_pos (Image, MeasureHandle, 1, 40, 'all', 'first', RowEdge, ColumnEdge, Amplitude, Distance)
gen_cross_contour_xld (Cross, RowEdge, ColumnEdge, 60, rad(-45))
gen_measure_rectangle2 (Row1, Column1, Phi1, Length11, Length21, Width, Height, 'nearest_neighbor', MeasureHandle1)
measure_pos (Image, MeasureHandle1, 1, 40, 'all', 'first', RowEdge1, ColumnEdge1, Amplitude1, Distance1)
gen_cross_contour_xld (Cross1, RowEdge1, ColumnEdge1, 60, rad(-45))
disp_line (WindowHandle, RowEdge, ColumnEdge, RowEdge1, ColumnEdge1)
distance_pp (RowEdge, ColumnEdge, RowEdge1, ColumnEdge1, Distance2)
msg:= '两点间距离为:'+Distance2$'.4f'
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
*disp_message (WindowHandle, msg, 'image', RowEdge1, ColumnEdge1, 'red', ['green','false'])
*经过检测,disp_message方法有时候会改变不了字体颜色,推荐下面的dev_disp_text方法
dev_disp_text (msg, 'window', RowEdge1, ColumnEdge1, 'green', ['box','box_color'], ['true','blue'])
最后效果如下:

617

被折叠的 条评论
为什么被折叠?



