비전 신호 처리I_OpenCV 활용

JuHwan Kim·2022년 4월 13일
0

Vision Signal Processing

목록 보기
1/6

OpenCV 설치

  • C를 사용하여 OpenCV를 하였음

공식 사이트 : https://opencv.org/
OpenCV의 함수 또는 클래스의 자세한 사용 방법방법이 알고 싶다면 OpenCV 문서 사이트를 활용할 수 있음 : https://docs.opencv.org/

OpenCV 설치 프로그램이 파일 압축을 모두 해제하면 C:\opencv\ 폴더 아래에 sources 폴더와 build 폴더가 생성됨
C:\opencv\sources 폴더 아래에는 OpenCV 소스 코드 파일이 들어 있고, C:\opencv\build 폴더 아래에는 소스 코드로부터 만들어진 라이브러리 파일과 헤더 파일, 그리고 기타 유용한 파일이 저장되어 있음

이 중 C:\opencv\build\ 폴더 아래의 폴더 구조와 간략한 설명을 나타냄

OpenCV 라이브러리에서 사용하는 OpenCV 관련 헤더 파일(*.hpp)은 모두 C:\opencv\build\include 폴더 아래에 모여 있음
C:\opencv\build\x64\vc15 폴더 아래에는 다시 bin과 lib 폴더가 있음
이 중 bin 폴더에는 OpenCV 프로그램 실행 시 필요한 동적 연결 라이브러리(DLL, Dynamic Linking Library) 파일과 OpenCV 유틸리티 프로그램이 생성됨
OpenCV DLL 파일이 생성될 때 함께 만들어지는 가져오기 라이브러리(import library) 파일은 lib 폴더에 저장됨
OpenCV 4.0.0 설치 실행 파일이 생성하는 동적 연결 라이브러리 파일 이름은 opencv_world400.dll과 opencv_world400d.dll임

이 중 C:\opencv\build\ 폴더 아래의 폴더 구조와 간략한 설명을 나타냄
OpenCV 헤더 파일과 *.lib 파일은 추후 Visual Studio에서 OpenCV 응용 프로그램을 개발할 때 사용됨
OpenCV 응용 프로그램을 실행할 때에는 OpenCV DLL 파일이 필요함

컴퓨터 제어판에서 [시스템] 항목 -> [고급 시스템 설정] 항목
[환경 변수] 편집 – [시스템변수]의 PATH – [편집]
C:\opencv\build\x64\vc15\bin
Windows 로고 키 와 R 키를 함께 눌러서 실행 창 => cmd 입력
opencv_version.exe를 입력

OpenCV 실행

OpenCV 예제 프로그램을 만들기 위하여 먼저 컴퓨터에 설치된 Visual Studio 2019을 실행
새 프로젝트 만들기 – 빈 프로젝트 클릭
프로젝트 생성
Visual Studio는 기본적으로 새 프로젝트의 활성 솔루션을 32비트 버전인 x86으로 설정
OpenCV 라이브러리는 64비트로 빌드되어 있기 때문에 x64 플랫폼으로 변경하여 사용해야 함
Visual Studio 메뉴에서 프로젝트 > 새 항목 추가…를 선택
C++ 파일 선택 -> cpp 파일 생성
파일을 새로 생성하면 곧바로 Visual Studio 중앙에 소스 코드를 입력할 수 있는 편집창이 나타남

OpenCV 응용 프로그램을 개발할 때에는 Visual Studio에서 OpenCV 라이브러리와 관련된 폴더 정보를 인식하도록 별도의 설정을 해 주어야 하며, 이러한 작업은 프로젝트 속성 페이지에서 수행함

포함 디렉터리와 라이브러리 디렉터리 설정

1. 포함 디렉터리
구성 속성 – VC++ 디렉터리
C/C++ - 일반 에서 추가 가능

2. 포함 디렉터리
구성 속성 – VC++ 디렉터리
링커 – 일반 에서 추가 가능

OpenCV 헤더 파일이 위치한 디렉터리를 설정 – 포함 디렉터리 설정
프로젝트 속성 – VC++ 디렉터리 – 포함 디렉터리 편집
(OpenCV 설치 파일)\build\include 폴더 설정

OpenCV 라이브러리 파일이 위치한 폴더를 설정 – 라이브러리 디렉터리 설정
프로젝트 속성 – VC++ 디렉터리 – 라이브러리 디렉터리 편집
(OpenCV 설치 파일)\build\x64\vc15\lib 폴더 설정

마지막으로 HelloCV 프로젝트에서 사용할 OpenCV 라이브러리 이름을 입력해야 함
[링커] – [입력] – [추가 종속성]에 opencv_world400d.lib 입력

새로운 OpenCV 프로젝트를 생성할 때마다 프로젝트 속성에 추가해야 한다는 점을 주의

이미지 출력 해보기

이미지를 불러와서 출력해보기

Mat 클래스 타입의 img 선언
imread() 함수를 이용하여 lenna.bmp 파일을 불러와 img 변수에 저장

namedWindow함수를 이용하여 “image“라는 이름을 가지는 출력 창 생성
“image” 출력 창에 lenna.bmp 영상을 출력

#include "opencv2/opencv.hpp"
#include <iostream>
using namespace std;
using namespace cv;

int main()
{
	cout << "Hello OpenCV" << CV_VERSION << endl;

	Mat img;
	img = imread("lenna.bmp");

	if (img.empty())
	{
		cerr << "Image load failed!" << endl;
		return -1;
	}

	namedWindow("image");
	imshow("image", img);

	waitKey();
	return 0;
}

다음과 같은 결과를 얻는 것을 확인할 수 있음

image watch 설치
visual studio에서 자체적으로 설치 가능
[확장] 탭 - 확장 관리
확장 관리에서 image watch 검색 후 image watch 2019 다운로드
visual studio 재실행
Image watch는 debugging tool 이므로 debug 상태에서 사용 가능
Debug 상태에서 [보기] – [다른 창] – Image Watch 선택
Image Watch 실행
입력 Mat 변수의 크기와 내부 정보 확인 가능 – 추후 영상처리 작업 시 편리

profile
소소한 개발자

0개의 댓글