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 窗口的。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 vb 中使用hwindowxctrl 的窗口加载图像 在上面第2步选择使用导出模板。
导出的代码如下,可知需要调用的过程是inithalcon 和runhalcon [vb] view plaincopyprint? 1. ... 2. ' Main procedure 3. Private Sub action() 4. 5. ' Local iconic variables 6. Dim ho_Lena As HUntypedObjectX 7. 8. 9. ' Local control variables 10. Dim hv_Width As Variant, hv_Height As Variant 11. Dim hv_WindowHandle As Variant 12. 13. Call Op.ReadImage(ho_Lena, "F:/image/lena.jpg") 14. Call Op.GetImageSize(ho_Lena, hv_Width, hv_Height)15. 'dev_close_window(...); 16. 'dev_open_window(...); 17. Call set_display_font(hv_ExpDefaultWinHandle, 14, "mono", "true", "false") 18. Call Op.DispObj(ho_Lena, hv_ExpDefaultWinHandle) 19. Call disp_continue_message(hv_ExpDefaultWinHandle, "black", "true") 20. HDevelopStop 21. End Sub 22. 23. 24. 25. Sub InitHalcon() 26. ' Default settings used in HDevelop 27. Call Op.SetSystem("do_low_error", "false") 28. End Sub 29. 30. Sub RunHalcon(ByRef Window As HWindowX) 31. hv_ExpDefaultWinHandle = Window.HalconID 32. Call action 33.End Sub在上面的3.3中拖入一个commandbutton2,双击添加代码 [vb] view plaincopyprint? 1. Private Sub Form_Load() 2. Call InitHalcon7. End Sub 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 vb 中使用hwindowxctrl 的窗口加载视频 1.插入摄像头,只要qq 视频模块可以使用的摄像头,halcon 基本都可以使用吧 2.在halcon 中新建一个工程,文件/新程序 3.选择助手/打开新的imageaquisition ,点击检测,会检测到directshow 观察连接标签栏里已经识别出中微星的摄像头,可以点击连接,实时查看一下。
颜色空间中可以选择以灰度方式采集图像。
4.选择生成代码标签,如下。
同步采集。
选择插入代码,如下 [vb] view plaincopyprint? 1. * Code generated by Image Acquisition 01 2. open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'de fault', 'Vimicro USB PC Camera (ZC030x)', 0, -1, AcqHandle) 3. while (true) 4. grab_image (Image, AcqHandle) 5. * Do something 6. endwhile 7. close_framegrabber (AcqHandle)其中open_framegrabber用于打开摄像头并配置,此函数在调用时会测试要指定的设备,并锁定该设备。