用opencv与MFC实现加载显示图片功能
时间: 2023-06-14 17:04:42 浏览: 52
首先,需要在MFC项目中添加OpenCV库文件和头文件,具体步骤如下:
1. 在Visual Studio中打开MFC项目,选择项目名称右键点击,选择属性;
2. 在属性页中,选择“VC++目录”选项卡,找到“包含目录”选项,添加OpenCV的头文件路径,例如:C:\opencv\build\include;
3. 在同一属性页中,找到“库目录”选项,添加OpenCV的库文件路径,例如:C:\opencv\build\x64\vc14\lib;
4. 在同一属性页中,找到“链接器”选项卡,选择“输入”选项,添加OpenCV所需的库文件,例如:opencv_world341d.lib。
添加完库文件和头文件后,就可以开始编写代码了。以下是一个简单的示例:
```
#include "stdafx.h"
#include "opencv2\highgui.hpp"
#include "opencv2\core.hpp"
#include "opencv2\imgproc.hpp"
using namespace cv;
void CMyDlg::OnBnClickedButtonLoadImage()
{
// 打开文件对话框
CFileDialog dlg(TRUE);
if (dlg.DoModal() == IDOK)
{
CString strFilePath = dlg.GetPathName();
// 读取图像文件
Mat img = imread(strFilePath.GetBuffer(), CV_LOAD_IMAGE_COLOR);
// 显示图像
imshow("Image", img);
}
}
```
在这个示例中,我们在MFC对话框中添加了一个按钮“Load Image”,点击按钮后会弹出文件对话框,选择一个图像文件后会加载并显示在窗口中。其中,imread函数用于读取图像文件,imshow函数用于显示图像。需要注意的是,在MFC程序中使用imshow函数需要在头文件中添加"#define CV_NO_BACKWARD_COMPATIBILITY",否则会出现编译错误。
另外,需要在对话框的OnInitDialog函数中添加以下代码,以初始化OpenCV环境:
```
BOOL CMyDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 初始化OpenCV环境
cv::namedWindow("Image", CV_WINDOW_NORMAL);
cv::resizeWindow("Image", 640, 480);
return TRUE;
}
```
在这个示例中,我们创建了一个名为“Image”的窗口,并设置了窗口大小为640x480。需要注意的是,在MFC程序中使用OpenCV的窗口函数需要先调用namedWindow函数创建窗口,并在之后的代码中使用窗口名称来引用窗口。
相关推荐


















