如何在VB、VC和.NET中使用halcon
- 格式:pdf
- 大小:2.58 MB
- 文档页数:25


Visual Studio 10.0设置引用HalconDotNet.dll 开始做Halcon的上位机,选用Visual Studio 10.0平台。
具体设置以C#,VB为例子,如下:C#第一步:01.新建项目02.选择Visual C#03.修改文件名04.确认01.选择“解决方案资源管理器”02.选择“引用”,右键03.选择“添加引用”01.在添加引用选项卡选择浏览02.选择路径:X:\Program Files\MVTec\HALCON-10.0\bin\dotnet2003.选择“HalconDotNet.dll”04.确认01.选择“工具箱”02.选择“所有工具”或任意工具控件,右键03.选择“选择项”选择Halcon图像控件还有VB的设置,如下图:01.选择项目名称02.点击显示全部文件,取消隐藏,就可以看到引用03.引用,邮件04.添加,之后的步骤和C#一样选择工具控件,步骤和C#基本一样。
01.选择“工具箱”02.选择“所有工具”或任意工具控件,右键03.选择“选择项”04.在“.net framwork组件”的选项卡中,选择浏览05.出来的对话框中,选择X:\Program Files\MVTec\HALCON-10.0\bin\dotnet2006.选择“HalconDotNet.dll”07.确认08.这时候的工具栏的控件是HWinwow控件。
X:\Program Files\MVTec\HALCON-10.0\bin\dotnet20路径下的无法使用,在.net framework组件无法找到X:\Program Files\MVTec\HALCON-10.0\bin\dotnet35路径下的可用,在.net framework组件下可以找到,并且在工具箱上能够找到并使用,但是功能无法实现,如下图我不作其他动作,程序代码内容仅是运行时候读取一张图片,在调试的时候能够运行,但读不到图片……楼主在环境下正常运行了吗?求解~x8515618:定义错了dim m_hWindow As Htuple'这是一个句柄,不是窗体控件x8515618:Dim m_hWindow As Htuple = Nothingkamuixiao:谢谢楼上的建议,但是我试了下发现仍然不行,我觉得问题不是出在这里,不知道使用的各位有没有遇到过,反正我是没能正常实现过一次的,输出显示的错误情况如图:你只是读取了图片,都没有显示图片呢灵峤lencue:你最开始新建项目的时候选择的“.net框架”版本是多少的?.net 2.0就用dotnet20文件夹,3.5就用dontnet35文件夹,你再查看一下,会不会是这个问题,看能不能解决。
如何使用VC在Halcon中得到像素的信息作者:支源,时间2007-3-16Halcon的强大功能使我们省去很多图像处理(机器视觉)中的很多麻烦而又重复性的工作。
但是,面向不同的应用,应该编写自己最核心的算法,从而达到最佳的处理效果;而且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基本,vb连接halcon读取图像,视频halcon学习方法:安装完halcon之后,在开始里出现一些文档quick_guide.pdf快速入门halconhdevelop_users_guide.pdf详细讲解在hdevelop中使用halcon,及hdevelop的操作programmers_guide.pdf详细讲解在高级语言中的使用halconreference_hdevelop.pdf讲解各个算子、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、vb中使用halcon窗口加载图像1.读取图像[cpp]view plaincopyprint?1.read_image (Lena, 'F:/image/lena.jpg')2.get_image_size (Lena, Width, Height)3.dev_close_window ()4.dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)5.set_display_font (WindowHandle, 14, 'mono', 'true', 'false')6.dev_display (Lena)7.disp_continue_message (WindowHandle, 'black', 'true')8.stop ()2.导出vb的bas代码选择文件/导出,弹出注意:此处选择使用halcon窗口3.vb中调用read_image.bas先看一下read_image.bas的内容,可知在需要的地方直接调用main即可[vb]view plaincopyprint?1....2.3.' Main procedure4.Private Sub action()5.6. ' Local iconic variables7. Dim ho_Lena As HUntypedObjectX8.9.10. ' Local control variables11. Dim hv_Width As Variant, hv_Height As Variant12. Dim hv_WindowHandle As Variant13.14.15. Call Op.ReadImage(ho_Lena, "F:/image/lena.jpg")16. Call Op.GetImageSize(ho_Lena, hv_Width, hv_Height)17. If COMExpWinHandleStack.IsOpen() Then18. Op.CloseWindow (COMExpWinHandleStack.Pop())19. End If20. Call Op.SetWindowAttr("background_color", "black")21. Call Op.OpenWindow(0, 0, Tuple.TupleDiv( _22. hv_Width, 2), Tuple.TupleDiv(hv_Height, 2), 0, "", "", hv_WindowHandle)23. COMExpWinHandleStack.Push (hv_WindowHandle)24. Call set_display_font(hv_WindowHandle, 14, "mono", "true", "false")25. If COMExpWinHandleStack.IsOpen() Then26. Call Op.DispObj(ho_Lena, COMExpWinHandleStack.GetActive())27. End If28. Call disp_continue_message(hv_WindowHandle, "black", "true")29. HDevelopStop30.End Sub31.32.33.34.#If Not NO_EXPORT_APP_MAIN Then35.Sub InitHalcon()36. ' Default settings used in HDevelop37. Call Op.SetSystem("do_low_error", "false")38.End Sub39.40.Sub Main()41. Call InitHalcon42. Call action43.End Sub44.45.#End If3.1.新建一个exe 的project ,然后保存,然后添加read_image.bas 文件到此project3.2.添加halcon/com 控件:选择project/components ,弹出的菜单中3.3.在工具箱中会出现HWindowXCtrl 控件,拖进form1,然后再拖一个commandbutton,双击commanbutton,加入代码 [vb] view plaincopyprint? 3. End Sub Private Sub Command1_Click()Call Main 3.4.按F5运行程序,然后单击command1,弹出 这是一个halcon 界面库构造的窗口,脱离vb 窗口的。