threshold (Image, Region, 0, 0)
area_center (Region, Area, Row, Column)
set_grayval (Image, Row, Column, 255)
gen_cross_contour_xld (Cross, Row, Column, 6, 0.785398)
dev_display (Image)
dev_display (Cross)
disp_message (3600, 1,\
'image', 0.5, Column, 'black', 'true')
8.1.连通域分割与区域分割特征筛选
*彩色图转灰度图
rgb1_to_gray (Image, GrayImage)
binary_threshold (GrayImage, Region,\
'max_separability', 'light', UsedThreshold)
*提取图片中的圆
*打散(分割连通域)
connection (Region, ConnectedRegions)
*特征筛选
select_shape (ConnectedRegions,\
SelectedRegions, ['area','circularity'], 'and',\
[2500,0.9], [3000,1])
* select_shape (SelectedRegions, SelectedRegions1, 'area',\
'and', 150, 99999)
* select_shape (SelectedRegions1, SelectedRegions2,\
'area', 'and', 0.9, 1)
*求区域中心
area_center (SelectedRegions, Area, Row, Column)
*生成一个十字座标
gen_cross_contour_xld (Cross, Row, Column, 6, 0.785398)
* 变粗(线宽)
dev_set_line_width (5)
*清楚窗口
dev_clear_window ()
*显示原图
dev_display (Image)
*设置区域显示粉红色
dev_set_color ('pink')
*显示十字座标
dev_display (Cross)
8.2最小外接矩阵
gen_rectangle1 (Rectangle,40,40, 100, 100)
*中心,角度,半长轴,半短轴
*角度 rad(度数),逆时针正,顺时针负
*角度是矩形长轴与水平轴的夹角
*角度的范围,-90~~90
* 生成最小外接矩形2
gen_rectangle2 (Rectangle1, 300, 200, rad(30), 100, 20)
gen_cross_contour_xld (Cross,300 , 200, 16, 0)
dev_display (Rectangle1)
dev_set_color ('blue')
dev_display (Cross)
* 坐标
disp_arrow (3600, 10, 10, 118, 118, 1)
8.3最小外界矩阵的应用
rgb1_to_gray (Image, GrayImage)
binary_threshold (GrayImage,\
Region, 'max_separability',\
'dark', UsedThreshold)
smallest_rectangle1 (Region, Row1, Column1, Row2, Column2)
*生成最小外接矩形
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
binary_threshold (GrayImage, Region1, 'max_separability', 'dark', UsedThreshold1)
*生成最小外矩形2
smallest_rectangle2 (Region1, Row, Column, Phi, Length1, Length2)
gen_rectangle2 (Rectangle1, Row, Column, Phi, Length1, Length2)
gen_cross_contour_xld (Cross, Row, Column, 6, Phi)
*得到句柄
dev_get_window (WindowHandle)
* 显示原图
dev_display (Image)
* 设置边缘模式
dev_set_draw ('margin')
dev_display (Rectangle)
dev_set_line_width (3)
dev_set_color ('green')
dev_display (Rectangle)
dev_set_color ('red')
dev_display (Cross)
*画横坐标
disp_arrow (3600, Row, Column, Row, Column+100, 2)
dev_set_color ('yellow')
*纵坐标
disp_arrow (WindowHandle,\
Row, Column, \
Row-120*sin(Phi), Column+120*cos(Phi), 2)
8.4最小外接圆和凸包
rgb1_to_gray (Image, GrayImage)
binary_threshold (GrayImage, Region, \
'max_separability', 'dark', UsedThreshold)
*求区域外接圆的面积
smallest_circle (Region, Row, Column, Radius)
gen_circle (Circle, Row, Column, Radius)
*区域的凸包
*区域中任意两点连线,连线经过的像素点,都在凸包区域内
*第三个参数(convex),可以控制变成什么形状,外接圆,内接圆,外接矩形,内接矩形,凸包
shape_trans (Circle, RegionTrans, 'convex')
dev_display (Image)
dev_set_draw ('margin')
dev_set_line_width (5)
dev_display (RegionTrans)
dev_set_color ('blue')
dev_display (Circle)
8.5填充孔洞
rgb1_to_gray (Image20230802102130, GrayImage)
binary_threshold (GrayImage, Region, 'max_separability',\
'light', UsedThreshold)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 31413.9, 50000)
area_center (SelectedRegions, Area, Row, Column)
gen_cross_contour_xld (Cross, Row, Column, 16, 0)
*填充孔洞
fill_up (SelectedRegions, RegionFillUp)
area_center (RegionFillUp, Area1, Row1, Column1)
gen_cross_contour_xld (Cross1, Row1, Column1, 16, 0.785398)
dev_display (Image20230802102130)
dev_set_color ('red')
dev_set_line_width (4)
dev_display (Cross)
dev_set_color ('blue')
dev_display (Cross1)
*计算孔洞的面积
area_holes (SelectedRegions, Area2)
*根据孔洞的面积去填充
fill_up_shape (SelectedRegions, RegionFillUp1, 'area', 1800, 3000)
8.6 缩小定义域加抠图
*抠图
gen_rectangle1 (ROI_0, 263.253, 436.815, 499.908, 638.566)
gen_rectangle1 (TMP_Region, 521.586, 137.006, 695.013, 233.937)
union2 (ROI_0, TMP_Region, ROI_0)
*缩小定义域
reduce_domain (Image5, ROI_0, ImageReduced)
8.7绘制区域
*窗口绘制圆
*先输入draw_circle,然后在窗口画,再写gen_circle
draw_circle (3600, Row, Column, Radius)
gen_circle (Circle, Row, Column, Radius)
*窗口绘制椭圆
draw_ellipse (3600, Row2, Column2, Phi1, Radius11, Radius21)
gen_ellipse (Ellipse, Row2, Column2, Phi1, Radius11, Radius21)
8.8椭圆
gen_ellipse (Ellipse, 200, 200, rad(20), 100, 60)
*改椭圆的颜色
dev_set_color ('pink')
dev_display (Ellipse)
dev_set_color ('cyan')
*绘制横坐标
disp_cross (3600, 200, 200, 6, 0)
*绘制纵坐标
disp_arrow (3600,\
200,\
200,\
200-100*sin(rad(20)),\
200+100*cos(rad(20)),\
1)
8.9等效椭圆
gen_rectangle1 (ROI_0, 30, 20, 100, 200)
*求等效椭圆
elliptic_axis (ROI_0, Ra, Rb, Phi)
area_center (ROI_0, Area, Row, Column)
gen_ellipse (Ellipse, Row, Column, 0, 100, 60)
dev_set_draw ('fill')
dev_set_color ('red')
dev_display (ROI_0)
dev_set_draw ('margin')
dev_set_color ('green')
dev_display (Ellipse)
8.10区域的方向
*求区域角度,区域中心到区域等效椭圆上最远的连线与水平轴的夹角
orientation_region (ROI_0, Phi)
area_center (ROI_0, Area, Row, Column)
gen_cross_contour_xld (Cross, Row, Column, 16, 0)
gen_arrow_contour_xld (Arrow,\
Row,\
Column,\
Row-500*sin(Phi),\
Column-500*cos(Phi),\
5, 5)
*求区域的等效椭圆
elliptic_axis (ROI_0, Ra, Rb, Phi1)
gen_ellipse (Ellipse, Row, Column, Phi1 , Ra, Rb)
dev_set_line_width (3)
dev_clear_window ()
dev_set_color ('blue')
dev_display (ROI_0)
dev_set_color ('red')
dev_display (Cross)
dev_set_color ('pink')
dev_display (Arrow)
dev_set_draw ('margin')
dev_set_color ('green')
dev_display (Ellipse)