halcon相机采集显示.docx

上传人:cn****1 文档编号:546315669 上传时间:2023-05-14 格式:DOCX 页数:9 大小:64.88KB
返回 下载 相关 举报
halcon相机采集显示.docx_第1页
第1页 / 共9页
halcon相机采集显示.docx_第2页
第2页 / 共9页
halcon相机采集显示.docx_第3页
第3页 / 共9页
halcon相机采集显示.docx_第4页
第4页 / 共9页
halcon相机采集显示.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《halcon相机采集显示.docx》由会员分享,可在线阅读,更多相关《halcon相机采集显示.docx(9页珍藏版)》请在金锄头文库上搜索。

1、在VS2005中使用Halcon算子采集和处理图像的步骤在VS2005中使用Halcon算子采集和处理图像的步骤1.使用向导创建基于对话框的应用程序。2.环境变量设置,这步只要配置一次就可以。具体可以参加相关文章。3.添加附加库halconcpp.lib,project-properties-configuration properties-linker-Input-Additional dependecies后面添加。4.添加头文件和命名空间在*Dlg.h头文件中添加如下的头文件和命名空间:#include halconcpp.husing namespace Halcon;5.创建halc

2、on显示窗口5.1定义窗口句柄(在*Dlg.h头文件中添加):HTuple m_HWindowID5.2添加初始化窗口函数(在*Dlg.h头文件中添加):public:void InitHalconWindow();5.3在对话框窗口添加一Picture控件,ID为:IDC_PIC_HWINDOW,用于显示图像。5.4实例化初始化窗口函数(在*Dlg.cpp文件中添加),如下所示:void C*Dlg:InitHalconWindow()/定义显示的起点和长宽高HTuple HWindowRow,HWindowColumn,HWindowWidth,HWindowHeight;/定义窗口IDH

3、Tuple HWindowID;/定义一个CRect类的对象,用于获取图像框的尺寸和位置CRect Rect;CWnd *pWnd = GetDlgItem(IDC_PIC_HWINDOW);CDC *pDC = pWnd-GetDC();pWnd-GetWindowRect(&Rect);/设置显示窗口的起点和宽高HWindowRow = 0;HWindowColumn = 0;HWindowWidth = Rect.Width();HWindowHeight = Rect.Height();/设定固定的窗口大小,而不是根据控件大小设定/GetDlgItem(IDC_PIC_HWINDOW)

4、-SetWindowPos(NULL,0,0,322,242,SWP_NOZORDER | SWP_NOMOVE);tryset_window_attr(border_width,0);/获取当前窗口指针HWindowID = (Hlong)pWnd-m_hWnd;set_check(father);open_window(HWindowRow,HWindowColumn,HWindowWidth,HWindowHeight,HWindowID,visible,&m_HWindowID);set_check(father);/设置显示模式是margin(边缘)set_draw(m_HWindo

5、wID,margin);catch (HException& except)TRACE(except.message);然后把此函数放到程序的初始化函数中(即放到OnInitDialog()函数中),之后程序运行就可以打开窗口,窗口句柄为m_HWindowID。6添加打开相机的函数6.1定义相机句柄和图像的宽高(在*Dlg.h头文件中添加):HTuple m_FGHandle,m_ImageWidth, m_ImageHeight;6.2定义打开相机函数(在*Dlg.h头文件中添加):void OpenCam(CString strCamDrv);6.3打开相机的函数实例化(在*Dlg.cpp

6、文件中添加),如下所示:void C*Dlg:OpenCam()try/根据使用的相机,选择合适的参数open_framegrabber(DirectShow, 1, 1, 0, 0, 0, 0, default, 8, rgb, -1, false, default, USB 视频设备, 0, -1, &m_FGHandle);/设置相机参数的一些算子/打开异步采集grab_image_start(m_FGHandle, -1);/采集一副图像grab_image_async(&m_LiveImage, m_FGHandle, -1);/得到图像的宽高和指针get_image_pointer

7、1(m_LiveImage, NULL, NULL, &m_ImageWidth, &m_ImageHeight);/使图像显示适应窗口大小set_part(m_HWindowID, 0, 0, m_ImageHeight - 1, m_ImageWidth -1);catch (HException& except)TRACE(except.message);然后把此函数放到程序的初始化函数中(即放到OnInitDialog()函数中),之后程序运行就可以打开相机,相机句柄为m_FGHandle。当然也可以放到其他合适的地方。7添加线程函数,用于实时采集图像和处理7.1定义:添加线程布尔变量

8、、线程句柄、事件和ID/是否采集布尔变量BOOL m_bStartSnap;/线程句柄和事件HANDLE m_hSnapHandle, m_hEvent;/线程IDDWORD m_dwThreadID;/定义采集到的图像对象Hobject m_LiveImage;/注意halcon10是Hobject,halcon11是HObject/定义线程函数Static DWORD CALLBACK SnapThread(LPVOID lpParam);7.2添加线程体函数如下:DWORD WINAPI C*Dlg:SnapThread(LPVOID lpParam)CGrabberDlg *pDlg

9、= (C*Dlg *)AfxGetApp()-m_pMainWnd;Hobject SymbolRegions;trywhile (pDlg-m_bStartSnap)/抓取图像grab_image(&pDlg-m_LiveImage,pDlg-m_FGHandle);/窗口中显示图像disp_obj(pDlg-m_LiveImage, pDlg-m_HWindowID);if (pDlg-m_bStartInc)/处理采集的图像pDlg-BarCodeInc(pDlg-m_LiveImage);catch (HException& except)TRACE(except.message);r

10、eturn 0;7.3添加按钮创建线程,在.2中描述了创建线程体函数的过程,这一段主要描述怎样创建线程,上.2中的线程体函数开始运行。在OnInitDialog()初始化函数中初始化采集图像的布尔变量,m_bStartSnap = FALSE;在对画框中添加一个按钮,ID为:IDC_BUTTON_STARTSNAP,名称为开始采集。为此按钮添加事件如下:void C*Dlg:OnBnClickedButtonStartsnap()/ TODO: Add your control notification handler code hereDWORD dwExit = 0;MSG msg;if

11、(!m_bStartSnap)/采集图像的布尔变量为TRUEm_bStartSnap = TRUE;m_hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);/创建线程m_hSnapHandle=CreateThread(NULL,0, (LPTHREAD_START_ROUTINE)SnapThread, m_hEvent, 0, &m_dwThreadID);SetEvent(m_hEvent);elsem_bStartSnap = FALSE;doSleep(1);GetExitCodeThread(m_hSnapHandle, &dwExit);if (

12、:PeekMessage(&msg, NULL, 0, 0, PM_REMOVE):TranslateMessage(&msg);:DispatchMessage(&msg);while(dwExit = STILL_ACTIVE);/关闭线程和事件CloseHandle(m_hEvent);CloseHandle(m_hSnapHandle);完成以上七步以后,运行程序,点击开始采集按钮,如果连接上相机的话此时在窗口中会实时显示采集到的图像。8添加烟盒一维条码识别程序。把编写好的Hdev程序导出CPP文件,从cpp文件中找出我们需要部分,添加到程序中。8.1定义条码识别的各种变量,包括条码句柄、条码类型和识别的条码结果。HTuple m_BarCodeHandle, m_CodeTypes, m_DecodedDataStrings;8.2在OnInit

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号