在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);  

显示如图

### 回答1: MFCHalcon都是常用于图像处理和图像显示的工具,可以用于展示和处理连续动态图像。动态图像显示缩放是指在连续动态图像显示过程,可以实现对图像进行缩放操作。 首先,对于MFC来说,可以使用CImage类来加载和显示图像。通过调用CImage类的Scale方法,可以实现对图像的缩放。Scale方法可以接受一个缩放比例参数,通过调整该参数的值可以实现不同程度的缩放效果。具体步骤如下: 1. 使用CImage类加载图像文件,获取图像的宽度和高度信息。 2. 创建一个新的CImage对象,作为缩放后的图像对象。 3. 调用Scale方法,传入缩放比例参数,实现图像的缩放。 4. 使用MFC提供的绘图函数(如CDC::StretchBlt)将缩放后的图像显示窗口上。 而对于Halcon来说,可以使用其提供的显示操作符和图像操作函数来实现图像的连续动态显示和缩放。具体步骤如下: 1. 使用Halcon图像取函数(如read_image)加载图像文件,获取图像的宽度和高度信息。 2. 使用Halcon显示操作符(如disp_image)将图像显示窗口上。 3. 利用Halcon图像操作函数(如zoom_image)进行图像的缩放操作。zoom_image函数可以接受一个缩放因子参数,通过调整该参数的值可以实现不同程度的图像缩放。 4. 使用Halcon的刷新函数(如refresh_window)更新窗口显示。 总之,无论是使用MFC还是Halcon,都可以实现对连续动态图像显示和缩放操作,只需调用相应的函数和方法即可。具体选择使用哪种工具,需要根据实际情况和需求来决定。 ### 回答2: 在MFC,可以使用CDC类的StretchBlt函数来实现连续动态图像显示缩放。首先,创建一个CDC对象,用来绘制图像。然后,使用StretchBlt函数将图像绘制在指定位置,并指定缩放的尺寸。这样,就可以实现图像的连续动态缩放。 在Halcon,可以使用zoom_image函数来实现连续动态图像显示缩放。首先,加载图像并创建一个窗口用于显示图像。然后,使用zoom_image函数将图像缩放到指定的尺寸,并显示窗口。通过不断改变缩放的尺寸,就可以实现图像的连续动态缩放。 总结而言,无论是在MFC还是在Halcon,都可以通过调用相应的函数来实现连续动态图像显示缩放。在MFC使用StretchBlt函数,在Halcon使用zoom_image函数。这些函数可以根据需要设定图像的位置和缩放的尺寸,以实现不同的效果。 ### 回答3: MFC是微软基于Windows操作系统开发的一套应用程序框架,而Halcon是一款用于机器视觉和图像处理的软件库。MFC提供了一系列图形绘制和窗口管理的功能,可以用于实现图像显示的功能。而Halcon则提供了丰富的图像处理算法和功能,可以用于图像的缩放、旋转、滤波等操作。 如果要在MFC实现Halcon图像的连续动态显示和缩放功能,可以按照以下步骤进行: 1. 在MFC应用程序添加Halcon库的引用和相关的头文件。 2. 创建一个MFC窗口,该窗口将用于显示Halcon图像。 3. 在窗口的OnPaint函数,通过Halcon提供的函数将图像绘制到窗口。可以使用halcon::disp_obj函数将图像显示窗口。 4. 在窗口的OnSize函数,实现图像的缩放功能。可以通过halcon::zoom_image_size函数来调整图像的大小,并重新将图像绘制到窗口。 5. 在需要连续动态显示的场景,可以使用定时器或线程来定时更新图像。通过halcon::clear_window函数清空窗口内容,再通过halcon::disp_obj函数将更新后的图像显示窗口。 通过以上步骤,就可以在MFC实现Halcon图像的连续动态显示和缩放功能了。通过不断更新图像并调整图像大小,可以实现图像的实时显示和缩放效果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值