下面这个例子展示了HALCON中的一个例子:识别晶圆上面的数字ID号,具体说明见注释

*
* This example describes one step from the semiconductor product chain.
* In the front-end-of-line step, the ICs are printed on the wafer. To
* tag a single wafer from the production life line, each wafer receives
* an ID number, printed with the SEMI font. This ID number is read here.
*
*//这个例子描述了半导体产品链中的一个步骤。
*//在生产线前端的步骤中,集成电路被印在晶圆上。为了给生产生活线上的单个晶圆打上标签,每个晶圆都会收到一个ID号,用SEMI字体打印。这个ID号在这里被读取。
dev_update_off ()
dev_close_window ()
read_image (Image, 'ocr/wafer_semi_font_01')//预读入一幅图片
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)//窗口适应图片大小
dev_set_draw ('margin')//设置填充格式在'margin'模式下,轮廓的外观会受到dev_set_line_width,set_line_approx和set_line_style的影响。
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_set_line_width (2)//设置线宽
dev_set_colored (12)//设置多个输出颜色
*
read_ocr_class_mlp ('SEMI_NoRej.omc', OCRHandle)//从文件中读取 OCR 分类器
NumImages := 10//10张图片
for Index := 1 to NumImages by 1* * Segment characters//细分字符read_image (Image, 'ocr/wafer_semi_font_' + Index$'02')* Characters must be black-on-white, i.e., dark characters on a light background* //字符必须是黑白字符,即浅色背景的暗字符invert_image (Image, ImageInvert)//颜色反转mean_image (Image, ImageMean, 31, 31)//均值平滑dyn_threshold (Image, ImageMean, RegionDynThresh, 7, 'light')//局部阈值* Characters are often dotted. Therefore, we first merge close dots* that belong to the same character just before calling the operator connection* //图像上一般都是点,我们先闭合属于同一个元素的点closing_circle (RegionDynThresh, RegionClosing, 2.0)*//计算一个区域的连接组件。并且不同的区域使用不同颜色的点区分connection (RegionClosing, ConnectedRegions)* Filter out characters based on two facts:* 1. Characters are printed in SEMI-12. Therefore we can make strong assumptions*    on the dimensions of the characters* 2. Characters are printed along a straight line* //* 根据两个事实过滤掉字符:* //1.字符以 SEMI-12 打印。因此,我们可以对字符的维度做出强有力的假设* //2.字符按照直线打印* //选择一定大小的区域也就是字符select_shape (ConnectedRegions, SelectedRegions1, ['height','width'], 'and', [29,15], [60,40])*//寻找上面区域的中心area_center (SelectedRegions1, Area, RowCh, ColumnCh)*//取中值赋值MedianRow := median(RowCh)*//选择中心周围30内的区域,进一步过滤select_shape (SelectedRegions1, Chars, 'row', 'and', MedianRow - 30, MedianRow + 30)* * Read out segmented characters* //增强对比度enhance_contrast (Chars, ImageInvert, ImageRead)*//根据区域相对位置对区域进行排序。sort_region (Chars, CharsSorted, 'character', 'true', 'column')*//使用 OCR 分类器对多个字符进行分类。class中装真实数字do_ocr_multi_class_mlp (CharsSorted, ImageRead, OCRHandle, Class, Confidence)* //显示反转后的图片dev_display (ImageInvert)*//显示查找到的字符dev_display (CharsSorted)*//区域和区域中心。area_center (CharsSorted, Area1, Row, Column)*//求平均行坐标MeanRow := mean(Row)*//显示信息disp_message (WindowHandle, Class, 'image', MeanRow + 42, Column - 11, 'yellow', 'false')*//两种颜色显得立体disp_message (WindowHandle, Class, 'image', MeanRow + 40, Column - 10, 'slate blue', 'false')*//下面是控制是否继续的if (Index != NumImages)disp_continue_message (WindowHandle, 'black', 'true')stop ()endif
endfor
*//清除
clear_ocr_class_mlp (OCRHandle)

