Halcon例程之bottle.hdev

2023-12-25 14:48
文章标签 halcon 例程 hdev bottle

本文主要是介绍Halcon例程之bottle.hdev,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 重要的算子说明:

1、create_text_model_reader( : : Mode, OCRClassifierMLP : TextModel)

       功能:创建一个文字模型

       参数:输入:

       Mode:选择文本分割方法,可选为 'auto' 和 'manual'(手动).;如果Mode=‘auto’,则后续 find_text 将会提取任意大小的字体;如果Mode=‘manual’,则一定要在set_text_model_param中设定字体的高度和宽度。

       OCRClassifierMLP :分类器名称

        参数:输出:

        TextModel:输出新的文本模型

2、set_text_model_param( : : TextModel, GenParamName, GenParamValue : )

        功能:设置文本模型参数

        输入参数:

                TextModel:输入文本模型

                 GenParamName:设定在提取文本时需要使用的参数名字;在Mode=‘auto’和‘manual’时,分别有不同的可选参数设 置,一定要注意不要设置错了(根据Mode设置),具体可以参考Halcon算子详解。下文中的例子中的文本特点是明显比周围的宽,所以设定参数为'min_stroke_width'。 'text_line_structure'设定意义为:确定需要寻找的文本的结构以有效的提高提取的准确性。该参数为一个字符串,包含的信息为每一个字符快所蕴含的字符个数与空间。例如关于日期的一个数各式为:月,日,年;每一个块有两个字符,则改参数可以设置为‘2 2 2’,如果年这个数字块有4个字符,则该参数可以设置为‘2 2 2-4’.

                 GenParamValue:设定提取文本的参数的值

3、find_text(Image : : TextModel : TextResultID)

            功能:根据设置的文本模型在图像中找到具体的字符

            输入参数:

                     Image:需要检测的图像

                     TextModel:已经设定好的文本模型

           输出参数:

                     TextResultID:字符分割后的句柄

4、get_text_object( : Characters : TextResultID, ResultName : )

         功能:获取字符分割后的图形结果

        输出参数:

                 Characters:  字符结果

        输入参数:

                 TextResultID:分割字符后的句柄

                 ResultName:以什么方式显示字符结果。‘all_lines’:返回所有的分割结果,字符排序方式为从上到下从左到右。

FontName := 'Industrial_0-9_NoRej'
* FontName := 'bottle'
* 
* Step 1: Segmentation
dev_update_window ('off')
read_image (Bottle, 'bottle2')
get_image_size (Bottle, Width, Height)
dev_close_window ()
dev_open_window (0, 0, 2 * Width, 2 * Height, 'black', WindowID)
set_display_font (WindowID, 16, 'mono', 'true', 'false')
dev_display (Bottle)
disp_continue_message (WindowID, 'black', 'true')
stop ()
* 
* Create Automatic Text Reader and set some parameters
create_text_model_reader ('auto', FontName, TextModel)
* The printed date has a significantly higher stroke width
set_text_model_param (TextModel, 'min_stroke_width', 5)
* The "best before" date has a particular and known structure
set_text_model_param (TextModel, 'text_line_structure', '2 2 2')
* 
* Read the "best before" date
find_text (Bottle, TextModel, TextResultID)
* 
* Display the segmentation results
get_text_object (Characters, TextResultID, 'all_lines')
dev_display (Bottle)
dev_display (Characters)
stop ()
* Display the reading results
get_text_result (TextResultID, 'class', Classes)
area_center (Characters, Area, Row, Column)
for Index := 0 to |Classes| - 1 by 1disp_message (WindowID, Classes[Index], 'image', 80, Column[Index] - 3, 'green', 'false')
endfor
* 
* Free memory
clear_text_result (TextResultID)
clear_text_model (TextModel)

 

这篇关于Halcon例程之bottle.hdev的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/535895

相关文章

Java的ArrayDeque使用例程

题目要求为: 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2、1,则当我们对n=5、8、4、2进行验证的时候,就可以直接

gcc make cmake例程

main.cpp文件: #include <iostream>#include "utils.h"int main(void) {int a = 1;int b = 2;int c = AddFunc(a, b);std::cout<< c <<std::endl;return 0;} utils.h文件: #pragma onceint AddFunc(int a, int b);

