HALCON机器视觉软件的HALCON功能
随着MVTec公司与学术界的不断合作,在最新推出的HALCON 11中具有以下新功能:1.技术革新HALCON 11可以实现真正意义上的目标识别。
基于样本的识别方法可以区分出数量巨大的目标对象。
使用这种技术可以实现仅依靠颜色或纹理等特征即可识别经过训练的目标,从而无需再采用一维码或二维码等用于目标识别的特殊印记。
2.强大的三维视觉处理HALCON 11提供的一个极为突出的新技术是三维表面比较,即将一个三维物体的表面形状测量结果与预期形状进行比较。
HALCON提供的所有三维技术,如多目立体视觉或sheet of light,都可用于表面重构;同时也支持直接通过现成的三维硬件扫描仪进行三维重构。
此外,针对表面检测中的特殊应用对光度立体视觉方法进行了改善。
不仅如此,HALCON现在还支持许多三维目标处理的方法,如点云的计算和三角测量、形状和体积等特征计算、通过切面进行点云分割等。
3.高速机器视觉体验自动算子并行处理 (AOP) 技术是HALCON的一个独特性能。
HALCON 11中支持使用GPU处理进行机器视觉算法的算子超过75个,比其他任何软件开发包提供的数量都多。
除此之外,基于聚焦变化的深度图像获取 (depth from focus)、快速傅立叶变换 (FFT) 和HALCON的局部变形匹配都有显著的加速。
HALCON 11会带给用户更高速的机器视觉体验。
4.其他新功能 1)Aztec码识别; 2)Micro QR码识别; 3)为分类自动选择特征; 4)使用HDevelop性能评测工具进行高效的编码分析; 5)支持Mac OS X 10.7操作系统; 6)重新修订HALCON/C++接口; 7)三维数据快速可视化; 8)远心镜头立体视觉; 9)改善摄像机标定技术; 10)HDevelop OCR助手,包含训练文件浏览器; 11)用于一维码和二维码识别的GS1术语学; 12)串行化HALCON/.NET及HALCON/C++; 13)易用的测量工具; 14)支持JPEG XR及其他。
图像分析的OPEN CV 和halcon能做什么?如果不用他们,直接编写软...
OPENCV和halcon提供了很多库函数可以直接调用。
比如对图像做二值化以及各种变换。
有些很基本的函数是出自数学家之手,可能是你要研究很多年才能做出来的。
opencv是免费的,halcon是收费的,相对来说功能也更强大。
产品在国内销售的话用halcon也可以,毕竟halcon公司不会来抓侵权,但是要外销的话,还是要花很多精力在opencv上面开发。
HALCON机器视觉软件的HALCON简介
它节约了产品成本,缩短了软件开发周期——HALCON灵活的架构便于机器视觉,医学图像和图像分析应用的快速开发。
在欧洲以及日本的工业界已经是公认具有最佳效能的Machine Vision软件。
HALCON源自学术界,它有别于市面一般的商用软件包。
事实上,这是一套image processing library,由一千多个各自独立的函数,以及底层的数据管理核心构成。
其中包含了各类滤波,色彩以及几何,数学转换,形态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能,由于这些功能大多并非针对特定工作设计的,因此只要用得到图像处理的地方,就可以用HALCON强大的计算 分析能力来完成工作。
应用范围几乎没有限制,涵盖医学,遥感探测,监控,到工业上的各类自动化检测。
HALCON支持Windows,Linux和Mac OS X操作环境,它保证了投资的有效性。
整个函数库可以用C,C++,C#,Visual basic和Delphi等多种普通编程语言访问。
HALCON为大量的图像获取设备提供接口,保证了硬件的独立性。
它为百余种工业相机和图像采集卡提供接口,包括GenlCam,GigE和IIDC 1394。
halcon如何提取轮廓里面的每个像素点的灰度值
展开全部 1、灰度转换-->二值化(硬阈值或者动态阈值处理)-->连通区域-->抠图(reduce_domin)2、创建一个与原始图像一样大小纯黑色的图像gen_image_const()3、将抠图得到的目标图像与创建的纯黑图像拼接,union1()4、运用for循环,遍历每个坐标,获取灰度值(get_grayval),将灰度值等于0的剔除,剩下的就是目标灰度值与对应的坐标。
比价原始的办法,不知道是否有更简单的方法...
VS环境下Halcon变量结构如何释放内存
展开全部 在VC环境下进行图像处理比在MATLAB下开发运算速度要快,但工作量要大的多,用MATLAB做图像处理,直接调用里面的相关函数就可以完成,而且比较直观,但满足不了在速度上要求比较高的场合。
所以在VC环境下直接开发往往是首选,但由于VC只是一个开发环境,直接运用于图像处理的函数还得自己编写添加,所以往往很耗时。
随着各类机器视觉软件的开发,各种机器视觉软件包也相继产生,HALCON就是一个比较强大的机器视觉软件,功能比较全,在HDevelop环境下开发比较容易,执行速度也较快。
除此之外,HALCON也可以集成到其他开发环境下,这样可以节约底层开发时间,直接有效地运用它的函数库,可以产生很好的效果。
下面就结合自己的经验,简单介绍一下在VC环境下如何使用HALCON库。
在VC环境下进行图像处理,往往需要自己写图像处理的类,现在有一些前人写好的类,比如CDib类、DIBAPI类等等,因此可以直接“拿来主义”。
HALCON库就相当于一个封装好的类,通过在VC下进行一些简单的设置,我们就可以使用其里面的函数了。
下面是在VC环境下如何设置:1. 首先在project->settings.....中的Link属性页中添加halconcpp.lib;2. 其次在project->settings.....中的C/C++属性页中的Preprocessor中添加目录$(HALCONROOT)\include,$(HALCONROOT)\include\cpp;3. 然后在project->settings.....中的Link属性页中input下来菜单中添加路径$(HALCONROOT)\lib\i586-nt4;4. 最后当然是不要忘了在程序中添加类的头文件了:#i nclude "HalconCpp.h"上面的设置好了,一切OK了。
下面就可以在程序中调用HDevelop中的函数了,比如图像增强函数emphasize(hImage, &hRotateImage, 7, 7, 2.0)等等。
我们知道在HDevelop中通常图像是作为一个tuple变量,因此在VC中有必要进行变量转换,例如:针对灰度图像可以将图像数转换成一个Hobject变量:gen_image1(&hImage,"byte",WIDTH, HEIGHT,(long)m_pImageBuffer);针对彩色图像,可以分别取出R、G、B三个分量:ExtractRGB24Channels(m_pImageBuffer, m_pRed, m_pGreen,m_pBlue);然后在转换为Hobject变量:gen_image3(&hImage, "byte", width, height, (long )m_pRed, (long )m_pGreen, (long )m_pBlue);接下来就可以调用图像处理函数了,比如图像增强:emphasize(hImage, &hRotateImage, 7, 7, 2.0); //参数可以调整阈值化:bin_threshold(hImage,&hRotateImage);rgb1_to_gray(hImage,&hRotateImage);//转化为灰度图把处理完的变量转换成到一个buffer中,用于图像显示:get_image_pointer1(hRotateImage,(long *)&m_pImageBuffer,Type, &width1, &height1);但在调用HALCON库函数时也碰到了一些问题,比如在图像旋转中rotate_image(hImage, &hRotateImage, 90, "constant"); 将处理后的变量转换成get_image_pointer3(hRotateImage, (long *)&m_pRed, (long *)&m_pGreen, (long *)&m_pBlue, Type, &width1, &height1);ComposeRGB24(m_pRed, m_pGreen, m_pBlue, m_pImageBuffer);而执行过程中出现错误,get_image_pointer3这个函数报错,Undefined gray value in get_image_pointer3还需解决!边摸索边进步,在其他环境中的调用还需要试试,比如嵌入式操作系统等等。
VS环境下Halcon变量结构如何释放内存
在VC环境下进行图像处理比在MATLAB下开发运算速度要快,但工作量要大的多,用MATLAB做图像处理,直接调用里面的相关函数就可以完成,而且比较直观,但满足不了在速度上要求比较高的场合。
所以在VC环境下直接开发往往是首选,但由于VC只是一个开发环境,直接运用于图像处理的函数还得自己编写添加,所以往往很耗时。
随着各类机器视觉软件的开发,各种机器视觉软件包也相继产生,HALCON就是一个比较强大的机器视觉软件,功能比较全,在HDevelop环境下开发比较容易,执行速度也较快。
除此之外,HALCON也可以集成到其他开发环境下,这样可以节约底层开发时间,直接有效地运用它的函数库,可以产生很好的效果。
下面就结合自己的经验,简单介绍一下在VC环境下如何使用HALCON库。
在VC环境下进行图像处理,往往需要自己写图像处理的类,现在有一些前人写好的类,比如CDib类、DIBAPI类等等,因此可以直接“拿来主义”。
HALCON库就相当于一个封装好的类,通过在VC下进行一些简单的设置,我们就可以使用其里面的函数了。
下面是在VC环境下如何设置:1. 首先在project->settings.....中的Link属性页中添加halconcpp.lib;2. 其次在project->settings.....中的C/C++属性页中的Preprocessor中添加目录$(HALCONROOT)\include,$(HALCONROOT)\include\cpp;3. 然后在project->settings.....中的Link属性页中input下来菜单中添加路径$(HALCONROOT)\lib\i586-nt4;4. 最后当然是不要忘了在程序中添加类的头文件了:#i nclude "HalconCpp.h"上面的设置好了,一切OK了。
下面就可以在程序中调用HDevelop中的函数了,比如图像增强函数emphasize(hImage, &hRotateImage, 7, 7, 2.0)等等。
我们知道在HDevelop中通常图像是作为一个tuple变量,因此在VC中有必要进行变量转换,例如:针对灰度图像可以将图像数转换成一个Hobject变量:gen_image1(&hImage,"byte",WIDTH, HEIGHT,(long)m_pImageBuffer);针对彩色图像,可以分别取出R、G、B三个分量:ExtractRGB24Channels(m_pImageBuffer, m_pRed, m_pGreen,m_pBlue);然后在转换为Hobject变量:gen_image3(&hImage, "byte", width, height, (long )m_pRed, (long )m_pGreen, (long )m_pBlue);接下来就可以调用图像处理函数了,比如图像增强:emphasize(hImage, &hRotateImage, 7, 7, 2.0); //参数可以调整阈值化:bin_threshold(hImage,&hRotateImage);rgb1_to_gray(hImage,&hRotateImage);//转化为灰度图把处理完的变量转换成到一个buffer中,用于图像显示:get_image_pointer1(hRotateImage,(long *)&m_pImageBuffer,Type, &width1, &height1);但在调用HALCON库函数时也碰到了一些问题,比如在图像旋转中rotate_image(hImage, &hRotateImage, 90, "constant"); 将处理后的变量转换成get_image_pointer3(hRotateImage, (long *)&m_pRed, (long *)&m_pGreen, (long *)&m_pBlue, Type, &width1, &height1);ComposeRGB24(m_pRed, m_pGreen, m_pBlue, m_pImageBuffer);而执行过程中出现错误,get_image_pointer3这个函数报错,Undefined gray value in get_image_pointer3还需解决!边摸索边进步,在其他环境中的调用还需要试试,比如嵌入式操作系统等等。
转载请注明出处51数据库 » halcon软件灰度化