HALCON识别数字ID相关推荐

  1. 【K210】K210学习笔记六——MaixHub在线模型训练识别数字

    [K210]K210学习笔记六--MaixHub在线模型训练识别数字 前言 K210准备工作 数据的获取 MaixHub如何在线训练模型 训练模型在K210上的测试 小结 前言 本人大四学生,电赛生涯 ...

  2. 新加坡国家数字ID计划面部验证方案被质疑存在严重隐私问题

    新加坡政府正在推出面部生物识别技术,作为其国家数字身份识别系统的一部分,这让隐私倡导者感到担忧.这将使这个拥有500多万人口的岛国成为世界上第一个将面部数据纳入国家身份识别系统的国家,人们需要生物特征 ...

  3. RFID无线射频技术与数字ID技术术语表-鸿顺捷科普篇

    简介 RFID射频识别(英语:Radio Frequency IDentification,缩写:RFID)是一种无线通信技术,可以通过无线电信号识别特定目标并读写相关数据,而无需识别系统与特定目标之 ...

  4. 运行caffe识别数字的模型mnist

    <!---title:运行caffe识别数字的模型mnist--> <!---keywords:填写关键字, 以半角逗号分割--> 原始引用地址:  [运行caffe识别数字的 ...

  5. 【OpenCV/C++】KNN算法识别数字的实现原理与代码详解

    KNN算法识别数字 一.KNN原理 1.1 KNN原理介绍 1.2 KNN的关键参数 二.KNN算法识别手写数字 2.1 训练过程代码详解 2.2 预测分类的实现过程 三.KNN算法识别印刷数字 2. ...

  6. Tesseract训练识别数字

    Tesseract训练识别数字 一.软件环境 1.安装Tesseract 3.0.2 2.安装jTessBoxEditorFX训练工具 二.训练前需要准备的素材 1.多张包含数字的图片 三.开始训练 ...

  7. python3 get爬取网页标题、链接和链接的数字ID

    1.使用requests库请求网站 网页请求方式:(1)get :最常见的方式,一般用于获取或者查询资源信息,也是大多数网站使用的方式,响应速度快. (2)post:多以表单形式上传参数,因此除了查询 ...

  8. 安卓实现扫一扫识别数字

    本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发. 公司业务需求,需要做手机号码的识别.所以有了此篇文章,现在就将实现过程分享给大家. 1.准备工作 首先实现识别数字等字符,我们要 ...

  9. Android基于卷积神经网络的数字手势识别识别数字手势0-10 Android studio编译

    这篇博客主要基于我做的一个数字手势识别APP,具体分享下如何一步步训练一个卷积神经网络模型(CNN)模型,然后把模型集成到Android Studio中,开发一个数字手势识别APP.Android基于 ...

最新文章

  1. mysql的字符集设置为什么_为什么Mysql默认的字符集都是latin1
  2. 又一篇论文让我开始怀疑起了人生...
  3. 多线程的单元测试工具 - GroboUtils
  4. 如何在CLI命令行下运行PHP脚本,同时向PHP脚本传递参数?
  5. esxi备份,datastore,vmdk
  6. 实现Fragment的切换和ViewPager自动循环设置切换时间
  7. 人工智能实战_第八次作业_手写数学式子识别_廖盈嘉
  8. 计算机分级无法度量视频,雨林木风win7旗舰版电脑评分时出现无法度量视频播放性能...
  9. React 16 Jest ES6 Class Mocks(使用ES6语法类的模拟) 实例三、四
  10. php 树形结构实例,php:树形结构的算法实例
  11. 编码的奥秘txt_编码的奥秘(Charles Petzold著) PDF扫描版[9MB]
  12. 异步IO实现和应用场景
  13. 如何从键盘键入字符串c语言scanf,输入字符串的格式要求 用scanf输入字符型数据时,输入的格式要注意什么?...
  14. 基于asp.net大学生就业管理系统#毕业设计
  15. InSAR数据处理软件简介
  16. linux复制文件多份,Linux下同时复制多个文件
  17. Fabric.js 橡皮擦的用法(包含恢复功能)
  18. 英语词根记忆法(6)
  19. 详解笔记本电脑开机黑屏如何解决
  20. Linux虚拟机配置网络代理配置yum源

热门文章

  1. python编码最佳实践之总结
  2. 使用SQL如何把用逗号等字符隔开的字符串转换成列表,以及把列合并成符合隔开的字符串(转)...
  3. 等待队列wait queue
  4. windows codeblocks clang 3.7.0
  5. finally块中的代码一定会执行吗?
  6. TCP长连接和短连接
  7. 中国的数据科学家阶层正在形成
  8. UESTC 1698 The Game
  9. 鹅厂2020暑期实习第二次二面
  10. python学习手册笔记——20.迭代和解析