vc中添加halcon库文件步骤

合集下载

C#与Halcon混合编程的几种方式

C#与Halcon混合编程的几种方式

C#与Halcon混合编程的⼏种⽅式Halcon的学习过程中,关于Halcon的混合编程是⽆法避免的,Halcon可以和很多种语⾔进⾏混编,这⾥仅赘述与C#语⾔进⾏混编的⼀些简单⽅式。

C#与Halcon进⾏混编的⽅式⼤体可以分为:使⽤Halcon导出功能、⾯向对象的⽅式、Halcon引擎。

当然,除了以上⽅法,还有导出库⼯程这样的⽅式可以选择,这⾥就不再阐述。

⼀、Halcon导出功能下图为使⽤Halcon编写的简单程序然后点击⽂件-》导出,或者直接点击如下按钮点击导出之后,选择语⾔为C#-Halcon/.NET,选择好导出⽂件的路径,则会得到⼀个和Halcon程序同名的.cs⽂件打开.cs⽂件,我们看到导出的代码中有⼀个action的⽅法,这个⽅法是即是我们需要重点关注的部分,我们在Halcon中写的代码都在这个⽅法中有所实现。

以下为action的代码:1private void action()2 {345// Local iconic variables67 HObject ho_Image, ho_Region, ho_ConnectedRegions;8 HObject ho_RegionDilation;910// Local control variables1112 HTuple hv_Width = null, hv_Height = null;13// Initialize local and output iconic variables14 HOperatorSet.GenEmptyObj(out ho_Image);15 HOperatorSet.GenEmptyObj(out ho_Region);16 HOperatorSet.GenEmptyObj(out ho_ConnectedRegions);17 HOperatorSet.GenEmptyObj(out ho_RegionDilation);18 ho_Image.Dispose();19 HOperatorSet.ReadImage(out ho_Image, "printer_chip/printer_chip_01");20 HOperatorSet.GetImageSize(ho_Image, out hv_Width, out hv_Height);21if (HDevWindowStack.IsOpen())22 {23 HOperatorSet.SetPart(HDevWindowStack.GetActive(), 0, 0, hv_Height, hv_Width);24 }25 ho_Region.Dispose();26 HOperatorSet.Threshold(ho_Image, out ho_Region, 128, 255);27 ho_ConnectedRegions.Dispose();28 HOperatorSet.Connection(ho_Region, out ho_ConnectedRegions);29 ho_RegionDilation.Dispose();30 HOperatorSet.DilationCircle(ho_ConnectedRegions, out ho_RegionDilation, 3.5);31if (HDevWindowStack.IsOpen())32 {33 HOperatorSet.DispObj(ho_Image, HDevWindowStack.GetActive());34 }35if (HDevWindowStack.IsOpen())36 {37 HOperatorSet.DispObj(ho_ConnectedRegions, HDevWindowStack.GetActive());38 }394041 ho_Image.Dispose();42 ho_Region.Dispose();43 ho_ConnectedRegions.Dispose();44 ho_RegionDilation.Dispose();4546 }action现在,需要我们对这个代码进⾏简单的更改,就可以在C#的Halcon窗体控件中将其显⽰出来,⾸先,新建⼀个C#窗体程序,添加halcondotnet的引⽤,并且添加其命名空间,在主窗体上添加⼀个Halcon的窗体控件和⼀个Button控件,并在Button的Click事件对应的⽅法中添加如下代码即可:代码如下:1namespace Halconprogram2 {3public partial class Form1 : Form4 {5public Form1()6 {7 InitializeComponent();8 }910private void button1_Click(object sender, EventArgs e)11 {1213// Local iconic variables1415 HObject ho_Image, ho_Region, ho_ConnectedRegions;16 HObject ho_RegionDilation;1718// Local control variables1920 HTuple hv_Width = null, hv_Height = null;21// Initialize local and output iconic variables22 HOperatorSet.GenEmptyObj(out ho_Image);23 HOperatorSet.GenEmptyObj(out ho_Region);24 HOperatorSet.GenEmptyObj(out ho_ConnectedRegions);25 HOperatorSet.GenEmptyObj(out ho_RegionDilation);26 ho_Image.Dispose();27 HOperatorSet.ReadImage(out ho_Image, "printer_chip/printer_chip_01");28 HOperatorSet.GetImageSize(ho_Image, out hv_Width, out hv_Height);2930 HOperatorSet.SetPart(hWindowControl1.HalconID, 0, 0, hv_Height, hv_Width);3132 ho_Region.Dispose();33 HOperatorSet.Threshold(ho_Image, out ho_Region, 128, 255);34 ho_ConnectedRegions.Dispose();35 HOperatorSet.Connection(ho_Region, out ho_ConnectedRegions);36 ho_RegionDilation.Dispose();37 HOperatorSet.DilationCircle(ho_ConnectedRegions, out ho_RegionDilation, 3.5);3839 HOperatorSet.DispObj(ho_Image, hWindowControl1.HalconID);404142 HOperatorSet.DispObj(ho_ConnectedRegions, hWindowControl1.HalconID);434445 ho_Image.Dispose();46 ho_Region.Dispose();47 ho_ConnectedRegions.Dispose();48 ho_RegionDilation.Dispose();49 }50 }51 }HalconProgram⽐较前两段代码可以发现,只是对Halcon中导出的.cs⽂件进⾏了简单的窗体句柄的更改,其他地⽅没有任何改变,即可实现想要的效果。

解决halcon不支持的视频设备

解决halcon不支持的视频设备

解决halcon不支持的视频设备一、使用ARFrameGrabber类读取数据,具体操作如下:1、安装DirectX SDK,注意要下载directx 9.0b 版本。

打开SDK安装目录(一般在C:\DXSDK\Samples\C++\DirectShow\BaseClasses),编译BaseClasses.dsw工程,将Debug中的strmbasd.lib文件和Release中的STRMBASE.lib文件拷到C:\DXSDK\Lib目录下; 在VC的工程中加入如下库文件和包含文件: 在下选择“工具”“选项”,在左边的目录下选择“项目”“VC++目录”在右上角的筐里选择“库文件”将C:\DXSDK\Lib加入库文件中;再选择“包含文件”,将C:\DXSDK\IncludeC:\DXSDK\Samples\C++\Common\IncludeC:\DXSDK\Samples\C++\DirectShow\BaseClasses加入其中;注意:有必要将上述目录移到最上方,以免在编译时发生访问库的冲突!项目设置添加Strmbasd.lib2、安装并正确设置opencv,可参照opencv教程3、复制ARFrameGrabber.h和ARFrameGrabber.cpp到工程目录下。

工程包含ARFrameGrabber.h,在程序中定义ARFrameGrabber对象。

注意这里定义的对象只能是静态的全局变量(static ARFrameGrabber frameGrabber)核心代码如下:frameGrabber.GrabByteFrame();//抓一帧BYTE *myBuffer = frameGrabber.GetByteBuffer();//取出图像缓存数据int width = frameGrabber.GetWidth();int height = frameGrabber.GetHeight(); //得出宽和高int stride = (width * sizeof( RGBTRIPLE ) + 3) & -4;cvInitImageHeader( &ds_frame, cvSize(width, height), 8, 3,IPL_ORIGIN_BL, 4 );ds_frame.widthStep = stride;cvSetData( &ds_frame, myBuffer, stride );frame = &ds_frame;cvSaveImage("f.bmp", frame);//把图像写入文件//halcon部分Hobject myImage;read_image(&myImage,"f.bmp");//读出文件HImage Image = HImage(myImage);//转换为HImage类型Image.Display(*m_pHWinFG);//在m_pHWinFG窗口显示总结:前些日子苦于halcon的FrameGrabber无法抓取USB采集卡的图像,一直都在使用普通的USB摄像头。

C++下halcon配置

C++下halcon配置

1.新建一个C++工程,这里命名为Hello
2.将安装程序HDevelop下的文件夹“bin”、“include”、“lib”全都拷贝到C++工程的Hello.sln 所在的同一文件夹下。

3.配置C++工程的“配置属性”的“VC++目录”,“包含目录”为“..\include\cpp”。

“库目录”为“..\include”。

4.“链接器”下的“输入”的“附加依赖项”添加“halconcpp.lib”
5.将“halcon.dll”和“halconcpp.dll”以及“license.dat”文件,拷贝到C++工程的“Dedug”文件夹下。

6.移植到另一台机器中的时候,要在另一台机器路径C:\Program Files\MVTec\Halcon\下加入本台机器安装的HDevelop的help文件夹。

例如:我的机器C:\Program Files\MVTec\HALCON-10.0\help
我在另一台机器下也按着这个路径建立相同文件夹的名字,把我的机器C:\Program Files\MVTec\HALCON-10.0\help下的所以文件拷贝到另一台机器中。

7.配置完成,运行。

halcon安装和破解步骤

halcon安装和破解步骤

Halcon安装说明
1、以管理员身份运行安装包
2、点击Next下一步
3、阅读软件协议,将下拉滑到最下面,勾选我接受协议
4、将检查更新的勾选去掉
5、根据自己系统位数自行选择
6、选择需要安装的组件,默认全部勾选
7、直接点击Next下一步
8、自行选择是否安装其他驱动程序
9、选择文档语言,默认选择第一项英文
10、选择软件安装位置,点击Browser可自行更换安装路径
11、正在安装中,请耐心等待一会
12、需要选择许可证文件路径,这里先选择“Do not install a license file”,稍后再进行
破解激活
13、安装完成,将运行软件的勾选去掉,点击Finish退出软件安装向导
14、先不要运行软件,把和谐文件解压,得到halcon.dll和halconxl.dll
15、复制halcon.dll和halconxl.dll,拷贝到halcon安装目录C:\Program
Files\MVTec\HALCON-18.11-Progress\bin\x64-win64,根据自己的安装目录选择
16、安装破解完成,运行软件即可免费使用了。

halcon的3点云处理的步骤

halcon的3点云处理的步骤

halcon的3点云处理的步骤"Halcon" 是一款由MVTec Software GmbH 开发的机器视觉软件。

Halcon 提供了丰富的图像处理和机器视觉功能,包括对点云的处理。

以下是使用Halcon 进行三点云处理的一般步骤:1.点云获取:在使用Halcon 处理点云之前,首先需要获取点云数据。

这可以通过使用激光雷达、相机或其他三维传感器来捕获目标场景的点云信息。

2.导入点云数据:使用Halcon,你需要将获取的点云数据导入到软件中。

Halcon 可以支持不同的点云数据格式,因此需要根据实际情况选择正确的导入方式。

3.预处理:在进行具体的三点云处理之前,可能需要进行一些预处理步骤,例如去噪、滤波、点云配准等。

这有助于提高点云数据的质量和准确性。

4.三点云定位:在处理三点云时,最常见的任务之一是定位。

这涉及到识别和计算点云中的三个标志性点,通常是物体的特征点。

Halcon 提供了相应的工具和算法,用于在点云中找到这些特征点,并计算它们的相对位置。

5.测量和分析:一旦定位了三个特征点,可以使用Halcon 提供的工具进行测量和分析。

这可能包括计算物体的尺寸、角度、形状等。

Halcon 提供了各种测量和分析功能,可根据应用需求进行选择。

6.结果可视化:将处理后的结果可视化是重要的一步,以便用户能够直观地了解处理的效果。

Halcon 提供了图形界面和图像显示功能,可用于显示处理后的点云数据和分析结果。

7.导出结果:处理完点云后,可能需要将结果导出以供其他应用使用。

Halcon 支持多种数据格式,可以选择适合你需求的格式进行导出。

请注意,具体的步骤和工具可能会因应用场景和具体任务而有所不同。

win7_32_64λ vs2012 halcon11配置

win7_32_64λ vs2012 halcon11配置

win7_32_64位vs2012 Halcon11配置1,新建MFC项目,基于对话框2,属性-VC++目录-包含目录-添加:$(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp(此处32位和64位一样)3,属性-VC++目录-库目录-添加:$(HALCONROOT)\lib\x86sse2-win32(32位)$(HALCONROOT)\lib\x64-win64(64位)4,C/C++-常规-附加包含目录:$(HALCONROOT)\include\halconcpp;$(HALCONROOT)\include(此处32位和64位一样)5,C/C++-链接器-常规-附加库目录:$(HALCONROOT)\lib\x86sse2-win32(32位)$(HALCONROOT)\lib\x64-win64(64位)6、C/C++-链接器/输入-附加依赖项:halconcpp.lib(32位与64位一样)7、在头文件和源文件中加入(***Dlg.h)#include"HalconCpp.h"usingnamespace HalconCpp;8,在cpp文件中加入(***Dlg.cpp)void CMFCApplication3Dlg::OnBnClickedButton1(){ReadImage(&ho_Image, "E:/2013halcon/imageimage10.tif");GetImagePointer1(ho_Image, &hv_Pointer, &hv_Type, &hv_Width, &hv_Height); SetWindowAttr("background_color","black");OpenWindow(0,0,hv_Width/2,hv_Height/2,0,"","",&hv_WindowHandle); HDevWindowStack::Push(hv_WindowHandle);if (HDevWindowStack::IsOpen())DispObj(ho_Image, HDevWindowStack::GetActive());// TODO: 在此添加控件通知处理程序代码}9,在.h文件中声明变量(***Dlg.h)public:afx_msg void OnBnClickedButton1();// Local iconic variablesHObject ho_Image, ho_Region, ho_ConnectedRegions;HObject ho_SelectedRegions, ho_RegionClosing, ho_RegionDifference; HObject ho_ConnectedRegions1, ho_SelectedRegions1;// Local control variablesHTuple hv_Pointer, hv_Type, hv_Width, hv_Height;HTuple hv_WindowHandle;10. 64位系统要在项目---属性---配置管理器---新建x64活动平台注:脱机运行,在没装Halcon的电脑上运行halcon程序要包含一下文件在exe同一目录:(1)halcon.dll , halconcpp.dll以及你工程需要的其他dll文件(2)help文件夹(3)license文件夹(注意是文件夹)(4)程序用到的图片相关文件。

如何使用VC在Halcon中得到像素的信息

如何使用VC在Halcon中得到像素的信息

如何使用VC在Halcon中得到像素的信息Halcon的强大功能使我们省去很多图像处理(机器视觉)中的很多麻烦而又重复性的工作。

但是,面向不同的应用,应该编写自己最核心的算法,从而达到最佳的处理效果;而且Halcon并不可能把各种情况都考虑进去。

以下是我初步入门Halcon和VC的一点感触和想法,已经被实验证明了是正确的。

1,在VC中,使用Halcon打开图像文件,这里要注意read_image()和get_image_pointer1()指令被HDevelop翻译过来以后如下:Hobject ImageHTuple Pointer, Type, Width, Heightget_image_pointer1(Image, &Pointer, &Type, &Width, &Height);VC中如下声明:Halcon::Hobject ImageHalcon::HTuple Pointer, Type, Width, HeightVC中也可以如下声明使用:Hobject ImageChar lpcsType[MAX_STRING]Hlong Pointer, Width, Height 或long Width, Height(如果定义为HTuple Pointer ; Hlong Width, Height; 编译会出现错误;使用Halcon::HTuple Pointer, Type, Width, Height的话,后续中需要图像的高宽时,强制类型转换不可用;当然Hlong可以换成long,推荐使用Hlong。

)get_image_pointer1(Image, &Pointer, lpcsType, &Width, &Height);这里注意,在VC中如果get_image_pointer1( )中的字节类型使用tuple变量,那么Width和Height也必须使用tuple变量,否则编译时候容易出错误,至于原因是什么,可能halcon编译的时候需要各个参数的类型形式一致。

HALCON数字图像处理(刘国华)第12章 HALCON混合编程

HALCON数字图像处理(刘国华)第12章 HALCON混合编程
第12章 HALCON混合编程
德国HALCON是一款具有交互式编程开发的图像处理软件,可导出VB C/C++,C#等代码,利用其自有的HDevelop编程工具,可以轻松地实 现代码从HALCON算子到C、C++、C#等程序语言的转化。利用 HDevelop进行图像分析,完成视觉处理程序的开发,程序可以分成不 同的子程序,每个子程序可以只做一件事,像初始化,计算,或是清 除。主程序用于调用其它子程序,传递图像信息或是接收显示结果。 最后,程序导出成我们要用的程序代码,接续下一步工作。
HALCON数字图像处理
案例:芯片检测系统
图12-31 头文件设置
HALCON数字图像处理
案例:芯片检测系统
4)工程设置,和console程序相同,如图12-32和图12-33。
图12-32 工程设置一
HALCON数字图像处理
案例:芯片检测系统
HALCON数字图像处理
图12-33 工程设置二
案例:芯片检测系统
案例:成捆棒材复核计数系统
介绍:成捆复核计数系统是采用机器视觉技术检测棒材端面,通 过图像处理获得棒材中心信息并进行识别计数,实现准确复检计 数的新型检测装置。棒材复核计数系统是由工控机、光源、工业 相机、镜头和HALCON与VB混合编程的成捆棒材复核计数软件组 成。现场采集的成捆棒材图像如图12-2所示。
HALCON数字图像处理
图12-11
案例:电路板缺陷检测系统
新建项目如图12-12所示,选择.NET Framework 4 运行平台,创建 Windows窗体应用程序,修改解决方案名称为“混合编程”,项目 名称为“单片机实例”,选择程序保存路径,创建Form1窗体如图 12-13所示。

halcon新手手册_1.0.1(修)

halcon新手手册_1.0.1(修)

1.无论读入什么图像,读入图像显示效果明显和原始图像不一致,哪怕是从相机读入的图像,也是明显颜色差异。

什么原因引起?初步诊断是,显示的时候调用的颜色查找表存在异常不是default ,而是其它选项。

此时可以通过查阅相关参数,调用set_system解决,也可以在编辑-》参数选择-》颜色查找表进行更改。

2.裁剪图像;从图像上截取某段图像进行保存。

如何实现该操作?首先应该知道,region不具有单独构成图像的要素,他没有灰度值。

有用过opencv的应该知道ROI(感兴趣区域),设置好它后,对图像的大部分操作就转为图像的一个矩形区域内进行。

类似的,halcon有domain 概念。

首先设置好一个矩形区,然后使用reduce_domain(是一个矩形区域)后,再使用crop_domain 就裁剪出图像。

3.读入bmp,或tiff 图像显示该图不是bmp文件或不能读。

原因是什么?这个常有新手询问,画图,图像管理器都能打开,又或者是相机采集完直接存到硬盘。

Halcon 读取图像在windows下面到最后是调用windows库函数实现读图功能。

咱不清楚到底是怎么调用的。

对于图像格式,在读图函数F1说明很细。

基本bmp 如果文件头不是bw还是bm(百度百科bmp格式查找,编写此处时无网络,后续可能忘记),就读不进来。

其他规格欢迎补充。

解决办法,如果是相机采集,就在内存直接转换(参见halcon到VC.pdf 里面的halcon和bitmap互转);如果是采完的图片,大部分通过画图工具转换为24位bmp 格式,即可解决。

4.读入avi文件报错。

Halcon 通过directshow或另一个格式解析视频,正常来说应该可以读入市面大部分视频,实际测试发现只能读入最标准的avi文件格式。

如果需要临时处理,需要下格式工厂等工具转化为最标准的avi文件格式(论坛叶诺有发帖说明)。

5.Region 或xld 筛选。

Halcon提供了丰富的region 和xld筛选方法。

Halcon标定文件的生成及标定板规格

Halcon标定文件的生成及标定板规格

Halcon标定文件的生成Halcon标定文件的生成图一Halcon标定文件的生成,需要有以下几个步骤:1.创建一个标定数据模板,由create_calib_data算来完成。

2.指定相机的类型,初始化相机内部参数,由set_calib_data_cam_param算子来完成。

3.指定标定板的描述文件,由set_calib_data_calib_object算子完成。

4.收集观察数据,有算子set_calib_data_observ_points完成。

也就是收集标定板上圆点的中心坐标,跟各个校正板的位置姿态。

5.配置校正过程。

由算子set_calib_data完成。

6.将数据整合进行标定计算。

calibrate_cameras7.获得标定参数。

get_calib_data8.记录标定参数,write_cam_parStartCamPar := [0.016, 0, 0.0000074, 0.0000074, 326, 247, 652, 494]解释一下这个数组的意思。

面阵相机有14或18个参数(根据想相机的畸变模式),对于线阵相机有17个参数。

这些参数可以分开为内部相机参数、外部相机参数。

面阵相机(division模式):Focus(焦距):远焦镜头镜头焦距的长度Kappa:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高面阵相机(polynomia模式):Focus(焦距):远焦镜头镜头焦距的长度K1, K2, K3, P1,P2:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高线阵相机不做具体介绍Halcon标定板规格2011-12-23 12:56 68人阅读评论(1) 收藏举报图一:30*30 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:30mm*30mm内边框长度:28.125mm*28.125mm 即:黑色边框线宽为一个圆点半径(0.9375)黑色圆点半径:0.9375mm圆点中心间距: 3.75mm裁剪宽度:30.75mm*30.75mm 即:由黑色边框向外延伸0.375mm边角:由黑色外边框向内缩进一个中心边距的长度40*40 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:40mm*40mm内边框长度:37.5mm*37.5mm 即:黑色边框线宽为一个圆点半径(0.125)黑色圆点半径:0.125mm圆点中心间距:5mm裁剪宽度:21mm*21mm 即:由黑色边框向外延伸0.5mm边角:由黑色外边框向内缩进一个中心边距的长度50*50 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:50mm*50mm内边框长度:46.875mm*46.875mm 即:黑色边框线宽为一个圆点半径(1.5625)黑色圆点半径: 1.5625mm圆点中心间距: 6.25mm裁剪宽度:51.25mm*51.25mm 即:由黑色边框向外延伸0.625mm边角:由黑色外边框向内缩进一个中心边距的长度60*60 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:60mm*60mm内边框长度:56.25mm*56.25mm 即:黑色边框线宽为一个圆点半径(1.875)黑色圆点半径: 1.875mm圆点中心间距:7.5mm裁剪宽度:61.5mm*61.5mm 即:由黑色边框向外延伸0.75mm边角:由黑色外边框向内缩进一个中心边距的长度Halcon如何制作标定板分类:Halcon 2011-12-23 12:51 151人阅读评论(2) 收藏举报图1上图即为我自行制作的标定板的图样。

Halcon11升级方法

Halcon11升级方法

Halcon11.0升级方法一、系统配置1、将vc_include文件,从10版本更换为11版本;2、打开MFC工程,关联Halcon11.0的库文件。

具体方法如下:将原来的:Tools--->Options--->Include fils--->vc_include--->HALCON\INCLUDE\CPP更改为:Tools--->Options--->Include fils--->vc_include--->HALCON\INCLUDE\HALCONCPP一、系统配置3、Project--->Settings,选择C/C++ 页面,Category选项中选择Preprocesser,在Additional include directories中加入:$(HALCONROOT)\include,$(HALCONROOT)\include\halconcpp;选择Link页面,Category选项中选择Input,Object/library modules 中加入halconcpp.lib;在Additional library path中加入:$(HALCONROOT)\lib\$(HALCONARCH)二、代码更改1、HalconCpp名空间的更改(1)将原来头文件中的:#include<Halcon.h>,更改为:#include <HalconCpp.h>;(2)将原来的using namespace Halcon,更改为:using namespace HalconCpp;(3)将原来的Function(Halcon::HTuple T1, .....................)更改为:Function(HalconCpp::HTuple T1, .....................)或:Function(HTuple T1, .....................)(统一采用此种方法)2、算子更改:(1)Hobject更改为HObject;二、代码更改(2)原算子首字母和下划线后首字母均改为大写,并去掉下划线。

MFC与Halcon联合编程环境配置

MFC与Halcon联合编程环境配置

MFC&HALCON开发环境配置
本文写下MFC调用HALCON开发环境的配置。

本文基于:VS2013 HALCON12
1)首先建立一个基于对话框的MFC工程
2)生成-> 配置管理器如果是64位的操作系统解决方案平台一定要变为x64
3)视图-> 属性管理器可以发现在属性管理器中多了x64两个文件夹,以Debug为例,双击Debug中的er
进行属性配置,本文HALCON安装位置为C:\Program
Files\MVTec\HALCON-12.0,各位按自己情况更改,换到自己安装目录即可。

