우선은 Visual Studio에 visual studio image watch을 설치해서, IDE에서 이미지를 볼수 있는 창을 띄울 수 있도록 한다. (확장프로그램을 설치하는 것)
opencv를 설치할 때, source로 받으면 C++코드로 직접 빌드를 해줘야 하고,
for windows로 받으면 실행파일 형태로 빌드가 된다. (우리는 실행파일로 받음)
"thirdparty"라는 폴더를 새로 만들어서 거기 안에다가 opencv 빌드 폴더를 넣어줬다.(이런식으로 서드파티 폴더 만들어서 폴더 모아놓고 나중에 상대경로 쓰는 습관을 들여야함)
C/C++ >> "일반" 옵션에서 "추가 포함 디렉토리"에다가 opencv-include폴더를 넣어줘야 컴파일 할때 제대로 인클루드가 된다.(여기서 중요한 것은 추가포함 디렉터리 경로를 넣어줄 때 반드시 상대경로 값을 넣어줘야 한다는 것이다.)
링커 >> "일반" 옵션에서 "추가 라이브러리 디렉터리"에다가 opencv-빌드lib폴더를 넣어줘야 링커가 링킹할 때 문제가 없다.(여기서도 마찬가지로 반드시 상대령로 값을 넣어줘야 한다는 것이다.)
링커 >> "입력" 옵션에서 "추가 종속성"에다가 라이브러리명을 적어줘야 하는데, 그 작업은 common.h에다가 #pragma comment로 명시적 라이브러리 링크를 해주는 것으로 대체하였다.
디버그 모드로 빌드한 실행파일은 디버깅 기능을 포함하여 빌드해야 하기 때문에, 릴리즈 모드로 빌드한 실행파일보다 용량이 크다.
모드나 플래그와 같은 상태를 표현하기에 좋은 enum 열거형(opencv 라이브러리 구현을 살펴보면 enum을 굉장히 적재적소에 잘 활용한 것을 알 수 있다.)
특정 변수 값의 크기만큼 메모리 배열을 만들고 싶으면, 그 변수를 상수 키워드 const를 붙여서 선언하여 정적 메모리 배열 선언이 가능하게 하던가,
그게 아니고 굳이 변할 수 있는 변수 값의 크기만큼 배열을 만들고 싶으면, 반드시 동적 메모리 할당으로 배열을 만들어야 한다!!(당연한거다.)