OpenCV 4로 배우는 컴퓨터 비전과 머신러닝교재로 배운 OpenCV 함수들을 정리해보고자 한다. 교제에서는 C++을 사용하므로 C++기준으로 작성되었다.
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace cv;
using namespace std;
int main()
{
Mat img = imread ("lenna.bmp");
if (img.empty()) {
cerr << "Image load failed!" << endl;
return -1;
}
namedwindow("image");
imshow("image", img);
waitkey();
destroyAllwindows();
}
Mat imread(const String& filename, int flags = IMREAD_COLOR);
Mat img = imread ("lenna.bmp");
Mat img = imread ("lenna.bmp", IMREAD_GRAYSCALE1);
filename: 불러올 영상 파일 이름. (e.g.) "lenna.bmp", “C:\lenna.bmp"
flags: 영상 파일 불러오기 옵션 플래그
반환값: 불러온 영상 데이터 (Mat 객체)
bool Mat::empty() const
img.empty()
반환값: rows, cols, data 멤버 변수가 0이면 true를 반환.
bool imwrite(const String& filename, InputArray img,
const std::vector<int>& params = std::vector<int>());
imwrite("file.jpg", dst);
filename: 저장할 영상 파일 이름. 파일 이름에 포함된 확장자를 분석하여 해당 파일 형식으로 저장됨.
img: 저장할 영상 데이터 (Mat 객체)
params: 파일 저장 옵션 지정 (속성 & 값의 정수 쌍). 예를 들어, JPG 압축율을 90%로 지정하고 싶으면 {IMWRITE_JPEG_QUALITY, 90}을 지정.
반환값: 정상적으로 저장하면 true, 실패하면 false.
void namedwindow(const String& winname, int flags = WINDOW_AUTOSIZE);
namedwindow("image");
winname: 창 고유 이름. 이 이름으로 창을 구분함.
flag: 창 속성 플래그
void destroyWindow(const String& winname);
void destroyAllWindows();
destroyAllwindows();
winname: 닫고자 하는 창 이름
참고사항: 일반적인 경우 프로그램 종료 시 운영 체제에 의해 열려 있는 모든 창이 자동으로 닫힘
void imshow(const String& winname, InputArray src);
imshow("image", img);
winname: 영상을 출력할 대상 창 이름
src: 출력할 영상 데이터 (Mat 객체)
영상 출력 방식:
참고 사항
int waitkey(int delay = 0);
waitkey();
if(waitkey(5) == 27) {
...
}
delay: 밀리초 단위 대기 시간. delay < 0 이면 무한히 기다림.
반환 값: 눌린 키 값. 키가 눌리지 않으면 -1.
참고 사항