zzangyeah
2021. 5. 10. 14:17
728x90
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;
}