大神帮我看看我的测量圆直径的算法是否OK?
- * Image Acquisition 01: Code generated by Image Acquisition 01
- read_image (Image, 'C:/Users/Administrator/Desktop/22.png')
- *要测量一个圆的直径,可以先通过阈值筛选出黑色部分
- threshold(Image, Region, 0, 100)
- *将选中部分组合
- connection (Region, ConnectedRegions)
- *选择其中类圆度高的部分根据选中部分与圆的相似度筛选出圆型部分
- select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 150, 99999)
- *扩张有一个圆形结构元素的地区 Radius 圆半径
- dilation_circle (SelectedRegions, RegionDilation, 8.5)
- *用一个圆形的结构元素进行腐蚀图像(小于半径的区域会被腐蚀掉,一般用于有弧形的区域,大多数用这个算子)
- erosion_circle (RegionDilation, RegionErosion,8.5)
- *计算两个区域的差异
- difference(RegionDilation, RegionErosion, RegionDifference)
- union1(RegionDifference, RegionUnion)
- *提取其边缘轮廓。
- edges_sub_pix (Image, Edges, 'lanser2', 0.3, 10, 20)
- *用一个椭圆去近似它(这个圆形区域毕竟不是真正的圆,需要进行拟合)
- *从而得到这个区域的中点坐标 Row, Column,与x轴的角度Phi,半长轴Ra,半短轴Rb,开始角度StartPhi,结束角度EndPhi,
- fit_ellipse_contour_xld (Edges, 'ftukey', -1, 2, 0, 200, 3, 2, Row, Column, Phi, Radius1, Radius2, StartPhi, EndPhi, PointOrder)
复制代码 |
|