①VC++ 包含目录加入
C:\Program Files\MVTec\HALCON-12.0\include
C:\Program Files\MVTec\HALCON-12.0\include\cpp
C:\Program Files\MVTec\HALCON-12.0\include\halconcpp
②VC++ 库目录加入
C:\Program Files\MVTec\HALCON-12.0\lib\x64-win64
③C/C++ -> 常规附加包含目录加入
C:\Program Files\MVTec\HALCON-12.0\include
C:\Program Files\MVTec\HALCON-12.0\include\halconcpp
④链接器-> 常规-> 附加库目录加入
C:\Program Files\MVTec\HALCON-12.0\lib\x64-win64
⑤链接器-> 输入-> 附加依赖项加入
halconcpp.lib
至此vs2013配置完成。

halcon+VC6.0混合编程

halcon+VC6.0混合编程

Halcon与MFC混合编程(图文教程) 一.新建工程
打开VC6.0 -- >新建工程-- >MFC AppWizard (exe)
选择类型:Dialog based -- > Finish
二 .把Halcon安装目录下lib、include文件夹复制到新建的工程目录下的halcon新文件夹中
三.配置halcon
打开VC6.0 -- > Project -- > Setting
1.C/C++ 设置
Category选Preprocessor,
路径选halcon\include,halcon\include\cpp(英文的“,”隔开)
2.Link设置
Cartegory选input
包含文件为halcon.lib halconcpp10.lib(中间用空格隔开)
路径为halcon\lib\x86sse2-win32
Cartegory选General
把Debug改为bin
到此配置完成,可以点OK了
四.在程序添加代码
1.类CMay-App中添加头文件
#include "halconcpp.h"
using namespace Halcon;
2.在类CMy-Dlg中添加变量初始化语句public:
Hobject m_Image;
HTuple m_hWindowHandle; Hobject m_objDisp;
3.在OnInitDialog()中添加对话框按键语句
对话框右键属性,ID改为VIEW,如下图所示
双击对话框或按键,在TODO下面添加相应的语句即可。