【PSINS】SINS与航位推算的EKF例程讲解|三维轨迹

文章目录 SINS与航位推算例程构造滤波前滤波主体滤波后处理 运行结果源代码 SINS与航位推算 SINS是捷联惯导,略。 航位推算: 本文讲解的程序是PSINS工具箱(相关文章:PSINS初学指导,https://blog.csdn.net/callmeup/article/details/136459824)的一个函数,在此基础上进行优化。如果要运行,需要先安装工具箱

将DIB/bitmap读入内存并转为 halcon hobject

问题由来:在mfc halcon混合编程中,发现halcon::readimage() 函数读取图片(8位8M/bmp)至少200ms,当然24位 32位bmp 倍数所消耗的时间倍数上涨。那么有没有什么方法加快读取速度?目前发现一个亲测可行的方式:  1、通过 DIBAPI 读取图片,下载可转到点击打开链接,赚点积分 2、获取所读读片的图像数据的首地址,注意非结构头地址 3、通过halcon

Halcon选择一堆region中面积第N大的region的算法实现

以下图为例: 比如我想把面积第2小的那个“小正方形”选择出来,算法代码如下: 1 read_image (Yuan, 'C:/Users/happy xia/Desktop/yuan.png')2 binary_threshold (Yuan, Region, 'max_separability', 'dark', UsedThreshold)3 connection (Regio

Halcon编程-基于形状特征的模板匹配

halcon软件最高效的一个方面在于模板匹配,号称可以快速进行柔性模板匹配,能够非常方便的用于缺陷检测、目标定位。下面以一个简单的例子说明基于形状特征的模板匹配。      为了在右图中,定位图中的三个带旋转箭头的圆圈。注意存在,位置、旋转和尺度变化。 上halcon程序 1 * This example program shows how to find scaled and

Halcon 几何变换之仿射变换

几何变换包括仿射变换、投影变换、图像变换以及极坐标变换。不同的资料可能会有不同的划分。它们具体的数学表达感性趣的可以自己查找。这里只描述Halcon的仿射变换运用。 Halcon中的放射变换常用的两种方式:旋转以及缩放(当然平移也常用,但是不属于仿射变换)。变换涉及到三个量,一个是待变换的图像或者说矩阵,一个变换矩阵,以及变换后的图像或者矩阵。所以在Halcon中会有两种运用方式。第一种:已知待

halcon 仿射变换功能函数,

1.仿射变换有:平移、旋转、缩放、斜切。 2.要进行仿射变换,必须先获取变换矩阵。要获取变换矩阵,必须先获取特征点坐标、角度等信息,几何匹配和bolb是获取特征点的高效方法,除此之外还有其它方法,只要能稳定的求出特征点即可。 3.仿射变换流程    (1.)获取特征点坐标、角度    (2.)计算仿射变换矩阵    (3.)对图像、区域、轮廓进行仿射变换 4.根据特征点、角度计算仿射变

halcon 的图像坐标转到实际的机械坐标的标定

所谓手眼系统,就是人眼睛看到一个东西的时候要让手去抓取,就需要大脑知道眼睛和手的坐标关系。如果把大脑比作B,把眼睛比作A,把手比作C,如果A和B的关系知道,B和C的关系知道,那么C和A的关系就知道了,也就是手和眼的坐标关系也就知道了。 相机知道的是像素坐标,机械手是空间坐标系,所以手眼标定就是得到像素坐标系和空间机械手坐标系的坐标转化关系。 在实际控制中,相机检测到目标在图像中的像

C#版Halcon:HalconDotNet最详细最全面教程(万字详细总结)

文章目录 第一部分:Halcon基础1. Halcon简介Halcon的安装和配置 2. Halcon界面和工具图像显示窗口的使用 3. 图像处理基础图像的表示和存储图像的基本操作 4. 图像预处理图像增强技术图像去噪方法图像二值化 第二部分:Halcon进阶5. 形态学操作腐蚀和膨胀开运算和闭运算形态学梯度 6. 特征提取边缘检测角点检测区域特征 第三部分:Halcon高级应用7. 模