set_tposition (3600, 61, 63)参数报错
dev_display (Image)
set_tposition (3600, 61, 63)
write_string (3600, Class)
set_tposition (3600, 61, 63)参数报错
dev_display (Image)
set_tposition (3600, 61, 63)
write_string (3600, Class)
read_image (Image, 'C:/Users/Administrator/Desktop/环形字符.png')
rgb1_to_gray (Image, GrayImage)
get_image_size (GrayImage, Width, Height)
emphasize (GrayImage, ImageEmphasize, Width, Height, 1)
threshold (ImageEmphasize, Regions, 0, 21)
connection (Regions, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
fill_up (SelectedRegions, RegionFillUp)
*分别两次膨胀
dilation_circle (RegionFillUp, RegionDilation, 20)
dilation_circle (RegionFillUp, RegionDilation1, 70)
*这里是求出两个膨胀区域的最小外接圆的圆心和半径,为之后的极坐标转换做准备
smallest_circle (RegionDilation, InnerRow, InnerCol, InnerRadius)
smallest_circle (RegionDilation1, OuterRow, OuterCol, OuterRadius)
*求出两个膨胀区域的差异部分,就是求出一个字体圆环部分
difference (RegionDilation1, RegionDilation, RegionDifference)
reduce_domain (ImageEmphasize, RegionDifference, ImageReduced)
*这里就是极坐标转换的算子了,就是将环形部分拉直,方便读取OCR
polar_trans_image_ext (ImageReduced, PolarTransImage, OuterRow, OuterCol, rad(-30), rad(-120), InnerRadius+16, OuterRadius, Width, Height/8, 'nearest_neighbor')
mirror_image (PolarTransImage, ImageMirror, 'row')
gray_range_rect (ImageMirror, ImageResult, 7, 7)
binary_threshold (ImageResult, Region, 'max_separability', 'light', UsedThreshold)
connection (Region, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions1, ['height','area'], 'and', [54.14,912.03], [100,10000])
partition_rectangle (SelectedRegions1, Partitioned, 40, 70)
sort_region (Partitioned, SortedRegions, 'character', 'true', 'row')
invert_image (ImageResult, ImageInvert)
read_ocr_class_mlp ('Industrial_0-9A-Z_NoRej.omc', OCRHandle)
do_ocr_multi_class_mlp (SortedRegions, ImageInvert, OCRHandle, Class, Confidence)
dev_display (Image)
set_tposition (3600, 61, 63)
write_string (3600, Class)