image watch 라는 플러그인이 있음. 이미지가 바뀌는걸 쉽게 볼 수 있음.
https://marketplace.visualstudio.com/items?itemName=VisualCPPTeam.ImageWatchForVisualStudio2022
visual studio 닫고 다운로드 진행
다운 끝나면 다시 visual studio 열어서
opencv를 설치해줘야 사용이 가능함. 사용할라면 여기에 opencv 포팅해줘야함. 디버깅 할 때 사용하는게 image watch
이제 opencv를 깔아보자. https://opencv.org/ →library→release
우리는 window버전을 받아서 exe파일을 사용해야한다..!
exe로 압축풀고 build에 해당하는 정보가 포함되어 있느것을 확인할 수 있다. 실행할때 사용할 bin→dll들과 include→lib들이 들어있다.
우리가 진행중인 sln폴더에 opencv라는 thirdparty폴더를 만들고 안에 아까 받은 opencv 폴더를 넣어준다.
solutiondir= D:\woochangmin\C++\src\_AI\VisionAPP이고 그 아래에
\Build가 만들어지고 그 아래에 \x64로 해주고
여기까지 했으면 하나 더 해야 되는데 대상이
디버그와 릴리즈를 구분하기 위해서 디버그일때는 뒤에 d를 붙여주고싶다.
opencv는 디버그와 릴리즈가 performance차이가 좀 나서 테스트는 디버그에서 성능확인은 릴리즈에서 해줘야됨.
릴리즈로 바꾸고 출력디렉터리 변경
실행한 번 하면 폴더안에 $build파일이 생긴다.
기존 코드들이 이렇게 되있으면
상대경로로 해야한다. 절대경로로 하면 다른 사람에게 줄때 경로가 꼬여서 error난다. 디버그도 해주고 릴리즈도 해줘야됨
마찬가지로 디버그도 해주고 릴리즈도 해줘야된다
프로젝트 속성→C/C++→링커→입력→추가종속성 추가(..\thirdparty\opencv-4.8.0_wnd\build\x64\vc16\lib안에 lib파일 2개)를 해야하지만 이런식으로 추가하면 프로젝트 추가할때마다 계속 추가해줘야됨. 그래서 헤더파일 하나 만들어서 사용할 헤더파일들 다 복사해서 넣어줌 넣어야 할 파일은 아래에 있다.
//Common.h
#pragma once
#include <string>
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <memory>
#include <fstream> // ofstream header
#include <format>
#define OPENCV_480
#include <opencv2/opencv.hpp>
#include <opencv2/core/ocl.hpp>
#ifdef OPENCV_480
#include <opencv2/highgui/highgui_c.h>
#include <opencv2/imgproc/imgproc_c.h>
#include <opencv2/imgproc/types_c.h>
#endif // OPENCV_480
#ifdef _DEBUG//디버그일때는 뭘쓰고
#pragma comment(lib,"opencv_world480d.lib")//pragma comment는
#else //RELEASE//릴리즈일때는 뭘쓰고
#pragma comment(lib,"opencv_world480.lib")
#endif
using namespace std;
using namespace cv;
//03.ISP_Basic.cpp
//image signal processing
#include "Common.h"
int main()
{
std::string fileName = "../KCCImageNet/stop_img.png";
cv::Mat src = cv::imread(fileName, cv::ImreadModes::IMREAD_ANYCOLOR);
return 1;
}
실행시키면 오류 뜨는데
이거 dll파일들 복사
라인을 cv::Mat src = cv::imread(fileName, cv::ImreadModes::IMREAD_ANYCOLOR); 다음 라인으로 넘겨주면 image watch에 이미지가 뜸. 그 이미지 확대해보면 아래에 색깔정보가 나옴.
만약 flag의 color를 cv::ImreadModes::IMREAD_GRAYSCALE로 바꾼다면 아래처럼나온다.
'Open CV' 카테고리의 다른 글
[OPENCV-C++ ] histogram equalization (0) | 2023.11.07 |
---|---|
[OPENCV-C++ ] 영상인식에서 사용하는 색상 모델 (1) | 2023.11.06 |
[OPENCV-C++ ] HSV threshold 활용해서 원하는 부분만 추출하기 (0) | 2023.11.06 |
[OPENCV-C++ ] RGB -> YCbCr-> RGB (0) | 2023.11.06 |
[OPENCV-C++ ] 데이터 최빈값과 제일 적게 나온 값을 기반으로 이미지 픽셀 분석 (0) | 2023.11.06 |