Code/C++

[OpenCV C++] 이미지 저장하고 불러오기 , 창닫기 (CV 함수 설명 - 1)

2023. 4. 20. 00:48
목차
  1. 영상 불러와서 출력

2023.04.20 - [Code/C++] - [OpenCV C++] 이미지 불러오고 저장하기 (CMakeLists, Command args 연결, Clion)

영상 불러와서 출력

#include <iostream>
#include "opencv2/opencv.hpp"

int main()
{
    cv::Mat src = cv::imread("../examples/lenna.bmp",  cv::IMREAD_GRAYSCALE); 

    if (src.empty()) {
        std::cerr << "Image laod failed!" << std::endl;
        return -1;
    }

    cv::Mat dst = 255 - src;
        cv::imwrite("lenna.png", dst);

        //cv::nameWindow("src", WINDOW_NORMAL);
    cv::imshow("src", src);
    cv::imshow("dst", dst);
    cv::waitKey()
}
  • 영상 파일 불러오기

      cv::Mat = cv::imread(const String& filename, int flags = IMREAD_COLOR);
    
      /*
      filename : 불러올 영상 파일 이름(경로+이름)
      flags : 영상파일 불러오기 옵션 플래그
          - IMREAD_UNCHANGED : 영상 속성 그대로 읽기 e,g: 투명 png -> 4채널(B,G,R,alph)
          - IMREAD_GRAYSCALE : 1채널 그레이
          - IMREAD_COLOR : 3채널 BGR 컬러
      return : cv::Mat
      */
  • 비어있는 Mat 객체 확인

      bool = cv::Mat::empty() const
      /*
      return : rows, cols, data 멤버 변수가 0이면 true 반환
      */
  • 영상파일 저장 저장옵션 flags

      bool cv::imwrite    (    const String &     filename,
                                              InputArray     img,
                                              const std::vector< int > &     params = std::vector< int >() 
                                              )
      /*
      filename : 저장영상 파일 이름, 형식별로 저장됨 알아서
      img : 저장 대상 (Mat) 
      params : 저장옵션 
          - ex ) Params 값 지정 안 해도 괜찮지만 jpg 압축율을 90%  : {IMWRITE_JPEG_QUALITY,90}
      return : 정상저장 true, 실패 false
      */
  • 새 창 띄우기

      void namedwindow(const String& winname, int flags = WINDOW_AUTOSIZE);
      /*
      winname : 창 고유 이름, 이 이름으로 창 구분
      flags : 창 속성 지정 플래그
          - WINDOW_NOMAL : 창 크기를 조절 할 수 있음
          - WINDOW_AUTOSIZE : 창의 크기를 조절할 수 없음
          -
      -> 없어도 그냥 imshow를 하게 된다면 autosize로 출력함  
      */
  • 창닫기

      void destroyWindow(const String& winname);
      void destroyAllWindows();
      /*
      winname : 닫고자하는 창 이름
      ** 일반적 프로그램 종료 시 모든 창이 자동으로 닫힘
    
      */
  • 창 위치 지정

      void moveWindow(const String& winname, int x, int y);
  • 창 크기 지정

      void resizeWindow(const String& winname, int width, int height);
      // 단 window가 WINDOW_NOMAL 속성으로 생성되어야 동작함 
  • 영상출력하기

      void imshow(const String& winname, InputArray mat);
      /*
      winname : 영상 출력 창 이름
      mat : 출력 영상 데이터 Mat 객체
    
      ** 영상출력방식
      **** 8-bit unsigned : pixel값 그대로 출력
      **** 16-bit unsigned or 32-bit integer : pixel / 255 출력
      **** 32-bit or64-bit floating-point : pixel *255 출력
      uchar , unsigned char 형태로 내보내는 것이 좋음!!! -> 8bit(1byte)의 형태로
    
      $ 참고사항
      만약 winname에 해당하는 창이 없으면 WINDOW_AUTOSIZE 속성의 창을 새로 만들고 영상을 출력
      실제로는 waitKey()함수를 호출해야 화면에 영상이 나타남
      */
    
  • 키보드 입력대기

      int waitKey(int delay = 0);
      /* 
      delay : 밀리초 단위 대기 시간, delay <= 0 이면 무한 입력 wait
      ex ) waitKey(5000); -> 5초 후 넘어감
    
      return : 눌린키값, 키가 눌리지 않으면 -1
      ** 참고사항
          - waitKey() 함수는 OpenCV 창이 하나라도 있어야 정상작동함
          - imshow() 함수 호출 후에 waitKey() 함수를 호출해야 영상이 화면에 나타남
          - 주요 특수키 코드 : ESC -> 27 , Enter -> 13 , TAB -> 9
      */
    
      // 특정키가 입력되어있을 때 멈추도록 하는 예시
      while (true) {
          if (waitKey() == ' ') //ESC
                  break;
      }
저작자표시 (새창열림)

'Code > C++' 카테고리의 다른 글

[OpenCV C++] 컬러영상을 그레이스케일 이미지로 변환하는 방법(cvtColor & 연산을 이용한 방법 & sol.)  (2) 2023.04.28
[OpenCV C++] 이미지 불러오고 저장하기 (Ubuntu CMakeLists, Command args 연결, Clion)  (0) 2023.04.20
  1. 영상 불러와서 출력
'Code/C++' 카테고리의 다른 글
  • [OpenCV C++] 컬러영상을 그레이스케일 이미지로 변환하는 방법(cvtColor & 연산을 이용한 방법 & sol.)
  • [OpenCV C++] 이미지 불러오고 저장하기 (Ubuntu CMakeLists, Command args 연결, Clion)
capaca
capaca
capaca
CaPa
capaca
  • 분류 전체보기
    • 개념정리
    • 논문, 강의
    • 수강
      • 강의
      • Hugging Face
    • Code
      • Python
      • Python-Gym, Stable-baseline..
      • C++
      • CMake
    • 자료구조&알고리즘
      • 프로그래머스
      • 백준알고리즘
      • CodeUp
      • 이코테
    • Development
    • ERROR 삽질
    • ETC
      • Navigation, Collision avoid..
      • Dataset
    • 기타참고
      • TODO
      • 논문 작성 참고

블로그 메뉴

  • 홈
  • TOOL
  • Github
  • Role

공지사항

hELLO · Designed By 정상우.
글쓰기 / 관리자
capaca
[OpenCV C++] 이미지 저장하고 불러오기 , 창닫기 (CV 함수 설명 - 1)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.