精华内容
下载资源
问答
  • halcon入门
    千次阅读
    2019-11-17 14:55:01

    HALCON学习
    今年夏天第一次接触halcon,入门halcon可以用HDevelop的软件例子,建议先从应用场景入手,简单学下HDevlop的语法,学会看懂程序,然后将其代码在vs编辑环境中用C#或者C++重新实现一把,熟悉同一个算子在不同语言中的表达方式,可以将算子在浏览器中搜索,定位到Halcon相关的网站,里面会查到对应的不同语言的表达方式。先学会语言,第二步,再去学习基本算子,包括对ROI,轮廓,HTuple等的理解,最后可以自己找几张图练习

    更多相关内容
  • halcon入门

    2018-07-15 10:41:20
    halcon入门教程,matching This section introduces you to HALCON’s matching functionality. In particular, it provides you with an overview on • how to use this manual (section 1.1), • the general ...
  • halcon入门教程详解

    2018-02-02 11:27:30
    详细介绍了halcon入门基础知识,比如摄像头获取图像和参数设置以及图像处理常用的算子,边缘检测,区域生长等
  • HALCON快速入门手册.pdf

    2020-07-10 22:50:02
    HALCON入门手册为本人于2020年初编写,旨在帮助刚开始接触HALCON,或者在一些设计中临时简单使用下HALCON的朋友快速上手这款优秀的机器视觉软件,配有入门操作每一步骤的截图及说明,并附有一些常用的模板和算子。...
  • Halcon 入门教程

    千次阅读 2021-08-07 11:43:03
    Halcon 入门教程(01) 这篇教程很简单,实现的功能是计算下图中曲别针的数量和每个曲别针的朝向。主要内容是翻译自Halcon 的帮助文档 “Chapter 4 Programming HDevelop”。 使用的图像如下: 这篇教程中我们假设 ...

    Halcon 入门教程(01)

    这篇教程很简单,实现的功能是计算下图中曲别针的数量和每个曲别针的朝向。主要内容是翻译自Halcon 的帮助文档 “Chapter 4 Programming HDevelop”。

    使用的图像如下:

    这篇教程中我们假设 HDevelop 的各个参数都为默认值,通常新安装好的 HDevelop 所有的参数就都是默认值。如果不是的话可以通过下面的命令行方式将 HDevelop 的各个参数重置为默认值。

    hdevelop -reset_preferences

    首先打开 HDevelop ,如果我们调整过各个窗口的位置,则可以通过菜单命令 Window ⇒ Organize Windows 将各个窗口恢复原始位置。

    加载图像

    加载图像有多重方式,最简单的方式是把图像拖拽到 HDevelop 中。这时会自动弹出一个 Read Image 窗口,在这个窗口中可以设置一些基本的参数。
    加载完成后会在 Program window 中显示对应的语句。当然我们也可以直接在这个窗口中输入这个语句。或者在 Operator Window 中输入 read_image,这时这个窗口会提供这个函数的功能解释,在这个 window 中还可以设置每个输入输出参数。

    读取完图像后的第二个操作是阈值分割 threshold。同样在 Operator Window 中输入 threshold。按照下图设置参数,之后点击 apply 按钮。这时会直接执行这条语句,但是不会把这条语句加入到 Program Window 中。我们可以试着调整参数,通过 apply 按钮,直接获得当前参数的效果。在 graphics window 中可以很直观的看到结果,红色的区域就是通过 Threshold 选出的区域。确认参数之后点击 OK 按钮将该命令加入到 Program Window 中。

    下一步操作是获取连通区域。 Halcon 有个非常好的功能就是可以给出建议的操作。菜单 Suggestions ⇒ Successors 会提示出 Threshold 之后经常跟着的命令。可以看到第一个就是 connection。执行 connection 的结果是获得各个连通区域。graphics window 中会用不同的颜色显示不同的连通区域。

    Graphics window 有许多参数可以设置,在这个窗口上单击邮件,弹出的对话框如下图所示。
    点击 Set Parameters 后打开如下对话框:

    大家可以随便试试,各个参数的含义都比较简单。

    鼠标放在 ConnectedRegions 变量上单击鼠标右键后会弹出如下的菜单。

    点击 Select 可以看到每个 Region 的详细信息,总共有 98 个区域。

    实际上我们没有这么多的曲别针,产生这么多的区域说明我们的 threshold 的参数不合适。下面就来研究如何能进一步优化 Threshold 参数。

    菜单 Visualization/Tools → Gray Histogram 会打开 Gray Histogram 窗口。我们调整 threshold 时选中的区域会跟着变化。
    通过这个 Gray Histogram 可以比较容易的选择合适的 Threshold。

    调整 Threshold 参数后得到的区域少了很多,但是还是比曲别针的数量多。这就说明我们需要其他的方法了。 Halcon 提供了一个 Feature Histogram 功能,这个功能除了通过 Histogram 来划分区域还会使用 Region 的其他 Feature。对于我们这个 区别的需求来说,面积就是一个非常好用Feature,因为所有的曲别针都有几乎相同的面积。下面我们就来具体的操作。

    菜单 Visualization/Tools → Feature Histogram 可以打开 Feature Histogram 窗口。按照下图中的参数设置就好。需要注意的是我用红色框框起来的区域。这块如果不是打勾状态,则 Insert Code 按钮就无法点击。
    点击 Insert Code 后就会生成实际的代码:

    select_shape (ConnectedRegions, SelectedRegions, ‘area’, ‘and’, 6302.75, 8541.28)
    1
    我们还要计算每个曲别针的方向,这可以用下面这条语句:

    orientation_region (SelectedRegions, Phi)
    1
    然后这条语句计算每个区域的面积和中心点坐标。

    area_center (SelectedRegions, Area, Row, Column)
    1
    最后我们要把结果显示在屏幕上。首先在整个程序之前增加一条语句:

    dev_close_window ()
    1
    这条语句的作用是关闭任何已经打开的图像窗口。再加一句:

    dev_open_window (0, 0, 512, 512, ‘black’, WindowHandle)

    这条语句新建一个窗口。我们后面可以通过 WindowHandle 来操作这个窗口。

    下面是显示每一个曲别针的方向:

    dev_disp_text (deg(Phi) + ’ degrees’, ‘image’, Row, Column, ‘black’, [], [])
    1
    输出的结果如下:
    在这里插入图片描述
    在这里插入图片描述

    ————————————————
    版权声明:本文为CSDN博主「liyuanbhu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/liyuanbhu/article/details/90110447

    展开全文
  • HALCON视觉系统快速入门手册
  • halcon入门语法基础

    2022-05-04 21:17:03
    机器视觉入门语法基础(语法)

    halcon语法: 数据类型一、 运算符二、 选择结构三、 循环结构四、 数组五、 字符串六 

    一、数据类型

    /H tʌpəl/

    1.H tuple - 叫控制变量 (表示所有的基本数据,并且可以表现,变量数组)

    / H ɒbdʒɪkt/

    2.Hobject - 叫图像变量(三大图像变量分别是 image(图片) region(区域) xld(轮廓)处理对象

                                                                                  /ˈɪmɪdʒ/    /ˈriːdʒən/         xld

    整数: row :=10

    浮点数 : col: =12.23

    字符串: ms: ='hello'

    定义数组:

    整数数组: arry:= [1,2,3,4,5]

    浮点数数组:arry: = [1.3,1.6,1.5]

    字符串数组:arry: = ['jack', 'mike', 'jason']

    在定义数组添加数: 有时会看到这个方式的的数组添加内容

    arry1:=[] 等于         arry2:=[]

    arry1[0]:=1             arry2:= [arry,1]     

    arry1[1]:=2              arry2:=[arry,2]

    意思是arry1[0]:=1 数组的一个位数组内写入1,相同arry1:= [arry,1]也是向数组的第一位内写入1

    arry1[1]:=2数组的二个位数组内写入2,相同arry2:= [arry,2]也是向数组的第二位内写入1

    二、 运算符

    1. 算数运算符 + - * / %(加减乘除余)

    image1:=1+5 image2:=1.0 / 2 image2:=1.0%2 求余

    2. 关系运算符 == 或 = !=或# 都可以 :=

    image4:=(1==5)等于 image4:=(1=5)

    image4:=(1!=5) 等于 image4:=(1#5)

    对的到 true 1 错的到 false 0

    3. 布尔值()

    true       1(大部分可以默认==1)

    false      0(大部分可以默认==0)

    *三、 选择结构

    if (rst7)              或 if (rst8)

    msg:= 'ok'          msg:='ok'

    endif                  else

                             msg:='ng'

                              endif

    if语句最长用的,一:if (rst7) 两种状态:1、进入msg:= 'ok',然后跳出语句。2、跳出语句

    二:if (rst8) 两种状态:1、进入msg:= 'ok',然后跳出语句。2、  进入msg:='ng',然后跳出语句

    3条优先进入第一条 true ,后面就不执行跳出选择

    if (rst7)

    elseif (rst6)

    elseif(rst7)

    elseif(rst8)

    endif

    rst1==几就进入第几条语句

    switch (rst1)

    case 1:

    break

    case 2:

    break

    case 3:

    break

    default:

    break

    endswitch

    *四、 循环结构

    while (0)

    endwhile

    x:=[]

    y:=[]

    /fə(r)/

    for Index := 1 to 5 by 1

    x[Index-1] := Index

    y[Index-1] := Index - 1

    endfor

    for Index1 := 1 to 10 by 1 if (Index1 = 5) *break 跳回出for语句 continue 跳回到for重新执行 endif data := Index1 endfor

    *五、 数组(数组的处理)

    myArry := [1,3,5,7,9,2,4,6,8,10,1,2,3]
    
    *返回一个图普(数组)的元素数量
    
    tuple_length(myArry, Length)
    
    *计算数组长度13个
    
    tuple_max (myArry, Max)
    
    *找最大值
    
    _min (myArry, Min)
    
    *找最小值
    
    tuple_sort (myArry, Sorted)
    
    *排序
    
    tuple_uniq (Sorted, Uniq)
    
    *去重
    
    
    
    len := |myArry|
    
    *计算数组长度13个 //模运算
    
    myArry := []
    
    *清空

    六、 字符串

    score := 89.7654
    
    tuple_string(score, '.2f', String) *保留两位小数
    
    浮点数转字符串

    展开全文
  • halcon入门学习资料

    2014-10-13 22:12:26
    搜集的一些关于halcon的资料,对于刚接触halcon的初学者有一定的学习参考价值!
  • vs2008下使用halcon入门(一个典型的例子) 使得halcon函数库很容易在vs2008下运行。
  • Halcon入门 第6章-6节-1

    2022-06-05 22:38:48
    Halcon入门 第6章-6节-1
  • halcon入门视频

    2017-11-27 16:22:06
    halcon讲解,很透彻的讲解。教教你如何运用halcon,在机器视觉类具有很高的地位。掌握此软件技术你会很牛
  • (1)-Halcon入门学习路线

    千次阅读 2021-12-30 15:10:35
    Halcon学习路线 01. Blob分析、定位、图像预处理、仿射变换(目的:得到目标区域) 02.字符识别(一二维码、OCR) 03.识别定位:模板匹配(灰度、相关性、形状) 04.尺寸测量:一维、二维测量 05.缺陷检测...

    Halcon学习路线

    01. Blob分析、定位、图像预处理、仿射变换(目的:得到目标区域)

    02. 字符识别(一二维码、OCR)

    03. 识别定位:模板匹配(灰度、相关性、形状)

    04. 尺寸测量:一维、二维测量

    05. 缺陷检测(划痕、瑕疵、缺损、凹凸、字符印刷等)

    HALCON学习扩展

    01. 机械手定位引导(N点标定、旋转中心、固定相机、移动相机、上下相机、多相机)

    02. C#联合编程

    03. 硬件选型:相机、光源(控制器)、镜头

    04. 通讯:串口、网口、PLC通讯

    05. 运动控制卡编程

    06. 3D视觉

    07. 深度学习

     HALCON开发入门示例-blob分析

    *窗口操作
    dev_close_window ()
    *0,0 左上角窗口行列坐标,612width窗口的宽,窗口的高,'black'窗口背景颜色,WindowHandle窗口句柄
    dev_open_window (0, 0, 612, 512, 'black', WindowHandle)
    *获取图像
    read_image (Audi2, 'audi2')//读取读写算子,读取后的图像变量名称;图像路径地址(相对路径,绝对路径)
    *图像处理(获取目标)
    threshold (Audi2, Region, 0, 90)//二值化 阈值分割 使用全局阈值分割一个图像 
    connection (Region, ConnectedRegions)//断开连通域,目的为了获得我们需要的特征
    select_shape (ConnectedRegions, SelectedRegions, 'width', 'and', 30, 70)//根据宽度选择特征区域
    select_shape (SelectedRegions, Letters, 'height', 'and', 60, 110)//根据高度选择特征区域
    *窗口显示
    dev_clear_window ()
    dev_set_colored (12)
    dev_display (Audi2)
    dev_display (Letters)

     

     参考:https://mp.weixin.qq.com/s/IPwMkM7uCvnszClHrht5FA

    展开全文
  • 是博文《第1个简单halcon程序》的源程序,简单介绍halcon的使用
  • halcon入门PPT

    2013-10-06 16:10:49
    这是对Halcon例程的一个指导,边长测量方法及其数值的显示
  • Halcon入门级介绍

    2014-09-09 16:09:33
    本文是Halcon入门介绍,适用于入门级的Halcon初学者!
  • 编程入门教程
  • Halcon 入门教程(01)

    万次阅读 多人点赞 2019-05-11 15:41:34
    Halcon 入门教程(01) 这篇教程很简单,实现的功能是计算下图中曲别针的数量和每个曲别针的朝向。主要内容是翻译自Halcon 的帮助文档 “Chapter 4 Programming HDevelop”。 使用的图像如下: 这篇教程中我们假设 ...
  • Halcon入门(1)——选取ROI区域

    千次阅读 2022-04-21 13:49:27
    Halcon选取ROI区域
  • 原始如下如下所示: 获取图像的基本信息: read_image(Image, 'printer_chip_01') *输出通道 count_channels(Image, Channels) get_image_size(Image, Width, Height) get_image_type(Image, Type) ......
  • 原始图像如下所示: 由于发现背景比较好分离,所以我们可以根据直方图进行分割,如下选取直方图 然后调节最大的范围,因为我们的ROI区域是比较暗, 这时候就可以分割出来了。......
  • 1) 通常,标定板放入视野内,可能状态栏会显示"找不到标记点","检测出品质问题"等等等等,把滚动条往下拉,会看到halcon对品质问题的描述,可以根据它的描述修改标定板的摆放和一些外部条件的设置。一般情况下,...
  • Halcon教程一 :软件入门

    万次阅读 多人点赞 2020-11-09 13:25:05
    最近想学习一下机器视觉 用到的库是Halcon 自己到网上找halcon的教程不是收费的 就算随便搞搞的 没有能系统去学习的知识体系 而且大多博主可能就一篇教程 对于新手来说 简直是致命的 我国互联网的生态建设如此不堪 ...
  • Halcon入门之腐蚀膨胀

    2020-12-22 12:46:18
    基本手法如下:1、采集图像2、预处理3、分割4、识别显示1、采集图像read_image (Image, ‘D:/**‘)get_image_size (Image, Width, Height)dev_open_window(0, 0, Width, Height, ‘black’, WindowHandle)2、预处理...
  • 最近学习了halcon 打算用它做个小工具,巩固一下,已经安装环境的请跳过。 先环境搭建,网上有很多,我自己搭建的时候也有点小麻烦,就是在vs里面直接下载qt-tools总是下载失败,直接从网上下一个装上就解决了。 ...
  • Halcon入门笔记一

    2020-10-02 21:06:25
    1、读取图片 1、读取单个图片: 1.1 直接用算子read_image read_image (Image, 'C:/Users/49938/Pictures/cat.jpg') 2、读取多个图片 ...2.1定义一个存放图片路径的数组,通过循环读取 ...for Index := 1 to 5 by...
  • halcon中的常用快捷键介绍 基础知识
  • Halcon入门--提取图片对象个数

    千次阅读 2020-08-13 14:10:45
    Halcon入门–提取图片对象个数 上图是我从其他博客找到的图片,可作为练习的目标图片 *读取图片 read_image (Image, ‘C:/Users/soft/Pictures/20190511153629382.png’) *将图片二值化,选择黑色的回形针部分 ...
  • 第五节 halcon例程2: color_fuses.hdev到目前为止,我们图片大多都是对单通道的图片,即黑白图片进行处理,工业上也是对黑白图片的应用处理偏多一点,但这不代表彩色图片没用啊,彩色图片毕竟三个通道,有的地方还...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 673
精华内容 269
关键字:

halcon入门