如何在VB、VC和.NET中使用halcon

如何在VB、VC和.NET中使用halcon

VC开发
7.结果和预料的优 点区别——图 片显示窗口不 在对话框内! ⊙﹏⊙b汗!!
VC开发
8.检查代码。经过检查,发现问题出在此函数上。我们打开 halcon帮 助文件,在语法选择栏中选择C++,然后在索引出输入 open_window,就可以看到此函数的在C++下的帮助文件了。
open_window(0,130,Width/2,Height/2,0,"visible","",&WindowHandle);
VC开发
MFC程序 1.新建一个空的MFC
工程,document 程序或者dialog 程序。我们这里 新建一个dialog 程序,如右图; 2.建立准备用来进行 图像操作的按钮 (或菜单),明 确按钮(或菜单 )的功能;
VC开发
3.打开从HDevelop中导 出的cpp代码,把 action函数体中用到 函数,根据功能的不 同,分别拷贝至图像 处理菜单或按钮对应 的代码处;
C#开发
9.编译,运行,我们就可以看到预期的效果了。
运行打包
1、打开C:\Program Files\MVTec\HALCON-9.0\bin\x86sse2-win32文 件夹,复制halconcpp.dll和用到的dll,如hAcqDahengCAM.dll到 可执行文件所在的文件夹;
2、复制license到相同文件夹; 3、复制文件夹C:\Program Files\MVTec\HALCON-
VB开发
3.添加控件。工程菜 单===>部件===> 控件,勾选上 halcon/com library v1.7, 确定。我们可以 看到了新的组件 图标了 ,HWindowXCtrl控 件用于显示图像 。

