#边缘检测1-照片整体边缘检测
read_image(Image,'D:/训练照片/2')
rgb1_to_gray(Image,GrayImage)
*计算边缘幅值,参数过大会不显示边缘
sobel_amp(GrayImage,Amp,'sum_abs',9)
*阈值范围
threshold(Amp,Edg,55,255)
skeleton (Edg,Skeleton)
dev_clear_window()
dev_display(Skeleton)
*直线找边
*清空屏幕,显式控制图像显示
dev_close_window ()
*读取图片
read_image (Image, 'D:/训练照片/2')
*根据 图片文件打开 图像窗口并获取窗口句柄
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)
*******测量逻辑**********
*创建测量模型
create_metrology_model (MetrologyHandle)
*第一条测量直线
*绘制第一条测量直线
draw_line (WindowHandle, Row1_1, Column1_1, Row2_1, Column2_1)
*添加第一条直线测量对象到模型
add_metrology_object_line_measure (MetrologyHandle, Row1_1, Column1_1, Row2_1, Column2_1, 20, 5, 1, 30, [], [], Index1)
*获取第一条直线的模型轮廓
get_metrology_object_model_contour (Contour1, MetrologyHandle, 0, 1.5)
*获取第一条直线的边缘位置结果
get_metrology_object_measures (Contours1, MetrologyHandle, 0, 'all', Row1, Column1)
*第二条测量直线
*绘制第二条测量直线
draw_line (WindowHandle, Row1_2, Column1_2, Row2_2, Column2_2)
*添加第二条直线测量对象到模型
add_metrology_object_line_measure (MetrologyHandle, Row1_2, Column1_2, Row2_2, Column2_2, 20, 5, 1, 30, [], [], Index2)
*获取第二条直线的模型轮廓
get_metrology_object_model_contour (Contour2, MetrologyHandle, 1, 1.5)
*获取第二条直线的边缘位置结果
get_metrology_object_measures (Contours2, MetrologyHandle, 1, 'all', Row2, Column2)
*显示测量轮廓
dev_set_color ('cyan')
dev_display (Contour1)
dev_display (Contour2)
dev_display (Contours1)
dev_display (Contours2)
*执行找边(找直线)并显示结果
apply_metrology_model (Image, MetrologyHandle)
*获取第一条直线的测量结果
get_metrology_object_result (MetrologyHandle, 0, 'all', 'result_type', 'all_param', Parameter1)
*获取第一条直线的结果轮廓
get_metrology_object_result_contour (ResultContour1, MetrologyHandle, 0, 'all', 1.5)
*获取第二条直线的测量结果
get_metrology_object_result (MetrologyHandle, 1, 'all', 'result_type', 'all_param', Parameter2)
*获取第二条直线的结果轮廓
get_metrology_object_result_contour (ResultContour2, MetrologyHandle, 1, 'all', 1.5)
*显示结果轮廓
dev_set_line_width (3)
dev_set_color ('red')
dev_display (ResultContour1)
dev_display (ResultContour2)
clear_metrology_model (MetrologyHandle)
stop()