8区域特征检测

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值