在MFC中用halcon读图像,显示在主窗口和picture control中

1.建立对话框工程(字符集:多字节字符集)
2.配置属性:
(1)配置属性-》c++-》常规-》附加库目录,加入:
D:\Program Files\MVTec\HALCON-12.0\include\halconcpp;
D:\Program Files\MVTec\HALCON-12.0\include;
(2)配置属性-》链接器-》常规-》附加库目录,加入:
D:\Program Files\MVTec\HALCON-12.0\lib\x64-win64;
(3)配置属性-》链接器-》输入-》附加依赖项,加入:
halconcpp.lib
3.Halcon调用,需在Dlg.h或调用文件中加入

include”HalconCpp.h”

using namespace HalconCpp;
4.
(1)在主窗口中显示
在对话框中添加按钮,并添加响应函数(Dlg.cpp),函数如下:
char* pcsun = “图片文件(.bmp .png .jpg)|.bmp;.png;*jpg|All Files (.)|.*||”;
CFileDialog OpenDialog(TRUE, NULL, 0, OFN_OVERWRITEPROMPT, pcsun, NULL);
if (OpenDialog.DoModal() == IDCANCEL) return;
//返回带文件名的路径,并传递给编辑控件变量
CString str = OpenDialog.GetPathName();
char* ch = (char*)LPCTSTR(str);
HObject m_hoImage;
ReadImage(&m_hoImage, ch);
HTuple hv_WindowHandle;
HTuple hv_Width, hv_Height;
GetImageSize(m_hoImage, &hv_Height, &hv_Width);
Hlong MainWndID = (Hlong)m_hWnd;
OpenWindow(0, 0, hv_Height, hv_Width , MainWndID, “”, “”, &hv_WindowHandle);
SetPart(m_htWindow, 0, 0, width, height);//
DispObj(m_hoImage, m_htWindow);    
主窗口显示
(2)picture control里面显示,也是在读图按钮里面添加响应函数代码:
char* pcsun = “图片文件(.bmp .png .jpg)|.bmp;.png;*jpg|All Files (.)|.*||”;
CFileDialog OpenDialog(TRUE, NULL, 0, OFN_OVERWRITEPROMPT, pcsun, NULL);
if (OpenDialog.DoModal() == IDCANCEL) return;
//返回带文件名的路径,并传递给编辑控件变量
CString str = OpenDialog.GetPathName();
char* ch = (char*)LPCTSTR(str);
HObject m_hoImage;
ReadImage(&m_hoImage, ch);
HTuple width, height;
GetImageSize(m_hoImage, &height, &width);
CRect rtWindow;
HWND hImgWnd = GetDlgItem(IDC_BMPWINDOW)->m_hWnd;
GetDlgItem(IDC_BMPWINDOW)->GetClientRect(&rtWindow);
HTuple m_htWindow;
OpenWindow(rtWindow.left, rtWindow.top, rtWindow.Width(), rtWindow.Height(), (Hlong)hImgWnd, “visible”, “”, &m_htWindow);
SetPart(m_htWindow, 0, 0, width, height);//
DispObj(m_hoImage, m_htWindow);  

显示如图

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值