-
Day4교육/서울 ICT 이노베이션 고오급 시각과정 2021. 5. 10. 14:17728x90
1. Visual Studio2019에서 opencv 라이브러리 사용하는 방법
설정
1. 프로젝트 속성에 들어가서 창의 윗부분에 있는 구성 : 모든 구성 / 플랫폼 : x64 로 변경
2. c/c++에 추가 포함 디렉터리에 C:\opencv\build\include 추가
3. 링커 일반에 들어가서 추가 라이브러리 디렉터리에 C:\opencv\build\x64\vc15\lib 추가
4. 링커 입력에 들어가서 추가 종속성에 opencv_world버전d.lib;추가(내경우엔 4.5.2버전이라 opencv_world452d.lib;추가)
5. 프로젝트 속성에서 건드리는 건 다 끝났고 visual studio창으로 돌아와서 솔루션 플랫폼을 x64로 맞춰준다
6. 프로젝트가 들어있는 폴더에 C:\opencv\build\x64\vc15\bin에 들어있는 opencv_world버전.dll이랑 opencv_world버전d.dll파일을 복사해서 붙여넣어주면 끝!
테스트
#include <stdio.h> #include<opencv2/imgcodecs.hpp> #include<opencv2/videoio.hpp> #include<opencv2/highgui.hpp> using namespace cv; int main(void) { Mat img = imread("Lenna.png"); imshow("img", img); waitKey(0); return 0; }
레나 사진이 뜨면 성공!
2. OpenCV개요
cpu특화 명령어 지원
CUDA와 OpenCL을 통한 GPU활용을 지원
3. OpenCV함수
- imread() : 이미지 파일 읽어오기
- imwrite() : 이미지 파일로 저장 ex)imwrite("이미지이름.확장자",객체);
- empty()
- namedWindow() : 윈도우창띄우기
4. 기본 자료형 클래스
- Point_ 클래스 : 좌표
- Size_ 클래스
- Rect_ 클래스
- RotatedRect 클래스 : 회전된 사각형을 표현하는 클래스 반시계방향으로 돌아감
5. Mat클래스
//ROI : region of interest(관심영역)
int main(void) { Mat img1 = imread("Lenna.png"); Mat img2 = img1(Rect(10, 10, 50, 50)); Mat img3 = img1(Rect(80, 20, 10, 10)).clone(); //deepcopy img2 = ~img2; img3 = ~img3; imshow("img1", img1); imshow("img2", img2); imshow("img3", img3); waitKey(); destroyAllWindows(); return 0; }
img2는 얕은 복사를 해서 원본 이미지(img1)에 영향O
img3는 깊은 복사를 해서 원본 이미지(img1)에 영향X
//동영상 #include <stdio.h> #include<iostream> #include<opencv2/imgcodecs.hpp> #include<opencv2/videoio.hpp> #include<opencv2/highgui.hpp> using namespace cv; int main(void) { VideoCapture cap(0); while (1) { Mat frame; cap >> frame; imshow("asdf", frame); char key = waitKey(1); if (key == 'q') { break; } } return 0; }