[OpenCV] 영상 처리 관련 주요 함수

happy_quokka·2023년 10월 28일
0

OpenCV

목록 보기
1/11

영상 파일 불러오기 & 출력

영상 파일 불러오기

Mat imread(const String& filename, int flag = IMREAD_COLOR);
  • filename : 불러올 영상 파일 이름, 경로
  • flags : 영상 파일 불러오기 옵션
    • IMREAD_UNCHANGED : 영상 속성 그대로 읽기
    • IMREAD_GRAYSCALE : 1채널 grayscale 영상으로 읽기
    • IMREAD_COLOR : 3채널 BGR 영상으로 읽기
  • 반환값 : Mat 객체

비어있는 Mat 객체 확인

bool Mat::empty() const
  • 반환값 : rows, cols, data 멤버 변수가 0이면 true 반환

영상 출력

void imshow(const String& winname, InputArray mat);
  • winname : 창 고유 이름
  • mat : 출력할 영상 데이터 (Mat 객체)
  • 영상 출력 방식
    • 어떻게든 출력해주지만 원하지 않는 결과가 나올 수 있으니 unsigned char를 사용하는 것이 좋다
    • 8-bit unsigned : 픽셀 값을 그대로 출력
    • 16-bit unsigned / 32-bit integer : 픽셀 값을 255로 나눠서 출력
    • 32-bit / 64-bit floating-point : 픽셀 값에 255 곱해서 출력
  • 참고사항
    • 만약 winname 창 없으면 WINDOW_AUTOSIZE 속성의 창을 새로 만들고 영상 출력
    • 실제로는 waitKey() 함수를 호출해야 화면에 영상이 보인다.

영상 파일 저장

bool imwrite(const String& filename, InputArray img, const std::vector<int>& params = std::vector<int>());
  • filename : 저장할 파일 이름, 경로. 파일에 포함된 확장자에 따라 해당 파일 형식으로 저장
  • img : 저장할 영상 객체 (Mat 객체)
  • params : 파일 저장 옵션 (속성, 값) -> 잘 안 쓴다
  • 반환값 : 저장 성공 true, 실패 false

키보드 입력 대기

int waitKey(int dalay = 0);
  • delay : ms 단위 대기 시간. delay ≤ 0 이면 무한히 기다린다
  • 반환값 : 눌린 key값 (key가 눌리지 않으면 -1)
  • waitKey() 함수는 opencv 창이 하나라도 있어야 정상 동작
  • 주요 특수키 코드
    • ESC : 27
    • ENTER : 13
    • TAB : 9
  • 사용 예시
    while(true){
        if(waitKey() == 27) break;
    }

창(window)

새 창 띄우기

void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE);
  • winname : 창 고유 이름
  • flags : 창 속성 플래그
    • WINDOW_AUTOSIZE : 창 크기가 영상 크기에 맞게 지정 (사용자가 크기 조절 불가)
    • WINDOW_NORMAL : 영상이 창 크기에 맞게 지정

창 닫기

void destroyWindow(const String& winname);
void destroyAllWindows();
  • winname : 창 고유 이름

  • 일반적으로 프로그램이 종료되면 os에 의해 열려있는 모든 창이 닫힌다.

창 위지 지정

void moveWindow(const String& winname, int x, int y);
  • winname : 창 고유 이름
  • x, y : 이동할 위치 좌표

창 크기 지정

void resizeWindow(const String& winname, int width, int height);
  • winname : 창 고유 이름
  • width, height : 변경할 창 크기
  • 윈도우가 WINDOW_NORMAL 속성으로 생성되어야 동작

0개의 댓글