图片与资源

链接:https://pan.baidu.com/s/1a7mxyhohmTslT8WN9kEWNw
提取码:y6gs

处理流程

1、识别字符水平旋转角度
2、图片仿射变换
3、二值化 连通域 筛选噪音区域
4、切割字符区域
5、获取字符矩形框
6、隔断字符矩形框
7、筛序过滤字符连通域
8、字符识别与显示

完整代码

* dotprt.hdev: Segmentation of a dot printing
*
**** 1、加载并显示图片*****************
dev_update_window ('off')
read_image (Needle, 'needle1')dev_close_window ()
get_image_size (Needle, Width, Height)
dev_open_window (0, 0, 2 * Width, 2 * Height, 'black', WindowID)
dev_display (Needle)set_display_font (WindowID, 16, 'mono', 'true', 'false')
disp_continue_message (WindowID, 'black', 'true')
stop ()**** 2、识别文字角度*****************
* 设置文字处理区域
* *
Row1 := 50
Column1 := 90
Row2 := 250
Column2 := 370gen_rectangle1 (Rectangle1, Row1, Column1, Row2, Column2)* 计算文字角度 35:文字的高度
* -0.523599, 0.523599 搜索起始与结束角度
text_line_orientation (Needle, Needle, 35, -0.523599, 0.523599, OrientationAngle)**** 3、仿射变换 调整图片角度*****************
* 计算矩形中心点
Px := Column1 + (Column2 - Column1) / 2
Py := Row1 + (Row2 - Row1) / 2
* 计算仿射变换矩阵
hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_rotate (HomMat2DIdentity, -OrientationAngle, Px, Py, HomMat2DRotate)
* 使用变换矩阵 对图片执行仿射变换
affine_trans_image (Needle, Rotated, HomMat2DRotate, 'constant', 'false')
* 显示旋转后的图片
dev_display (Rotated)
disp_continue_message (WindowID, 'black', 'true')
stop ()**** 4、二值化连通域分析 筛选其它噪音*****************
* 二值图
threshold (Rotated, RawSegmentation, 0, 105)
* 连通域分析
connection (RawSegmentation, ConnectedRegions)
* 面积筛选
select_shape (ConnectedRegions, MinSizeRegions, 'area', 'and', 6, 99999)
* 合并筛选后的连通域
union1 (MinSizeRegions, RemovedNoise)
* 显示
dev_display (Rotated)
dev_set_color ('green')
dev_set_draw ('fill')
dev_display (RemovedNoise)
disp_continue_message (WindowID, 'black', 'true')
stop ()**** 5、 在已经去除噪音连通域 区域切割字符*****************
* 在连通域(RemovedNoise) 切割(53, 75, 260, 356) 矩形区域内的 连通域
clip_region (RemovedNoise, RawSegmentation, 53, 75, 260, 356)
* 显示
dev_display (Rotated)
dev_display (RawSegmentation)
disp_continue_message (WindowID, 'black', 'true')
stop ()**** 6、 获取字符区域矩形框*****************
* 闭运算 链接字符内的点
closing_circle (RawSegmentation, ClosedPatterns, 6)
* 开运算 断开字符与字符
opening_rectangle1 (ClosedPatterns, SplitPatterns, 1, 5)
* 连通域分析
connection (SplitPatterns, ConnPatterns)
* 过滤非字符 面积过滤
select_shape (ConnPatterns, CharCandidates, 'area', 'and', 150, 5999)
* 外接正矩形
shape_trans (CharCandidates, CharBlocks, 'rectangle1')
* 显示
dev_set_draw ('margin')
dev_set_line_width (2)
dev_display (Rotated)
dev_display (CharBlocks)
disp_continue_message (WindowID, 'black', 'true')
stop ()
**** 7、 按照字符大小隔断 字符区域矩形框*****************
* 隔断链接在一起的字符区域 宽度为25的分割矩形框
partition_rectangle (CharBlocks, CharCandidates, 25, 100)* 矩形框分割字符连通域(分割矩形框与字符连通域 交集区域 )
intersection (CharCandidates, RawSegmentation, Characters)* 闭运算
closing_circle (Characters, IntermedCharacters, 2.5)* 显示
dev_set_colored (12)
dev_display (Rotated)
dev_set_draw ('fill')
dev_display (IntermedCharacters)
disp_continue_message (WindowID, 'black', 'true')
stop ()**** 8、筛选过滤字符区域 *****************
* 创建字符连通域
gen_empty_obj (Characters)
* 统计字符个数
count_obj (IntermedCharacters, NumIntermediate)* 筛选面积过小的连通域
dev_display (Rotated)
for i := 1 to NumIntermediate by 1dev_set_color ('red')* 选择字符区域select_obj (IntermedCharacters, Char, i)dev_display (Char)* 连通域分析connection (Char, CharParts)* 面积过滤select_shape (CharParts, CharCandidates, 'area', 'and', 40, 99999)* 合并union1 (CharCandidates, Char)dev_set_color ('green')dev_display (Char)* 连通域合并到 字符数组中concat_obj (Characters, Char, Characters)
endfor
* 形状过滤 高度过滤  筛选掉+号
select_shape (Characters, Heigh, 'height', 'and', 24, 50)
* 字符区域排序
sort_region (Heigh, FinalCharacters, 'character', 'true', 'row')* 显示
dev_set_color ('red')
dev_set_draw ('margin')
dev_display (Rotated)
dev_display (FinalCharacters)
dev_set_color ('green')
dev_set_line_width (3)
dev_set_shape ('rectangle1')
dev_display (FinalCharacters)
dev_set_shape ('original')
dev_set_line_width (1)
dev_set_draw ('fill')**** 9、字符识别 *****************
* 加载点阵打印字符集
read_ocr_class_mlp ('./DotPrint_NoRej.omc', OCRHandle)
* 执行字符识别
do_ocr_multi_class_mlp (FinalCharacters, Rotated, OCRHandle, Class, Confidence)
* 字符区域外接矩形
smallest_rectangle1 (FinalCharacters, Row11, Column1, Row2, Column21)
* 显示识别结果
disp_message (WindowID, Class, 'image', Row2, Column1, 'green', 'false')
dev_update_window ('on')

