OpenCV初探 —— 将OpenCV窗口链接在MFC的PictureControl控件中

1)在项目.h文件中加入头文件

#include 
#include 
#include 
#include 
using namespace cv;

2)在项目Dlg.cpp的OnInitDialog()函数中,加入初始化代码

CRect rect1;
// CWnd:MFC窗口类的基类,IDC_ORIIMG:PictureControl的ID
CWnd* pWnd1 = GetDlgItem(IDC_ORIIMG);
// GetClientRect:获得控件大小
pWnd1->GetClientRect(&rect1);
// 设置opencv窗口名
namedWindow("src1", WINDOW_AUTOSIZE);
// 获取窗口句柄
HWND hWndl = (HWND)cvGetWindowHandle("src1");
// 获取父窗口句柄
HWND hParent1 = ::GetParent(hWndl);
// 设置opencv窗体与PictureControl控件绑定
::SetParent(hWndl, GetDlgItem(IDC_ORIIMG)->m_hWnd);
// 在指定窗口中显示
::ShowWindow(hParent1, SW_HIDE);

3)读入图像并获取图像大小,显示

// imread读取指定路径下的图片(相对路径为.cpp文件,不是.exe文件)
Mat image = imread("OpenCV.jpg");
// 判断图片是否读取成功
if (image.empty())
	printf("图片读取失败!");
else
	printf("图片读取成功!");
// 设置图片大小与窗体匹配
resize(image, image, Size(rect1.Width(), rect1.Height()));
// 在窗口名为"src1"中显示图片
imshow("src1", image);

你可能感兴趣的:(OpenCV初探,mfc,opencv,c++)