c++ 巴斯勒转halcon变量

c++ 巴斯勒转halcon变量

文章标题:C++中的巴斯勒转Halcon变量方式及应用一、c++ 巴斯勒转halcon变量的简介在C++编程中,将巴斯勒(Basler)相机的图像数据传输至Halcon处理的步骤是非常常见的需求。

巴斯勒相机是一种常用的工业相机,在图像处理领域有着广泛的应用。

而Halcon则是一款强大的机器视觉软件库,可以用于图像处理、模式识别等领域。

将巴斯勒相机的图像数据转换为Halcon变量,是一项重要的技术,本文将对此进行深入探讨。

二、c++ 巴斯勒转halcon变量的基本原理1. 巴斯勒相机数据的获取在C++中,获取巴斯勒相机的图像数据可以使用Basler提供的相机驱动和API接口。

通过调用API函数,可以将相机拍摄的图像数据获取到相应的变量中,例如Mat类型的变量。

2. Halcon变量的创建和初始化Halcon中有许多不同类型的变量,可以用于表示图像、区域、模板等。

在C++中,可以使用Halcon的API接口来创建和初始化这些变量,为后续的图像处理做好准备。

3. 巴斯勒图像数据到Halcon变量的转换一种常见的将巴斯勒相机的图像数据转换为Halcon变量的方法,是先将Mat变量中的数据以文件的形式保存下来,然后再使用Halcon的读图像函数将其读取进来并转化为Halcon图像变量。

