Halcon圆环字符提取

 

read_image (Image, 'C:/Users/Administrator/Desktop/2016C37EDAF3C01B296BF999EF78E6CE.png')
* 环形字符提取思路
* 1、提取字符所在的外边圆 字符内边园 大圆-小圆=环形字符区域
* 2、根据环形进行抠图
* 3、进行区域展开矩形
* 4、图像预处理方式 找到字符区域
* 5、开始识别字符
rgb1_to_gray (Image, GrayImage)
* 获取灰度图大小
get_image_size (GrayImage, Width, Height)
* 边缘增强算子:原理原因减去平滑之后的图得到高频的部分 用高频的部分乘以因子得到输出图
emphasize (GrayImage, ImageEmphasize, Width, Height, 1)
threshold (ImageEmphasize, Region, 0, 21)
connection (Region, ConnectedRegions)
* 最大面积进行筛选
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
* 填充区域
fill_up (SelectedRegions, RegionFillUp)
* 通过两次膨胀把外圆和内园摘出来
dilation_circle (RegionFillUp, RegionDilation, 20)
dilation_circle (RegionFillUp, RegionDilatin1, 70)
* 把RegionDilation和RegionDilation1 这两个膨胀区域进行求最小园
smallest_circle (RegionDilation, InnerRow, InnerColumn, InnerRadius)
smallest_circle (RegionDilatin1, OuterRow, OuterColumn, OuterRadius)
* 求两个区域的差异部分 就是环形区域
difference (RegionDilation, RegionDilatin1, RegionDifference)
* 根据环形进行抠图
reduce_domain (ImageEmphasize, RegionDifference, ImageReduced)
* 把环形转成矩形
polar_trans_image_ext (ImageReduced, PolarTransImage, OuterRow, OuterColumn, 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, Region1, 'max_separability', 'light', UsedThreshold)
connection (Region1, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions1, 'height', 'and', 50, 100)
* 处理粘连部分
union1 (SelectedRegions1, RegionUnion)
* 矩形分割
partition_rectangle (SelectedRegions1, Partitioned, 40, 70)
sort_region (Partitioned, SortedRegions, 'first_point', 'true', 'column')
* 识别字符并且显示 
* 加载分类器
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)
dev_get_window (WindowHandle)
dev_set_color ('pink')
set_display_font (WindowHandle, 20, 'mono', 'true', 'false')// 设置字体大小
set_tposition (WindowHandle, OuterRow, OuterColumn-400)// 设置位置
write_string (WindowHandle, Class)// 显示字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值