Halcon基础-二维码识别

news2024/10/18 7:04:22

Halcon基础-二维码识别

  • 1、二维码分类
  • 2、代码实现
  • 3、运行效果


1、二维码分类

二维码(Quick Response Code,简称 QR Code)是一种矩阵式二维码,能够在水平和垂直方向上存储信息。它们最初由日本的丰田子公司Denso Wave在1994年发明,目的是为了追踪汽车制造过程中的零件,并且能够比传统条形码存储更多的信息。随着时间的发展,二维码的应用范围不断扩大,涵盖了从广告到物流等多个领域。根据功能和应用的不同,二维码可以分为以下几类:

标准二维码:这是最基本的类型,用于存储文本、URL链接、电话号码等信息。当用设备扫描这些二维码时,它们会直接引导用户到指定的网页或显示存储的信息。
营销二维码:这类二维码通常用于市场营销活动,例如促销活动、优惠券发放、产品信息展示等。商家可以通过营销二维码来吸引顾客,提高品牌知名度。
支付二维码:随着移动支付的普及,支付二维码成为了一种流行的支付方式。消费者可以通过扫描商家提供的二维码来完成支付操作。
安全二维码:这类二维码通常包含加密信息,用于身份验证、安全登录等场景。安全二维码通常有一套复杂的加密算法来保证信息的安全性。
位置二维码:用于标识特定的位置,如博物馆中的展品介绍、旅游景点信息等。
Wi-Fi连接二维码:通过扫描此类二维码,可以直接连接到指定的Wi-Fi网络,无需手动输入密码。
个人名片二维码 :包含个人联系信息,如姓名、电话号码、电子邮件地址等,方便交换个人信息。
物流二维码:用于跟踪货物的运输状态,从发货地到收货地的所有物流信息都可以通过扫描二维码获得。
健康码/通行码:特别是在疫情期间,健康码成为了人们出入公共场所的一种凭证,显示个人的健康状况以及是否适合进入某些区域。
以上是二维码的一些主要分类,每一种都有其特定的应用场景和服务对象。随着技术的发展,二维码的应用将会更加广泛和深入。

2、代码实现

1、创建文件,打开Halcon软件,界面如下:没有显示出的界面可以在窗口菜单栏点击显示出来。
在这里插入图片描述
2、编写代码
这里我们实现的是QR二维码的识别,完整代码如下:

dev_get_window (WindowHandle)
*这里选择自己的二维码图片路径
read_image (Image, 'C:/Users/Administrator/Desktop/code1.bmp')
*get_image_size (Image, Width, Height)
*draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
*gen_rectangle1 (Rectangle, 329, 396, 479, 530)
*reduce_domain(Image, Rectangle, Image1)
*crop_domain (Image1, ImagePart3)
rgb1_to_gray (Image, GrayImage) 
scale_image (GrayImage, ImageScaled, 1, 6)
create_data_code_2d_model ('QR Code', 'default_parameters', 'maximum_recognition', DataCodeHandle)
*超时时间设置
set_data_code_2d_param (DataCodeHandle, 'timeout', 300)
*设置二维码极性 dark_on_light 白色背景黑码 light_on_dark 
set_data_code_2d_param (DataCodeHandle, 'polarity', 'dark_on_light')
*最小码粒子数
set_data_code_2d_param (DataCodeHandle, 'symbol_size_min', 21)
*最大码粒子数
set_data_code_2d_param (DataCodeHandle, 'symbol_size_max', 57)
*对比度
set_data_code_2d_param (DataCodeHandle, 'contrast_min', 25)
*最小码粒子像素
set_data_code_2d_param (DataCodeHandle, 'module_size_min', 1)
*最大码粒子像素
set_data_code_2d_param (DataCodeHandle, 'module_size_max',30)
set_data_code_2d_param (DataCodeHandle, 'module_gap', 'no')
find_data_code_2d (GrayImage, SymbolXLDs, DataCodeHandle, 'stop_after_result_num', 1, ResultHandles, DecodedDataStrings)

3、运行效果

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2217607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单细胞分析Seurat使用相关的10个问题答疑精选!

作为一个刚刚开始进行单细胞转录组分析的菜鸟,R语言底子没有,有时候除了会copy外,如果你让我写个for循环,我只能cross my fingers。。。。 于是我看见了https://satijalab.org/seurat/,Seurat是一个R软件包&#xff0…

基于SpringBoot的课程辅助教学系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

java_跳转控制语句break