这样,就可以完成从巴斯勒相机到Halcon变量的转换。

三、c++ 巴斯勒转halcon变量的具体实现在实际的C++编程中,将巴斯勒相机的图像数据转换为Halcon变量可以按照以下步骤进行:1. 初始化巴斯勒相机并设置相应的参数,启动相机。

2. 持续地从巴斯勒相机中获取图像数据,并将其保存为Mat类型的变量。

3. 将Mat变量中的图像数据保存为文件。

4. 使用Halcon的读图像函数将文件中的图像数据读取进来并转化为Halcon图像变量。

通过以上步骤,就可以完成从巴斯勒相机的图像数据到Halcon变量的转换。

四、c++ 巴斯勒转halcon变量的应用场景将巴斯勒相机的图像数据转换为Halcon变量,在机器视觉和图像处理领域有着广泛的应用。

halcon license 路径

halcon license 路径

halcon license 路径摘要:1.介绍Halcon License2.Halcon License 的安装路径3.Halcon License 的激活方法4.激活过程中可能遇到的问题及解决方案5.总结正文:Halcon License 是一款图像处理软件的许可证,它为用户提供了丰富的图像处理功能。

在安装和使用Halcon License 时,了解其安装路径和激活方法是非常重要的。

本文将详细介绍Halcon License 的安装路径和激活方法,以及激活过程中可能遇到的问题及解决方案。

