当前位置: 首页 > news >正文

Halcon提取车牌字符

原图:

最终效果图:

 1.通过阈值分割提取车牌区域
* 关闭窗口
dev_close_window ()
* 加载图片
read_image (Image, '1')
* 打开新窗口
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
* 显示图片
dev_display (Image)*********处理车牌区域*********
* 转成灰度图
rgb1_to_gray (Image, GrayImage)
* 提取范围内像素
threshold (GrayImage, Region, 80, 100)
* 连通区域
connection (Region, ConnectedRegions)
* 筛选面积
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 9000, 99999)

 处理后结果如下:

 2.抠图并修正图片
*********图片转正*********
* 生成一个矩形
shape_trans (SelectedRegions, RegionTrans, 'rectangle2')
* 获取矩形中心点
area_center (RegionTrans, Area, Row, Column)
* 获取矩形的角度
orientation_region (RegionTrans, Phi)
* 生成一个放射矩阵
vector_angle_to_rigid (Row, Column, Phi, Row, Column, rad(0), HomMat2D)
* 在进行斜切变换
hom_mat2d_slant (HomMat2D, rad(15), 'x', Column, Row, HomMat2DSlant)
* 使用矩形区域使用放射矩阵
affine_trans_region (RegionTrans, RegionAffineTrans, HomMat2DSlant, 'nearest_neighbor')
* 对图片使用放射矩阵
affine_trans_image (Image, ImageAffineTrans, HomMat2DSlant, 'constant', 'false')
* 裁剪车牌区域
reduce_domain (ImageAffineTrans, RegionAffineTrans, ImageReduced)
dev_clear_window ()
dev_display (ImageReduced)

生成矩形:

图片修正:

裁剪车牌:

 3.识别图片字符处理对汉字进行处理
*********识别图片字符处理对汉字处理*********
rgb1_to_gray (ImageReduced, GrayImage1)
threshold (GrayImage1, Region1, 170, 255)
* 闭运算
closing_circle (Region1, RegionClosing, 1)
opening_circle (RegionClosing, RegionOpening, 1.7)
connection (RegionOpening, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions1, ['area','column'], 'and', [14,191], [600,414])

处理后的最终结果图:

4. 最后进行区域排序
* 进行区域排序
sort_region (SelectedRegions1, SortedRegions, 'first_point', 'true', 'column')
dev_display (SortedRegions)* 组装苏字
* 取出排序之后第一个区域
select_obj (SortedRegions, ObjectSelected1, 1)
select_obj (SortedRegions, ObjectSelected2, 2)
select_obj (SortedRegions, ObjectSelected3, 3)
union2 (ObjectSelected1, ObjectSelected2, RegionUnion)
union2 (RegionUnion, ObjectSelected3, RegionUnion1)* 找出除了苏字的
select_obj (SortedRegions, ObjectSelected4, 4)
select_obj (SortedRegions, ObjectSelected5, 5)
select_obj (SortedRegions, ObjectSelected6, 6)
select_obj (SortedRegions, ObjectSelected7, 7)
select_obj (SortedRegions, ObjectSelected8, 8)
select_obj (SortedRegions, ObjectSelected9, 9)
select_obj (SortedRegions, ObjectSelected10, 10)* 合并所有的
* 定义一个空的对象
gen_empty_obj (EmptyObject)
concat_obj (EmptyObject, RegionUnion1, EmptyObject)
concat_obj (EmptyObject, ObjectSelected4, EmptyObject)
concat_obj (EmptyObject, ObjectSelected5, EmptyObject)
concat_obj (EmptyObject, ObjectSelected6, EmptyObject)
concat_obj (EmptyObject, ObjectSelected7, EmptyObject)
concat_obj (EmptyObject, ObjectSelected8, EmptyObject)
concat_obj (EmptyObject, ObjectSelected9, EmptyObject)
concat_obj (EmptyObject, ObjectSelected10, EmptyObject)

最终效果如下:

相关文章:

  • 浏览器工作原理05 [#] 渲染流程(上):HTML、CSS和JavaScript是如何变成页面的
  • Web 架构之缓存策略实战:从本地缓存到分布式缓存
  • PHP语言核心技术全景解析
  • ADI的BF609双核DSP怎么做开发,我来说一说(五)LAN口测试
  • 湖北理元理律师事务所:构建科学债务优化体系的四重维度
  • React从基础入门到高级实战:React 实战项目 - 项目四:企业级仪表盘
  • Android设备推送traceroute命令进行网络诊断
  • 三十三、面向对象底层逻辑-SpringMVC九大组件之HandlerExceptionResolver接口设计
  • 【深度学习新浪潮】RoPE对大模型的外推性有什么影响?
  • [蓝桥杯]兰顿蚂蚁
  • [蓝桥杯 2024 国 B] 立定跳远
  • 小白如何在cursor中使用mcp服务——以使用notion的api为例
  • 常用方法封装(脱敏、复制、格式化日期)
  • 文件对话框
  • 振动力学:二自由度系统
  • .NET AOT 详解
  • 【单片机期末】串行口循环缓冲区发送
  • 抽象工厂模式深度解析:从原理到与应用实战
  • 前端脱敏展示姓名、手机号、邮箱
  • IDEA运行Tomcat出现乱码问题解决汇总
  • 如何对网站做镜像/360推广联盟
  • 网站建设客户在哪里找/百度免费下载安装百度
  • 深圳网站开发ucreator/南宁百度关键词推广
  • 做路牌的网站/东莞网站制作公司
  • 深圳做网站公司 南山/西安网站设计
  • 网站建设北京/谷歌搜索引擎网页版入口