halcon 字符识别(点阵字符)相关推荐

  1. 如何为编程爱好者设计一款好玩的智能硬件(九)——LCD1602点阵字符型液晶显示模块驱动封装(下)...

    六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)--初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...

  2. c语言点阵字符,点阵的汉字程序

    DOS下的点阵汉字 你是否碰到过用启动盘启动系统后用DIR命令得到一串串莫名其妙的字符?有经验的朋友会告诉你:那是汉字.汉字?你不禁会问:怎么一个我一个也不认识.但那确确实实是汉字,如果你启动UCDO ...

  3. halcon字符识别快速入门

    注意:如果是争对汉字的识别,请翻阅我另一篇博客:https://blog.csdn.net/weixin_44490080/article/details/90208492 此处仅介绍24个字母以及数 ...

  4. Halcon 字符识别(初级)(0-9_A-z)

    字符集与图片 链接:https://pan.baidu.com/s/1z0i1kWpV1Rwsdpjtfso_GQ 提取码:9t3y 导入训练好的字符集 字符集路径 C:\Program Files\ ...

  5. 字符识别OCR研究三 字符识别,字符区域定位 经验总结:

    字符识别经验总结: 一.      视频帧中字符的识别(video ocr): 难点1:视频流中,出现字符后,立即开始采集含有字符的视频帧: 难点2:对视频帧中字符区域的定位: 难点3:快速有效的识别 ...

  6. halcon append_ocr_trainf 将字符添加到训练文件中

    目录 append_ocr_trainf(算子) 描述 参数 append_ocr_trainf(算子) append_ocr_trainf - 将字符添加到训练文件中. append_ocr_tra ...

  7. Halcon学习---光学字符训练、识别(OCR)算子

    1.append_ocr_trainf append_ocr_trainf(Character, // 选中当前目标Image, // 目标对应图片Class, // 字符的类别(名称) Traini ...

  8. 点阵字符和矢量字符的区别

    最近复习计算机图形学觉得这个知识点有点意思.把老师的ppt单独拿贴出来.做下笔记.

  9. amigo幸运字符什么意思_机器视觉之halcon入门(4)-字符识别

    第1节 第二个halcon程序 2.3.1 第二个halcon程序:字符识别 写这一章的时候距离第一章写完已经有2周之久了.为什么隔了这么久呢,因为我偷懒了,没有坚持下来...结果现在激情大不如写第一 ...

最新文章

  1. MongoDB--架构搭建(主从、副本集)之副本集
  2. Jira Concept- Issues
  3. HDU - 4292 Food(最大流+思维建边)
  4. java string转jsonobject_超赞!终于有网友用Java实现了第三方qq账号登录
  5. SQL Server AlwaysOn读写分离配置
  6. ios开发 MPMoviePlayerController 视频播放器
  7. OxA6可以作为C语言常量吗,淮阴师范学院期末考试c语言题库
  8. 无线遥控器应用在安防防盗中有怎样作用?
  9. xshell修改字体大小
  10. [转] 各船公司认识
  11. 计算机上显示找不到无线网络连接,笔记本没有无线网络连接怎么办 解决方法介绍【图解】...
  12. 微信小程序----Grid(九宫格)(flex实现九宫格布局)
  13. 深度学习模型知识产权保护怎么做?看看IJCAI 2021这场Workshop说了什么
  14. MySQL 查询统计订单
  15. NetFPGA-SUME10G以太网接口仿真问题
  16. Xcode Missing file的解决方案
  17. 复旦毕业生兼职送外卖,去你的“精神内耗”
  18. 通过CMD命令重启服务器
  19. html加载背景图片
  20. Allegro_Outline,RouteKeepin倒圆角

热门文章

  1. gps北斗卫星时间同步系统的使用场景配置描述
  2. 基于单片机c语言的豆浆机,基于单片机的智能豆浆机控制系统设计(附实物图,电路原理图,程序)...
  3. avro schema php,Hadoop之AVRO
  4. Ribbon负载均衡原理
  5. Android开发者值得深入思考的几个问题,赶紧收藏备战金三银四!
  6. 如何设计一个高性能积分系统
  7. 偏微分方程的类型及求解(一)(备份草稿)
  8. testlink mysql_记一下TestLink遇到的连接数据方面的一个问题
  9. uniapp怎么调起摄像头拍视频_uniapp实现简单直播功能
  10. python什么工作好找女朋友_Python不能帮你找到女朋友,却能让你成为有钱的单身狗。...