环形字符识别包括如下几个步骤:
1.得到内外半径(Blob分析(二值化、形态学、select_shape))
2.拉直(极坐标转换)
3. 二值化、分割
4. 识别
5. 显示
极坐标转换前处理的步骤:
在进行极坐标转换之前,需要对环形区域进行处理,从而得到polar_trans_image_ext算子所需要的参数。
一般的方法步骤如下:
1. 阈值化
2. 圆形结构的闭运算
3. 砍断,计算联通域
4. 选择环形区域-》此处获得外接圆相关参数
5. 将第4步选择的环形区域求补集
6. 将补集砍断,计算连通域
7. 选择内圆区域-》此处获得内接圆相关参数
以上步骤中涉及到的几个关键算子如下:
//使用圆形结构元素进行闭运算
closing_circle
Region:被进行闭运算的区域
RegionClosing:闭运算之后的区域
Radius:圆形结构的半径
//变换区域的形状
shape_trans
Region:被变换的区域
RegionTrans:变换后的区域
Type:变换类型
//对输入区域求补集(与image所对应的区域)
complement
Region:输入区域
RegionComplement:补集之后的区域
//区域的最小外接圆
smallest_circle
Regions:被检查的区域
Row:输出中心点的行坐标
Column:输出中心点的列坐标
Radius:外接圆的半径
极坐标转换:
//极坐标转换,也就是将环形的东西拉直
polar_trans_image_ext
Image:输入图像
PolarTransImage:输出极坐标转换后的图像
Row:弧中心的行坐标
Column:弧中心的列坐标
AngleStart:需要识别位置的开始角度
AngleEnd:需要识别位置的结束角度
RadiusStart:外边到达圆心的距离
RadiusEnd:内边到达圆心的距离
Width:输出图像的宽
Height:输出图像的高
InterPolation:转换所使用的插值方法
更多halcon和六轴机械臂算法干货公众号: