Halcon学习笔记2

halcon学习笔记2-二维码检测 halcon学习笔记-二维码检测 拿到图像,一般先要对图像做预处理,当然你的图像质量很高就可以不用做了。常用的方法有: (1)emphasize,图像锐化,突出图像的轮廓(高频)部分 (2)zoom_image_factor,图像缩放 用到的基本算子有: create_data_code_2d_model():创建二维码模型 SymbolType:设置二维码的类型 GenParamName:设置二维码的参数字段 GenParamValue:设置二维码参数字段对应的值 DataCodeHandle:二维码模型 阅读详情

模板匹配+测量模型

*模板匹配+测量模型
*===========模板匹配================
*获取窗口句柄
dev_get_window (WindowHandle)
*创建窗口句柄
*dev_open_window (0, 0, 512, 512, 'black', WindowHandle1)
read_image (Image, '1.jpg')
rgb1_to_gray (Image, GrayImage)
*形状模型路径
shapePath:='shape.xyz'

*判断模型是否存在
file_exists (shapePath, FileExists)
if (FileExists)
    *读取形状模型
    read_shape_model (shapePath, ModelID)
    
else
    *文件不存在,创建模型(难)
    
    *创建ROI
    
     stop ()
    draw_rectangle2 (WindowHandle, Row, Column, Phi, Length1, Length2)
    gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
    reduce_domain (GrayImage, Rectangle, ImageReduced)
    crop_domain (ImageReduced, ImagePart)
    *注意:最后的模型ID要保持一致
     create_shape_model (ImagePart, 'auto', 0, 6.28, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
    *存储形状模型
     write_shape_model (ModelID, shapePath)
     
endif
*========测量模型==========================================
metPath:='met.ccb'
file_exists (metPath, FileExists1)

if (FileExists1)
    *读取测量模型
    read_metrology_model (metPath, MetrologyHandle)
else
    *1.创建测量模型
    create_metrology_model (MetrologyHandle)
     *通过代码获取图像的宽高
    *read_image (Image, '1.jpg')
    *get_image_size (Image, Width, Height)
    *set_metrology_model_image_size (MetrologyHandle, Width, Height)
   
    *2.设置图像模型的图像大小(可选,使用会提高模型性能)
    set_metrology_model_image_size (MetrologyHandle, 1920, 1080)
    *3.创建测量模型的ROI(多个)
    *左侧直线0
    stop ()
    draw_line (WindowHandle, Row11, Column11, Row2, Column2)
    gen_region_line (RegionLines, Row11, Column11, Row2, Column2)
    add_metrology_object_line_measure (MetrologyHandle, Row11, Column11, Row2, Column2, 20, 5, 1, 30, [], [], Index)
    *右侧直线1
    draw_line (WindowHandle, Row12, Column12, Row21, Column21)
    gen_region_line (RegionLines1, Row12, Column12, Row21, Column21)
    add_metrology_object_line_measure (MetrologyHandle, Row12, Column12, Row21, Column21, 20, 5, 1, 30, [], [], Index1)
    *圆2
    draw_circle (WindowHandle, Row3, Column3, Radius)
    gen_circle (Circle, Row3, Column3, Radius)
    add_metrology_object_circle_measure (MetrologyHandle, Row3, Column3, Radius, 20, 5, 1, 30, [], [], Index2)
      
    write_metrology_model (MetrologyHandle, metPath)
    
endif

*4.修改模型/对象参数(选做)
    read_image (Image2, '1.jpg')
    rgb1_to_gray (Image2, GrayImage2)
    find_shape_model (GrayImage2, ModelID, 0, rad(360), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row4, Column4, Angle1, Score1)
    set_metrology_model_param (MetrologyHandle, 'reference_system', [Row4, Column4, Angle1])
    *set_metrology_object_param (ModelID, 'all', 'num_instances', 1)
*========循环遍历图片================================
*显示模板匹配的轮廓(contours)
get_shape_model_contours (ModelContours, ModelID, 1)
*加粗轮廓
dev_set_line_width (5)
*设置颜色
*只能设置一个颜色
*dev_set_color
*设置多个颜色3,6,12
dev_set_colored (12)

for i := 1 to 4 by 1
    imgName:=i+'.jpg'
    read_image (Image1, imgName)
    rgb1_to_gray (Image1, GrayImage1)
    find_shape_model (GrayImage1, ModelID,0, rad(360), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle, Score)
    
    *显示形状模型匹配的轮廓(别记:C#无法使用)
    *dev_display_shape_matching_results (ModelID, 'red', Row1, Column1, Angle, 1, 1, 0)
    *仿射变换实现形状模型匹配轮廓的展示
    *创建一个齐次矩阵
    hom_mat2d_identity (HomMat2DIdentity)
    *在齐次矩阵上创建平移矩阵
    hom_mat2d_translate (HomMat2DIdentity,Row1, Column1,  HomMat2DTranslate)
    *在平移矩阵的基础上创建旋转矩阵
    hom_mat2d_rotate (HomMat2DTranslate, Angle, Row1, Column1, HomMat2DRotate)
    *在旋转矩阵基础上创建缩放矩阵
    *hom_mat2d_scale (HomMat2DRotate, 2, 2, Row1, Column1, HomMat2DScale)
    *应用矩阵到xxx上
    *轮廓
    affine_trans_contour_xld (ModelContours, ContoursAffineTrans, HomMat2DRotate)
    *图像
    *affine_trans_image
    *多边形
    *affine_trans_polygon_xld
    *区域
    *affine_trans_region
    *======测量模型的5-7步=================================
    *5.模板匹配对齐
    *先模板匹配再对齐
    align_metrology_model (MetrologyHandle,Row1, Column1, Angle)  
    *6应用模型
    apply_metrology_model (GrayImage1, MetrologyHandle)
    *7获得结果
    
    *ROI真实轮廓
    get_metrology_object_result_contour (LLine, MetrologyHandle, 0, 'all', 1.5)
    get_metrology_object_result_contour (RLine, MetrologyHandle, 1, 'all', 1.5)
    get_metrology_object_result_contour (Yuan, MetrologyHandle, 2, 'all', 1.5)
    *获取真实参数
    get_metrology_object_result (MetrologyHandle, 0, 'all', 'result_type', 'all_param', LLineP)
    get_metrology_object_result (MetrologyHandle, 1, 'all', 'result_type', 'all_param', RLineP)
    get_metrology_object_result (MetrologyHandle, 2, 'all', 'result_type', 'all_param', YuanLineP)
    
    *8.根据参数计算结果
    *angle_ll线和线的夹角
    *angle_lx线和水平线的夹角
    *distance_pp点和点的距离
    *distance_pl点到线的距离
    *distance_ss线段到线段的距离
    distance_pl (LLineP[0],LLineP[1], RLineP[0], RLineP[1],RLineP[2], RLineP[3], Distance)
    
    
    
    *循环前给个提示
    if (i<4)
    disp_continue_message (WindowHandle, 'black', 'true')
    endif
    *显示当前第几张
    dev_disp_text ('当前第'+i+'张,还剩'+(4-i)+'张', 'window',0, 0, 'black', [], [])
    stop ()
    
endfor

*释放形状模型
clear_shape_model (ModelID)
*释放测量模型
clear_metrology_model (MetrologyHandle)


Halcon WPF 开发学习笔记(2):Halcon导出c#脚本和WPF初步开发 我目前搜了一下我了解的机器视觉软件,有如下特点优点缺点兼容性教学视频(B站前三播放量)OpenCV开源,免费,因为有源码所以适合二次开发学习成本极高,卡学历。研究生博士起步底层使用C++,可以使用Python或者C#调DLLHalcon商用,功能全面,已经训练好了算子(就是第三方接口)认证成本高,正版需要1.1W美元支持C,C++,C#。VisionPro商用,比Halcon便宜一些,简单点性能差点,功能差点C++,C#海康威视开发,加密狗最便宜,低代码开发不了解。 阅读详情

相关推荐

电路仿真软件PSIM简介

PSIM的基本使用操作...

qq_55203246的博客 7180

Halcon学习笔记——Day2

8、通过dev_update_off关闭更新程序计数器、更新变量、更新图像窗口,可加快程序运行速度。9、dev_update_window 关闭或打开程序图像窗口 dev_update_var、dev_update_pc关闭或打开更新变量、更新程序计数器窗口。2、参数分别为:窗体句柄、显示的文本、使用的坐标系(window还是image)、文本所在行坐标、文本所在列坐标、文本颜色、文本是否有背景板。18、dev_open_window_fit_image:根据图像的宽高打开一个窗口。

Chris的博客 1432

新手必看:5分钟搞定Unitree Go1机器狗Gazebo仿真运动控制(附按键图解)

本文为新手提供了Unitree Go1机器狗在Gazebo仿真环境中实现运动控制的快速指南。通过5分钟极简配置和按键图解,帮助开发者快速掌握宇树科技明星产品的基础操作,包括环境搭建、仿真启动和运动控制技巧,适合零基础用户快速上手。

weixin_42550597的博客 300

HALCON学习笔记2

来自黑土HALCON学习教程,region运算之 骨骼网络鞍点 *然后做二值化,取亮的部分;灰度范围80~255; threshold (Keypad, Region, 80, 255) //二值化 *二值化之后,图像窗口中出现的情况是我们得到的regions(区域); *计算区域连通 connection (Region, ConnectedRegions) //连通区域 *选择点所

juluwangriyue的博客 1032

Docker容器化部署Ceph集群:从零搭建高可用分布式存储

本文详细介绍了如何使用Docker容器化部署Ceph集群,从零搭建高可用分布式存储系统。通过环境一致性、快速扩容和资源隔离等优势,Docker显著提升了Ceph集群的部署效率和运维便捷性。文章涵盖硬件规划、镜像选择、单节点部署、多节点扩展及性能调优等实战内容,帮助开发者快速掌握分布式存储系统的容器化部署技巧。

weixin_29081101的博客 422

制造业批次管理中双计量单位动态转换的实践指南

本文详细介绍了制造业批次管理中双计量单位动态转换的实践指南,特别是在SAP系统中的配置与操作步骤。通过实际案例展示了如何解决采购与生产部门计量单位不一致的问题,提升物料管理效率。重点讲解了批次特性配置、移动类型调整及常见问题排查方法,适用于金属加工、化工等多个行业。

weixin_29228203的博客 159

Halcon学习笔记(2-2 图片及文件调用)

本人Halcon小白,也是第一次发这类的学习笔记,经常看见有大佬在这个平台上发一些教程,想着把自己的学习过程记录下或许是一个比较好的习惯,正好最近考研上岸,导师搞机器视觉方向的,所以开始自学Halcon,笔记比较简洁,应该说只是一个学习笔记大纲,如果大家有什么疑惑可以上自学网搜索相关教程,我是跟着上面的视频学习的,当然,如果笔记上有什么错误,欢迎大家批评指正。第一章是关于Halcon背景的介绍和软件的安装,我就不记录了,安装包上官网上下载即可,怎么安装网上也有教程,22版的Halcon我不知道为什么下载之后

fightingboy1的博客 439

从零构建Elasticsearch MCP代理:自然语言查询背后的技术揭秘

本文深入解析如何从零构建Elasticsearch MCP代理,实现自然语言查询的技术架构与实战应用。通过MCP协议与Elasticsearch的结合,系统能够将自然语言转换为精确的DSL查询,提升非技术用户的数据查询效率。文章详细介绍了核心架构、DSL生成引擎、端到端系统搭建及生产环境最佳实践,为开发者提供全面的技术指南。

lll78的博客 877

Halcon学习笔记——Day2-2(增加学习量)

1、threshold:如果对彩图进行操作,则默认对第一个通道进行二值化,即红色分量2、binary_threshold:快速二值化2.1 使用场景:计算速度较快,当图片黑白分明(即灰度值差别较大时),使用该算子。2.2 参数:输入的图像、二值化后的区域、使用的算法(最大方差、平滑直方图)、需要获取亮区域还是暗区域、自动算出的阈值2.3 可选的算法:最大方差Maximize separability:通过求出方差,将图像的灰度值分为高低灰度值;

Chris的博客 1132

unity6000.0.3版本URP下ScriptableRendererFeature如何实现一张自定义贴图效果?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 585

《大数据最全面试题-Offer直通车》目录

做好这些不用担心试用期不通过:程序员入职新公司如何快速上手项目本人遇到大数据面试题和参考答案(超过1万字精华版)大数据面试英文自我介绍参考(万字长文)大数据运维应用场景面试题汇总及参考答案(持续更新)万字数据仓库面试题及参考答案数据仓库数据质量监控和处理方法最佳实践数据仓库建模方法万字详解Doris的3种数据模型详解和数据仓库每一层的模型选用大数据面试临阵磨枪不知看什么?看这份心理就有底了-大数据常用技术栈常见面试100道题最全Hive面试题2024年(2万字详解)Elasticsearch 面试题及参考答

大模型大数据攻城狮的专栏 2644

Halcon_学习笔记_数据结构(2)

此笔记内容,halcon界面介绍,图像操作 参考刘国华《HALCON 数字图像处理》和大佬博客 算子汇总 学习笔记系列,可能存在复制情况,若需要删除请联系我。 进入正题 目录1.1 图像基础2.1 region(区域)2.1.1 region 基础1. 划域2. region 特征3. region 转换4. region 运算2.1.2 region 点线1. 点线2. 方向 1.1 图像基础 通道算子 算子 功能 单词 append_channel 通道叠加 添加 decom

Pinocchio_Boy的博客 1164

【Ranger】mac下Apache Ranger编译安装

a、编译过程中出现测试用例不通过和文件认证错误错误:带上参数-DskipTests=true -Drat.skip=true 重新编译;b、若编译过程中出现缺少jar包的情况,可能下载不了,需要手动自动添加;c、编译所需的其他工具如maven等安装配置略。采用这个会报错,因此我才用了下面一个命令。初始化设置Ranger Admin:执行。然后进入target目录。

九师兄 2104

《HALCON 数字图像处理》第4章 HALCON数据结构(2)-学习笔记

4.3 HALCON XLD轮廓

超级大洋葱的博客 1272

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

halcon相机标定助手_Halcon 学习笔记---单相机标定(2)

一、单项机标定原因降低畸变(相差)测量二、相机标定求出什么该方程是求取世界坐标系与像素坐标系之间转换矩阵,本质就是求出相机的内外参数。其中dx和dy为每个像素在图像坐标系(UVO)沿U和V方向的物理尺寸,单位毫米每像素, U0 和 V0 为像素坐标 中心即图像中心(光轴与图像平面的交点)。三、标定助手设置标定参数;尽量选择9到16张图片,且图片覆盖整个视野,Mark点出现在视野各个区域,同时标定...

weixin_39815456的博客 818

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

学习笔记-halcon-2

工业相机1 工业相机原理2 工业相机分类3 工业相机芯片4 工业相机分辨率5 工业相机像素6 工业相机扫描方式7 工业相机电子快门8 工业相机最低照度9 工业相机Binning10 工业相机增益11 工业相机结构接口12 工业相机通信接口 1 工业相机原理 工业相机的基本原理是将光信号转变为点信号,从而实现数字图像。 2 工业相机分类 3 工业相机芯片 4 工业相机分辨率 为了检测分辨率,会通过对等间隔排列的黑白相间的条纹进行成像,在监视器上能看到的最多线对可检测分辨率。 检测时,间隔从疏到密。

強雲的博客 431

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Halcon学习笔记(一)基本知识点和相关环境配置

Image像素类型 边缘方向(direction):边缘梯度方向 灰度图像,byte,uint2:表示标准的灰度图像编码 Difference&Derivative,int1,int2:表示两帧图像的差异或者整型精度的偏差 2D直方图,int4:两帧图像灰度值出现的频率统计图 Derivatives,real:边缘提取和特殊的灰度值配置 傅里叶变换,complex:用频率描述图像 色调,c...

ThetaQing的博客 1265

HALCON学习笔记之界面操作 2

窗口恢复 自带图像采集,连接摄像头 文档中图片批量提取 软件崩溃,默认代码保存地 导出代码到VC等软件 F5运行,F6逐步运行,F10断点(到运行结束处) ...

qq_42761380的博客 470

halcon学习笔记——实例篇(2)长度和角度测量

转载:http://www.cnblogs.com/hanzhaoxin/archive/2013/02/12/2910338.html

liuxiaomao1988的专栏 8388
上一篇: HALCON 学习笔记1
下一篇: halcon表达题
ctrl_v助手
博客等级 码龄4年 16粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值