halcon_halcon c# - CSDN
精华内容
参与话题
  • halcon第一讲:基本操作

    万次阅读 多人点赞 2018-08-26 15:00:52
    本文通过Blob分析提取出图片中的硬币,来熟悉halcon的基本操作。 1、读取图像,halcon读取图像有三种方式:1)、文件->读取图像;2)、通过助手;3)、代码 *打开窗口 dev_open_window (0, 0, 512, 512, '...

    本文通过Blob分析提取出图片中的硬币,来熟悉halcon的基本操作。

    1、读取图像,halcon读取图像有三种方式:1)、文件->读取图像;2)、通过助手;3)、代码

    *打开窗口
    dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
    *读取图像
    read_image (Image,'1.png')

    读取的图像如下:

    2、rgb转灰度

    *rgb转灰度
    rgb1_to_gray (Image, GrayImage)

    3、二值化,通过灰度特征直方图(有阈值和缩放两个选项),阈值即对图像进行二值化,缩放即对图像进行图像增强

    *二值化
    threshold (GrayImage, Regions, 62, 255)

    4、二值化后为一个区域,一定要连接连通域,将区域打断(区域是没有像素值的,halcon中按住ctrl然后把鼠标指到图像中某一位置会显示其坐标和像素值)

    *连接连通域
    connection (Regions, ConnectedRegions)

    5、通过特征选择将感兴趣的连通域选择出来

    *特征选择
    select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 35619.1, 200000)

    6、区域填充

    *区域填充
    fill_up (SelectedRegions, RegionFillUp)

    7、显示面积及中心坐标

    area_center (RegionFillUp, Area, Row, Column)
    disp_message (WindowHandle, '面积:'+Area+'坐标:'+Row+','+Column, 'window', 0, 0, 'black', 'true')
    

    结果如下图所示:

    展开全文
  • Halcon 入门教程(01)

    万次阅读 多人点赞 2019-05-11 15:41:34
    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)
    

    我们还要计算每个曲别针的方向,这可以用下面这条语句:

    orientation_region (SelectedRegions, Phi)
    

    然后这条语句计算每个区域的面积和中心点坐标。

    area_center (SelectedRegions, Area, Row, Column)
    

    最后我们要把结果显示在屏幕上。首先在整个程序之前增加一条语句:

    dev_close_window ()
    

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

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

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

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

    dev_disp_text (deg(Phi) + ' degrees', 'image', Row, Column, 'black', [], [])
    

    输出的结果如下:
    在这里插入图片描述

    展开全文
  • 在机器视觉这个行业,对于我们技术人员来说,halcon、opencv、Ni-vision、VisionPro、CeresSolver等等就成为了我们敲开机器视觉工程师大门的敲门砖。 在这些机器视觉专用SDK中,最容易让新手入门,也最专业实用的是...

    由于智能制造和人工智能的火热,直接让机器视觉这个行业也火热起来。在机器视觉这个行业,对于我们技术人员来说,halcon、opencv、Ni-vision、VisionPro、CeresSolver等等就成为了我们敲开机器视觉工程师大门的敲门砖。

    在这些机器视觉专用SDK中,最容易让新手入门,也最专业实用的是halcon。

    想要学习halcon,我们有多种选择,比如:你可以报一个培训班,一般学习时间一个半月到三个月,你需要到培训公司的指定地点去学习,培训费用一般在一万元左右。能学到的halcon内容基本包括二维平面相关的内容。你也可以关注网上的线上课程,目前在网易云上有火星人的halcon课程,价格600元,不过该课程内容还不到halcon整个内容的四分之一,如标定、缺陷检测、三维、等等重要内容,都不包含。

    其实,还有另外一个方式,就是自己通过halcon给出的帮助手册以及示例程序学习。如下图所示:

    我们可以看到,其实halcon的学习资料是很完善的,所有的示例程序按照在工业上的应用范围和领域进行了分类,同时,还按照各个示例实现的方法进行了分类。再加上halcon对各个算子的解析也有详细的解释,这个在我们自学的时候也有很大的帮助。

    首先,需要清楚的一点是:上面提及的所有的学习方式,对halcon自带示例的学习都是重要的组成部分。通过边运行halcon的示例代码,看执行效果,边分析halcon的示例代码,从而学习halcon的各种算子的使用,以及在具体的项目中,我们需要怎样去使用halcon的算子。

    再就是:所有写过代码的人都知道,学习编程的过程,就是不断学习别人的代码,然后为我所用的过程。有些是我们能直接使用别人的代码片段为我所有;有些是,我们能学习别人的思路,为我们所用。不管是哪种方式,首要的条件是:我们得先看过很多别人的代码,然后我们才能知道,在哪能找到我们需要的代码。

    既然只是谁带领你学习这些就在你眼前的这些代码,那么,为什么不可以自己学习呢?自己学习,会碰到的难处是:要学的很多,该从哪开始学习;哪些才是常用的重点;学习过程中的孤独等等的问题。可是,一旦你踏上了技术这条路,那么不断学习就会伴随着整个职业生涯,一招鲜在技术这个行当是绝对不行的。所以我们需要有自学的能力,从而支撑我们在整个技术生涯中不断向上。

    那么,何不从学习halcon开始呢。资料齐全,只待去学。为了各位选择自学的朋友能在自学之路上走得更加顺畅一些,下面的公众号里边,会持续的分享笔者曾经自学过程中的学习笔记,希望能和各位交流学习。

     

    代码分析共享公众号:

     

    展开全文
  • halcon编程入门四——halcon缺陷检测

    千次阅读 多人点赞 2019-09-19 23:35:30
    Region参数 缺陷类型 1.边缘凹凸检测 2.内部凸凹点、瑕疵、污点、内部烫伤、孔洞 ...3.划痕(用低角度环形光进行打光,将划痕打亮,背景打暗;...halcon算子 *二值化 输入图像 输出区域 ...

    Region参数

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    缺陷类型

    1.边缘凹凸检测
    2.内部凸凹点、瑕疵、污点、内部烫伤、孔洞
    3.划痕(用低角度环形光进行打光,将划痕打亮,背景打暗;也可用同轴光,让表面反光不明显)

    缺陷图像处理

    1.blob分析+特征提取
    2.blob分析+特征提取+差分
    3.频域+空间域
    4.光度立体化
    5.特征训练
    6.测量+拟合

    halcon算子

    *二值化          输入图像  输出区域                  选择暗的区域
    binary_threshold (Lines, Region1, 'max_separability', 'dark', UsedThreshold)
    *孔洞面积数
    area_holes (Region1, Area) 
    

    在这里插入图片描述

    *窗口句柄,显示文本,在窗口显示,默认显示位置,默认颜色,显示背景
    disp_message (WindowHandle, TEXT, 'window', -1, -1, 'black', 'true')
    
    *求差(求两个图像的差值)
    difference (Region1, Region1, RegionDifference)
    *矩形开运算
    opening_rectangle1 (RegionDifference, RegionOpening, Width, Height)
    

    在这里插入图片描述
    binary_threshold:用二进制阈值来分割图像
    在这里插入图片描述

    *动态域差分函数
    dyn_threshold (Lines, Lines, RegionDynThresh, 5, 'light')
    

    在这里插入图片描述
    access_channel:访问(多通道)输入图像的某一个通道。 结果是一个单通道图像。 已经定义的域(ROI)会继承。 通道编号从1到n。 通道的数量可以通过算子count_channels来确定。
    shape_trans:变换区域的形状。参数Type的可选项解释如下:
    convex:凸包性
    ellipse:与输入区域有相同的矩和区域的椭圆
    outer_circle:最小外接圆
    inner_circle:最大内接圆
    rectangle1:平行于坐标轴的最小外接矩形
    rectangle2:最小外接矩形
    inner_rectangle1:平行于坐标轴的最大内接矩形
    inner_rectangle2:输入区域的骨架点拥有同输入区域的重心点最小的距离
    orientation_region():测试区域的方位,包括轮廓中的点(以最大距离到区域重心)。如果该点的列坐标小于重心的列坐标,角度将使用Pi表示。如果多个区域进行计算,输出结果也是一一对应输入区域。
    vector_angle_to_rigid:仿射变换。
    affine_trans_image:实现绕任意位置的旋转。
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Halcon 学习笔记 (一)

    万次阅读 多人点赞 2014-08-18 23:25:15
    图像预处理 消除噪声 mean_image/binomial_filter 抑制小斑点或细线 median_image 平滑图像 smooth_image 平滑图像的同时保存边缘 anisotropic_diffusion ...list_files( : : D
  • halcon最新license

    2020-07-30 23:30:03
    halcon最新的19年2月的license,13,17,18版本得都有。
  • halcon功能及应用简介

    千次阅读 2019-06-20 11:22:51
    摘自:《halcon数字图像处理》 halcon功能及应用: 1、BLOB分析 。blob分析包括标准阈值分割、动态分割以及其它附加的图像分割算子。 2、形态学。halcon可以基于任意结构元素进行针对Region和Image的腐蚀、膨胀、...
  • halcon基础应用和方法经验分享(一)

    万次阅读 热门讨论 2018-07-08 09:46:07
    halcon是德国公司开发的一套很完善的机器视觉算法包,很广泛地应用于工业各个领域中,用途十分广泛,是一款值得学习的图像处理软件,个人觉得:halcon虽然没有opencv和matlab在图像处理领域应用更加广泛,专业性、...
  • Halcon12安装步骤

    万次阅读 2017-04-10 22:18:11
    Halcon12安装步骤 1、
  • Halcon各个版本下载网址...Halcon安装就是选好安装目录一路“Next” license下载网址http://51halcon.com/thread-831-1-1.html license有效期是一个月,出现21010的错误码后要及时下载当
  • halcon脱机运行(不安装halcon

    千次阅读 2017-09-08 16:49:02
  • Halcon 12.0下载

    万次阅读 2018-05-11 09:20:44
    Halcon 12.0:链接:https://pan.baidu.com/s/15JpLWsfzIIhQEU4jE-3AsQ 密码:l0wt
  • Halcon17完美破解兼容17.12.0.0附破解说明 https://download.csdn.net/download/wxwxx/10687696
  • Halcon 学习总结——错误处理方法

    千次阅读 2015-01-21 23:16:38
    网页图片不清晰,请另存到电脑后,以图片方式学习!
  • halcon 角度转弧度方法

    千次阅读 2018-06-27 14:01:32
    radians to degreesdeg(a)弧度转角度degrees to radiansrad(a)角度转弧度
  • 学习Halcon半年之感想

    万次阅读 2014-08-08 14:42:18
    从2014年1月开始接触halcon,到今天8月份,已经学习 halcon半年多了,把th
  • Halcon保存图像

    万次阅读 2019-12-12 19:44:28
    1、直接保存 write_image( image , 'bmp' , 0 , 'C:/桌面/1' ) 2、窗口保存 //带文字,region保存 dump_window_image( image , 20000) //图像名,窗口句柄 write_image( image , 'bmp' , 0 , 'C:/桌面/1' ) ...
  • 之前使用的是disp_message算子,但是HALCON13中似乎不能用了于是替换为两步,确定绘制点作为绘制开始区域的左上角,以及绘制文字 set_tposition (WindowHandle, Row[index], Column[index]) write_string (Window...
  • 听师兄推荐了一个叫做Halcon的软件,经过几天找找资料,把环境装好了。 Halcon机器视觉软件是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境。相比于opencv,Halcon有...
  • HalconHalcon与OpenCV介绍、比较

    万次阅读 2018-07-26 14:40:33
    1.MVTec HALCON  MVTec HALCON 是世界上最全能的机器视觉软件.世界各地的用户从HALCON为快速开发图像分析和机器视觉程序的灵活架构获益匪浅.HALCON 提供了超过1100多种具备突出性能控制器的库,如模糊分析,形态,...
1 2 3 4 5 ... 20
收藏数 11,287
精华内容 4,514
关键字:

halcon