VS2022+OpenCV4.6.0+MFC 환경 구성

1. 환경 설치

        OpenCV: 릴리스 - OpenCV https://opencv.org/releases/         VS2022: Visual Studio: 소프트웨어 개발자 및 Teams를 위한 IDE 및 코드 편집기 Visual Studio 개발 도구 및 서비스를 통해 모든 개발자는 모든 플랫폼 및 언어에서 애플리케이션을 개발할 수 있습니다. 무료로 코드 편집기나 IDE를 사용하여 언제 어디서나 개발하세요. https://visualstudio.microsoft.com/zh-hans/?rr=https://www.microsoft.com/zh-cn/         설치 관련 설치 튜토리얼을 확인하세요.

2. OpenCV 설치

        OpenCV를 설치하고 고정된 주소에 저장하는데, 경로 설정을 쉽게 하고 실수로 삭제되는 것을 방지하기 위해 주로 C 드라이브에 설치합니다. 후속 업그레이드를 덮어쓰는 것을 방지하려면 설치 중에 버전을 표시하십시오.

   

3. 환경변수

        OpenCV가 설치된 컴퓨터를 알려줍니다. "내 컴퓨터"를 마우스 오른쪽 버튼으로 클릭->[속성]->[고급 시스템 설정]->[환경 변수]->"경로" 경로 아래에 다음 경로를 추가합니다.

         C:\opencv4.6.0\opencv\build\x64\vc15\bin

여기 C드라이브에 설치되어 있으니, 실제 설치 경로에 맞게 bin 파일을 추가해 주세요. 추가가 완료되면 "확인"을 클릭하여 환경 구성을 종료하세요.

 

 4. VS2022 포함 경로

       VS2022 New 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;는 디버그 모드에서 호출되고, opencv_world460.lib;는 릴리스 모드에서 호출되며, 여기서는 디버그 모드로 구성되어 있으므로 opencv_world460d.lib;만 구성됩니다.

 5. MFC에서 사진 열기

        1. 기본 대화 상자에 그림 기본 컨트롤을 추가하고 속성 ID를 IDC_picWND로 수정합니다.

        2. 헤더 파일 및 네임스페이스 추가         

#include<opencv2/opencv.hpp>             // OpenCV头文件
#include<opencv2/highgui/highgui_c.h>    // 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();
}

6. 운영효과

 참고: 초기화가 실행 중일 때 cv 창 생성이 깜박입니다. 초기화가 완료된 후 후속 해결을 위해 그림 공간에 그림자가 남습니다. 이는 주로 환경 구성 테스트를 위한 것입니다.

 

 

 

Supongo que te gusta

Origin blog.csdn.net/cc891/article/details/128292456
Recomendado
Clasificación