[OpenCV] 이미지 읽기, 표시 및 쓰기

2903 단어 TILpythonopencvTIL

이미지를 읽고, 표시하고, 쓰는 것은 이미지 처리 및 컴퓨터 비전의 기본이다. 자르기, 크기 조정, 회전 또는 다른 필터를 적용하여 이미지를 처리하는 경우에도 먼저 이미지를 읽어야 한다. 따라서 이러한 기본 작업에 대해 알아야 할 것 같아서 먼저 알아보려 한다.

세계에서 가장 큰 컴퓨터 비전 라이브러리인 OpenCV에는 다음 아래와 같은 세 가지 내장 기능이 있다.

  • imread()이미지를 읽을 때 사용된다.
  • imshow()창에 이미지를 표시한다.
  • imwrite()파일 디렉토리에 이미지를 저장한다.

이미지 읽기

이미지를 읽기 위해서는 OpenCV의 imread() 기능을 사용한다.

imread(file_name, flags)

다음과 같이 두 가지 인수가 필요하다.

file_name

파일에 대한 완전한 경로를 포함한 이미지 이름이다.

ex) "c:/folder/test.png"

flags

이미지를 표현하는 방법을 지정할 수 있는 선택적 flag다.

플래그의 기본값은 1이며 컬러 이미지로 읽는다. 특정 형식의 이미지를 읽으려면 적절한 플래그를 지정하기만 하면 된다. 더 다양한 플래그 옵션은 여기서 보면 된다.

  • flags 옵션
    • cv2.IMREAD_UNCHANGED 또는 -1
    • cv2.IMREAD_GRAYSCALE 또는 0
    • cv2.IMREAD_COLOR 또는 1

OpenCV는 BGR 형식의 컬러 이미지를 읽는 반면 대부분의 다른 컴퓨터 비전 라이브러리는 RGB 채널 형식 순서를 사용한다. 따라서 다른 툴킷과 함께 OpenCV를 사용할 때, 또는 한 라이브러리에서 다른 라이브러리로 전환할 때 파란색과 빨간색 채널을 바꾸는 것을 잊으면 안된다.

이미지 표시

이미지를 표시할 때 OpenCV에서는 imshow() 기능을 사용한다.

imshow(window_name, image)

이 함수 또한 두 가지의 인수를 필요로 한다.

  • window_name : 창에 표시될 창의 이름이다.
  • image : 창에 표시하려는 이미지이다.

한 번에 여러 이미지를 표시하려면 표시하려는 모든 이미지에 대해 새 창 이름을 지정해야 한다.

imshow()waitKey(), destroyAllWindows(), destroyWindow() 기능과 함께 사용하도록 설계되어 있다.

waitKey()

키보드 바인딩 기능이다.

  • 창이 표시될 시간(milliseconds)인 단일 인수를 사용한다.
  • 사용자가 이 시간 내에 아무 키나 누르면 프로그램이 계속된다.
  • 0이 전달되면 프로그램은 키 입력을 무기한 기다린다.
  • 키보드의 Q 키 또는 ESC 키와 같은 특정 키 입력을 감지하도록 기능을 설정할 수 있다.

destroyWindow(window_name)

특정 창을 파괴해야 하는 경우 정확한 창 이름을 인수로 지정하여 사용할 수 있다.

destroyAllWindows()

우리가 만든 모든 창을 없앤다. 시스템의 주 메모리에서 창이나 이미지도 지워진다.

이미지 쓰기

파일 디렉토리에 이미지를 쓰거나 저장할 땐 OpenCV에서는 imwrite() 기능을 사용한다.

imwrite(file_name, image)
  • file_name : 파일 이름. 파일 이름 확장자를 포함해야 한다(.png, .jpg 등)
    OpenCV는 이 파일 이름 확장자를 사용하여 파일 형식을 지정한다.

  • image : 저장하려는 이미지. 이미지가 성공적으로 저장되면 True가 반환된다.


좋은 웹페이지 즐겨찾기