对于水平的字符很好识别,通过分割字符,创建训练文件,创建分类器,读入训练文件,训练分类器,识别字符,或者直接使用助手可快速实现ocr识别。对于环形字符,最关键的一步就是先将环拉直,即将直角坐标转换为极坐标,水平轴为角度,竖直轴为极轴。比如在直角坐标中的一个圆,在极坐标中就被拉直成了一条直线。
要识别的环形字符图片如下:
read_image (Image, '1.png')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)
dev_display (Image)
*均值滤波
mean_image (Image, ImageMean, 3, 3)
*灰度范围,结果为掩码矩形内灰度最大值减最小值
gray_range_rect (ImageMean, ImageResult, 8, 8)
threshold (ImageResult, Regions, 40, 138)
connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 31134.7, 50000)
*生成区域的轮廓
gen_contour_region_xld (SelectedRegions, Contours, 'border')
fit_circle_contour_xld (C