728x90
이 글은 내가 보기 편하게 작성되었기에 남이 보기에는 불편하거나 이해하지 못할 수 있다.
OpenCV 설치방법
- 새프로젝트 만들기
- <Windows 데스트톱 마법사 프로젝트> 생성
- 추가옵션 <빈 프로젝트> 선택
- 소스 파일에 <C++ 파일> 추가
- <프로젝트> 카테고리에 <속성> 확인
- <구성>에서 <Debug> 선택
- C/C++ ➔ 일반 ➔ 추가 포함 디렉터리 ➔ opencv\bulid\include 파일 추가
- 링커 ➔ 일반➔ 추가 포함 디렉터리 ➔ opencv\build\x64\vc15\lib 파일 추가 *버전마다 숫자가 다를 수 있음
- 링커 ➔ 입력 ➔ 추가 종속성 ➔ opencv_world460d.lib 파일 추가 *버전마다 숫자가 다를 수 있음
- <Release> 도 위의 과정과 동일하게 설정
- 단, Release는 추가 종속성에 opencv_world460.lib 이라고 추가해야 함
영상이나 사진 쪽 전공이면 모를 수 가 없는 이 레나 사진을 띄워봤다.
#include <opencv2\opencv.hpp>
using namespace cv;
void main() {
Mat Image = imread("lena.jpg", IMREAD_COLOR);
namedWindow("display", WINDOW_AUTOSIZE);
imshow("display", Image);
imwrite("lena_new.jpg", Image);
waitKey(0);
}
지금부터 이 코드를 하나씩 뜯어볼 것이다.
imread() 함수 : 영상 파일을 불러올 떄 사용하는 함수
//Mat imread(const String& filename, int flags = IMREAD_COLOR)
//file name -> 불러올 영상 파일 이름
//flags -> 영상 파일 불러오기 옵션 플래그
Mat Image = imread("lena.jpg", IMREAD_COLOR);
ImreadModes 열거형 함수는 컬러, 흑백 등 다양하게 설정 할 수 있다.
IMREAD_UNCHANGED | 입력 파일에 지정된 그대로의 컬러 속성을 사용 |
IMREAD_GRAYSCALE | 1채널 그레이스케일 영상으로 변환하여 불러옴 |
IMREAD_COLOR | 3채널 BRG 컬러 영상으로 변환하여 불러옴 |
imwrite() 함수 : 객체에 저장되어 있는 영상 데이터를 파일로 저장하는 함수
//bool imwrite(const String& filename, InputArray img, const std::vector<int>& params = std::vector<int>())
//filename -> 저장할 영상 파일 이름
//img -> 저장할 영상 데이터
//params -> 저장할 영상 파일 형식에 의존적인 파라미터 쌍
imwrite("lena_new.jpg", Image);
empty() 함수 : 영상 데이터가 정상적으로 불러왔는지를 확인하는 함수
bool Mat::empty() const
namedWindow() 함수 : 영상 데이터를 띄울 창을 나타내는 함수
//void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE)
//winname -> 영상 출력 창 상단에 출력되는 창 고유 이름
//flags -> 생성되는 창의 속성을 지정하는 플래그
namedWindow("display", WINDOW_AUTOSIZE);
마찬가지로 다양한 플래그가 있다
WINDOW_NORMAL | 영상 출력 창의 크기에 맞게 영상 크기가 변경되어 출력 |
WINDOW_AUTOSIZE | 출력하는 영상 크기에 맞게 창 크기가 자동으로 변경되어 출력 |
WINDOW_OPENGL | OpenGL을 지원한다 |
destroyWindow() 함수 : namedWindow()를 통해 생성된 영상 출력 창을 닫을 수 있는 함수
void destroyWindow(const String& winname);
void destroyAllWindows(); //열려 있는 모든 창을 닫음
//winname -> 소멸시킬 창 이름
moveWindow() 함수 : 창 크기를 바꾸거나 위치를 바꿀 수 있는 함수
void moveWindow(const String& winname, int x, int y);
//winname -> 위치를 이동할 창 이름
//x -> 창이 이동할 위치의 x좌표
//y -> 창이 이동할 위치의 y좌표
resizeWindow() 함수 : 프로그램 동작 중에 영상 출력 창의 크기를 변경하는 함수
void resizeWindow(const String& winname, int width, int height);
//winname -> 크기를 변경할 창 이름
//width -> 창의 가로 크기
//height -> 창의 세로 크기
imshow() 함수 : 객체에 저장된 영상 데이터를 화면에 출력하는 함수
//void imshow(const String& winname, InputArray mat)
//winname -> 영상을 출력할 대상 창 이름
//mat -> 출력할 영상 데이터
imshow("display", Image);
waitKey() 함수 : 사용자로부터 키보드 입력을 받는 함수
//int waitKey(int delay = 0);
//delay -> 키 입력을 기다릴 시간
waitKey(0);
728x90
'런닝머신 (ML)' 카테고리의 다른 글
[컴퓨터 비전 & 머신러닝] InputArray와 OutputArray 클래스 (0) | 2023.03.20 |
---|---|
[컴퓨터 비전 & 머신러닝] Vec과 Scalar 클래스 (0) | 2023.03.20 |
[컴퓨터 비전 & 머신러닝] Open CV Mat 클래스 (0) | 2023.03.16 |
[컴퓨터 비전 & 머신러닝] Open CV 기본 자료형 클래스 (0) | 2023.03.07 |
[컴퓨터 비전 & 머신러닝] 나혼자 컴퓨터 비전 도전기 (0) | 2023.02.21 |