首先,我们来介绍一下Halcon License 的安装路径。

在安装Halcon 软件时,通常会在安装目录下生成一个名为“Halcon”的文件夹。

在这个文件夹中,有一个名为“bin”的子文件夹。

Halcon License 就安装在这个“bin”文件夹中。

具体路径可能因安装位置和系统而异,用户可以自行查找。

接下来,我们来了解一下Halcon License 的激活方法。

在激活Halcon License 之前,请确保您的计算机已经安装了Halcon 软件。

激活过程分为以下几个步骤:1.打开Halcon 软件,进入“Halcon License Manager”界面。

2.在“Halcon License Manager”界面中,选择“Install/UpdateLicense”。

3.选择“Activate/Change Computer”,然后点击“Next”。

4.在出现的对话框中,选择“Activate”,然后点击“Next”。

5.阅读并同意许可协议,点击“Next”。

6.选择“Activate by Internet”,然后点击“Next”。

7.系统将自动连接到Halcon 服务器进行激活。

如果网络连接正常,激活过程将自动完成。

在激活过程中,可能会遇到一些问题。

以下是一些可能的问题及解决方案:1.网络连接问题:请检查您的网络连接是否正常,或者更换一个网络环境试试。

Halcon标定文件的生成及标定板规格

Halcon标定文件的生成及标定板规格

