halcon 数字识别

素材

请添加图片描述

dev_get_window(WindowHandle)
**读取图像
read_image(Image,'C:/Users/Augustine/Desktop/1.png')
**把图像转正,镜像方式
mirror_image(Image,ImageMirror,'row')
mirror_image(ImageMirror,ImageMirror1,'column')

在这里插入图片描述

交互选取区域

**交互式把需要识别的区域找出来
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
gen_rectangle1(Rectangle,Row1,Column1,Row2,Column2)
**显示需要识别的区域图像
reduce_domain(ImageMirror1, Rectangle, ImageReduced)

在这里插入图片描述

阈值分割

**分割出需要识别的区域
rgb1_to_gray(ImageReduced,GrayImage)
*阈值处理
binary_threshold(GrayImage, Region, 'max_separability', 'dark', UsedThreshold)
connection(Region,ConnectedRegions)

特征提取

通过行和列来获取数字的值
在这里插入图片描述用特征直方图获取特征
在这里插入图片描述

**分割出需要识别的区域
rgb1_to_gray(ImageReduced,GrayImage)
*阈值处理
binary_threshold(GrayImage, Region, 'max_separability', 'dark', UsedThreshold)
connection(Region,ConnectedRegions)
** 把需要识别的字符显出出来
select_shape (ConnectedRegions, SelectedRegions, ['row','column'], 'and', [276,260], [310,310])

在这里插入图片描述

识别字符

** 把需要识别的字符显出出来
select_shape (ConnectedRegions, SelectedRegions, ['row','column'], 'and', [276,260], [310,310])
**识别字符,加载识别字符库句柄,使用工业字符
read_ocr_class_mlp('Industrial_0-9_NoRej.omc',OCRHandle)
**执行字符识别
do_ocr_multi_class_mlp(SelectedRegions,GrayImage,OCRHandle,Class,Confidence)

在这里插入图片描述

显示

**展示结果
smallest_rectangle1(SelectedRegions,Row11,Column11,Row21,Column21)
for Index:=1 to Number by 1
    disp_message(WindowHandle, Class[Index - 1], 'image', Row21[Index -1 ], Column11[Index -1]+20, 'red', 'true')
endfor

全部代码

dev_get_window(WindowHandle)
**读取图像
read_image(Image,'C:/Users/Augustine/Desktop/1.png')
**把图像转正,镜像方式
mirror_image(Image,ImageMirror,'row')
mirror_image(ImageMirror,ImageMirror1,'column')
**交互式把需要识别的区域找出来
draw_rectangle1(WindowHandle,Row1,Column1,Row2,Column2)
gen_rectangle1(Rectangle,Row1,Column1,Row2,Column2)
**显示需要识别的区域图像
reduce_domain(ImageMirror1, Rectangle, ImageReduced)
**分割出需要识别的区域
rgb1_to_gray(ImageReduced,GrayImage)
*阈值处理
binary_threshold(GrayImage, Region, 'max_separability', 'dark', UsedThreshold)
connection(Region,ConnectedRegions)
** 把需要识别的字符显出出来
select_shape (ConnectedRegions, SelectedRegions, ['row','column'], 'and', [276,260], [310,310])
**获取筛选出来的字符数量
count_obj(SelectedRegions,Number)
**识别字符,加载识别字符库句柄,使用工业字符
read_ocr_class_mlp('Industrial_0-9_NoRej.omc',OCRHandle)
**执行字符识别
do_ocr_multi_class_mlp(SelectedRegions,GrayImage,OCRHandle,Class,Confidence)
**展示结果
smallest_rectangle1(SelectedRegions,Row11,Column11,Row21,Column21)
for Index:=1 to Number by 1
    disp_message(WindowHandle, Class[Index - 1], 'image', Row21[Index -1 ], Column11[Index -1]+20, 'red', 'true')
endfor

在这里插入图片描述

注意:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值