一、环境安装
OpenCV:Releases - OpenCVhttps://opencv.org/releases/ VS2022:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器Visual Studio 开发工具和服务让任何开发人员在任何平台和语言的应用开发都更加轻松。 随时随地免费使用代码编辑器或 IDE 进行开发。
https://visualstudio.microsoft.com/zh-hans/?rr=https://www.microsoft.com/zh-cn/ 查阅相关安装教程安装。
二、OpenCV安装
安装OpenCV保存到固定地址,我一般装到C盘,方便设置路径,也不会误删除。安装时标注版本,防止后续升级版本覆盖。
三、环境变量
告诉计算机安装的OpenCV在哪里。右键单击“我的电脑”->【属性】->【高级系统设置】->【环境变量】->“path”路径下添加如下路径:
C:\opencv4.6.0\opencv\build\x64\vc15\bin
此处装在了C盘,根据实际安装路径添加bin文件至path中。添加完成后一路“确定”退出环境配置。
四、VS2022包含路径
运行VS2022新建MFC基本对话框,单击菜单栏【项目】->【属性】,对工程进行设置。
1、VC++目录:
包含目录:C:\opencv4.6.0\opencv\build\include;
C:\opencv4.6.0\opencv\build\include\opencv2;
库目录:C:\opencv4.6.0\opencv\build\x64\vc15\lib;
2、连接器->输入:
附加依赖项:opencv_world460d.lib;opencv_world460.lib;
注:opencv_world460d.lib;是在Debug模式下调用,opencv_world460.lib;是在Release模式下调用,此处配置为Debug模式,因此只配置opencv_world460d.lib;即可。
五、MFC下打开图片
1、基本对话框中填加picture基本控件,修改属性ID为IDC_picWND。
2、添加头文件及命名空间
#include // OpenCV头文件
#include // OpenCV_GUI头文件
using namespace cv;
using namespace std;
3、头文件中定义一个CRect变量m_picRect,xxDlg::OnInitDialog()中添加一下代码,
Dlg::OnInitDialog()
{
****
// TODO: 在此添加额外的初始化代码
SetWindowText(L"testOpenCV"); // 设置窗口名
cv::namedWindow("picView", WINDOW_AUTOSIZE); // 设置窗口名
HWND hWnd = (HWND)cvGetWindowHandle("picView"); // 获取窗口句柄
HWND hParent = ::GetParent(hWnd); // 指定子窗口的父窗口句柄
::SetParent(hWnd, GetDlgItem(IDC_picWND)->m_hWnd);
::ShowWindow(hParent, SW_HIDE);
CWnd* pWnd = GetDlgItem(IDC_picWND);
pWnd->GetClientRect(&m_picRect); // 获取图片控件大小
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
4、双击“确定”按钮控件,添加图片读取显示代码。
void CopencvtestDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
Mat src = imread("山水.png");
if (src.empty())
{
AfxMessageBox(L"读取图片失败!");
return;
}
cv::resize(src, src, cv::Size(m_picRect.Width(), m_picRect.Height()));
imshow("picView", src);
waitKey(0);
CDialogEx::OnOK();
}
六、运行效果
注:初始化运行时,cv窗口创建会闪一下,初始化完成后会在picture空间中留下一个阴影,留待后续解决,此处主要为环境配置测试。