案例 1-100 以内的数求和,求出 当和 第一次大于 20 的当前数 【for break】 public class BreakExercise { //编写一个 main 方法 public static void main(String[] args) { //1-100 以内的数求和,求出 当和 第一次大于 20 的当前数 【for break】 …

基于 C# .NET Framework 开发实现 WebService服务实例详解——一文学懂WebService服务开发技术及应用

目录 1. Web Service 概念介绍 1.1 什么是 Web Service 1.2 SOAP(简单对象访问协议) 1.3 WSDL(Web 服务描述语言) 1.4 应用场景 2. 创建 Web Service 项目 3. 编写 Web Service 代码 3.1 打开 WebService1.asmx.cs 3.2 编…

鸿蒙网络编程系列3-TCP客户端通讯示例

1. TCP简介 TCP协议是传输层最重要的协议,提供了可靠、有序的数据传输,是多个广泛使用的表示层协议的运行基础,相对于UDP来说,TCP需要经过三次握手后才能建立连接,建立连接后才能进行数据传输,所以效率差了…

太速科技-426-基于XC7Z100+TMS320C6678的图像处理板卡

基于XC7Z100TMS320C6678的图像处理板卡 一、板卡概述 板卡基于独立的结构,实现ZYNQ XC7Z100DSP TMS320C6678的多路图像输入输出接口的综合图像处理,包含1路Camera link输入输出、1路HD-SDI输入输出、1路复合视频输入输出、2路光纤等视频接口,…

一文了解微服务与多租户

在当今快速发展的数字化时代,软件架构的选择对于企业的成功至关重要。微服务和多租户作为两种较为热门的架构模式,正逐渐成为企业构建高效、灵活和可扩展软件系统的热门选择。 一、微服务架构 (一)微服务的定义与概念 微服务是一…

HarmonyOS开发(状态管理,页面路由,动画)

官网 https://developer.huawei.com/consumer/cn/ 一、状态管理 在声明式UI中,是以状态驱动视图更新 1.State 状态(State):指驱动视图更新的数据,被装饰器标记的变量 视图(View):基于UI描述渲染得到用户界面 说明 State装饰…

《七度荒域:混沌之树》风灵月影二十二项游戏辅助:上帝模式/无限HP和EP/金币不减

《七度荒域:混沌之树》是款国产Roguelike银河恶魔城横版动作游戏,融合刷宝玩法。玩家将扮演修补世界的命运之子,探寻碎裂世界的秘密,在战斗轮回中成长,挑战未知与隐秘力量。风灵月影版修改器提供更多自定义和游戏体验调整选项&…

项目错误合集-自用

day1 验证码错误前后端交互错误 今天在写修改密码时,前端传递给后端验证码时,第一次犯错,redis中空指针异常,检查后发现 redis中没有账号的键,调试发现,我将user的account的键写成了getYzm 写对之后,发现出现了验证码不正确的错误,但是我是将redis中的数据直接复制过…

STM32——关于I2C的讲解与应用

1、什么是I2C? I2C(Inter-Integrated Circuit)是一种通用的总线协议。它是由Philips(飞利浦)公司,现NXP(恩智浦)半导体开发的一种简单的双向两线制总线协议标准。是一种半双工的同步通信协议。 2、I2C协议标准 I2C协议使用两根总线线路&am…

Bilidown v1.2.4 B站在线视频下载解析工具中文单文件版

Bilidown是一款专为B站视频下载而设计的工具,一款简洁好用的B站视频下载工具,支持由UP主上传的单集,多集以及相关封面,弹幕,字幕,音乐,刮削等等,支持任意粒度批量组合,登…

10-Python基础编程之函数

Python基础编程之函数 概念基本使用参数单个参数多个参数不定长参数缺省参数注意事项 返回值使用描述偏函数高阶函数返回函数匿名函数闭包装饰器生成器递归函数函数的作用域 概念 写了一段代码实现了某个小功能:然后把这些代码集中到一块,起一个名字&am…

c++就业 创建新的设计模式

virtual自然生成虚函数表(一维数组记录了虚函数地址 通过偏移可以调相对应的方法) vp 编译的时候地址自然会赋值给相对应的对象 如何体现多态 没有虚函数重写 那么就是早绑定 就比如subject会转换成base类型 p指向base对象 有虚函数就是晚绑定 p指向subj…

深度学习神经网络的7大分类

深度学习中的神经网络可通过其结构和功能分为多种类型,每种都针对特定的数据特征和应用场景进行了优化。 深度学习7大神经网络如下: 01 前馈神经网络(Feedforward Neural Networks, FNN): 这是最基本的神经网络形式…

AI周报(10.6-10.12)

AI应用-AI中医诊疗 AI中医诊疗通过整合中医“望、闻、问、切”的传统诊断方法,并结合现代AI技术,如自然语言处理和图像识别,来辅助医生进行更精准的诊断。 望诊,作为中医四诊之首,其精髓在于“司外揣内”。医者通过细致…

Git核心概念图例与最常用内容操作(reset、diff、restore、stash、reflog、cherry-pick)

文章目录 简介前置概念.git目录objects目录refs目录HEAD文件 resetreflog 与 reset --hardrevert(撤销指定提交)stashdiff工作区与暂存区差异暂存区与HEAD差异工作区与HEAD差异其他比较 restore、checkout(代码撤回)merge、rebase、cherry-pick 简介 本文将介绍Git几个核心概念…

centors7升级GLIBC2.18

错误来源:找不到GLIBC2.18,因为glibc的版本是2.17 网上大多教程方法,反正我是行不通: 方法1:更新源,然后使用yum安装更新 方法2:下载源码,configrue,make执行 wget h…

添加卡巴斯基杀毒软件(KES)的更新源

最近不知道怎么了,家里的电脑卡巴斯基(KES)怎么更新都更新不了,在网上找到了几个卡巴斯基的服务器: 添加步骤: 1.双击右下角的卡巴斯基图标。 2.依次按如下图示添加: 以下这步是最关键的,一定要…

原型基于颜色的图像检索与MATLAB

原型基于颜色的图像检索与MATLAB 摘要 基于内容的检索数据库(图像)已经变得越来越受欢迎。为了达到这一目的,需要发展算法检测/模拟工具,但市场上没有合适的商业工具。 本文介绍了一个模拟环境,能够从数据库中检索图像直方图的相似之处。该…