halcon13初探,显示一张图片(c++)
目的:将halcon的窗口嵌入到MFC当中,并显示一张图片;
1、配置
可执行文件目录bin:
C:\Program Files\MVTec\HALCON-13.0\bin\x64-win64
库目录lib:
C:\Program Files\MVTec\HALCON-13.0\lib\x64-win64
包含目录include:
C:\Program Files\MVTec\HALCON-13.0\include
C:\Program Files\MVTec\HALCON-13.0\include\halconcpp
库文件lib[附加依赖项]:
halcon.lib
halconc.lib
halconcpp.lib
halconcpp10.lib
halconcpp10xl.lib
halconcppxl.lib
halconcxl.lib
halconx.lib
halconxl.lib
halconxxl.lib
hdevenginecpp.lib
hdevenginecpp10.lib
hdevenginecpp10xl.lib
hdevenginecppxl.lib
hdevenginex.lib
hdevenginexxl.lib
测试时需包含的头文件:
#pragma once
#ifndef __APPLE__
#include "HalconCpp.h"
#else
#ifndef HC_LARGE_IMAGES
#include <HALCONCpp/HalconCpp.h>
#else
#include <HALCONCppxl/HalconCpp.h>
# endif
#endif
using namespace HalconCpp;
在测试中发现了问题,如果出现了:HalconCpp::HOperatorException
请使用try catch捕获异常并进行显示,是什么错则一目了然。
如下:
try{
///这里是Haclon代码
}
catch(HException &except){
MessageBox(CString(except.ErrorMessage()));
}
配置完成后,进行一个简单的测试,为了方便,我把所有操作都写到一个按钮控件下了:
HObject ho_Image;
ReadImage(&ho_Image, "C:/Users/wangyang/Desktop/7Color8B.png"); //加载图片
CWnd *pWnd = GetDlgItem(IDC_P);
CDC *pDC = pWnd->GetDC();
CRect Rect;
pWnd->GetClientRect(&Rect); //获取MFC中Picture控件Rect
HTuple wndID = (Hlong)pWnd->m_hWnd; //获取picture控件ID号
HTuple HwndID; //Halcon的窗口ID
OpenWindow((Hlong)Rect.top, (Hlong)Rect.left, (Hlong)Rect.Width(), (Hlong)Rect.Height(), (Hlong)wndID, "visible", "", &HwndID); //将MFC控件ID以及其尺寸等信息传给Halcon窗口控件
HTuple hWidth, hHeight;
GetImageSize(ho_Image, &hWidth, &hHeight); //获得图像的尺寸
SetPart(HwndID, 0, 0, hHeight, hWidth); //设置控件要显示的像素尺寸
DispObj(ho_Image, HwndID); //显示图像
so easy!
版权声明:本文为u012541187原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。