Halcon标定文件的生成Halcon标定文件的生成图一Halcon标定文件的生成,需要有以下几个步骤:1.创立一个标定数据模板,由create_calib_data算来完成。

2.指定相机的类型,初始化相机部参数,由set_calib_data_cam_param算子来完成。

3.指定标定板的描述文件,由set_calib_data_calib_object算子完成。

4.收集观察数据,有算子set_calib_data_observ_points完成。

也就是收集标定板上圆点的中心坐标,跟各个校正板的位置姿态。

5.配置校正过程。

由算子set_calib_data完成。

6.将数据整合进展标定计算。

calibrate_cameras7.获得标定参数。

get_calib_data8.记录标定参数,write_cam_parStartCamPar := [0.016, 0, 0.0000074, 0.0000074, 326, 247, 652, 494]解释一下这个数组的意思。

面阵相机有14或18个参数〔根据想相机的畸变模式〕,对于线阵相机有17个参数。

这些参数可以分开为部相机参数、外部相机参数。

面阵相机〔division模式〕:Focus〔焦距〕:远焦镜头镜头焦距的长度Kappa:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高面阵相机〔polynomia模式〕:Focus〔焦距〕:远焦镜头镜头焦距的长度K1, K2, K3, P1,P2:扭曲系数Sx,Sy:两像素间距Cx,Cy:中心点坐标Whith,Height:图像的宽高线阵相机不做具体介绍Halcon标定板规格2011-12-23 12:5668人阅读评论(1)收藏举报图一:30*30 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:30mm*30mm边框长度:28.125mm*28.125mm 即:黑色边框线宽为一个圆点半径〔0.9375〕黑色圆点半径:0.9375mm圆点中心间距: 3.75mm裁剪宽度:30.75mm*30.75mm 即:由黑色边框向外延伸0.375mm边角:由黑色外边框向缩进一个中心边距的长度40*40 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:40mm*40mm边框长度:37.5mm*37.5mm 即:黑色边框线宽为一个圆点半径〔0.125〕黑色圆点半径:0.125mm圆点中心间距:5mm裁剪宽度:21mm*21mm 即:由黑色边框向外延伸0.5mm边角:由黑色外边框向缩进一个中心边距的长度50*50 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:50mm*50mm边框长度:46.875mm*46.875mm 即:黑色边框线宽为一个圆点半径〔1.5625〕黑色圆点半径: 1.5625mm圆点中心间距: 6.25mm裁剪宽度:51.25mm*51.25mm 即:由黑色边框向外延伸0.625mm边角:由黑色外边框向缩进一个中心边距的长度60*60 规格的标定板的规格黑色圆点行数:7黑色圆点列数:7外边框长度:60mm*60mm边框长度:56.25mm*56.25mm 即:黑色边框线宽为一个圆点半径〔1.875〕黑色圆点半径: 1.875mm圆点中心间距:7.5mm裁剪宽度:61.5mm*61.5mm 即:由黑色边框向外延伸0.75mm边角:由黑色外边框向缩进一个中心边距的长度Halcon如何制作标定板分类:Halcon2011-12-23 12:51151人阅读评论(2)收藏举报图1上图即为我自行制作的标定板的图样。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档