본문 바로가기
Analysis/DL

[openCV / matplotlib] 영상 출력

by 5ole 2021. 3. 6.

1. openCV API

 

(1) imread

 

import cv2

img = cv2.imread('cat.bmp',cv2.IMREAD_GRAYSCALE)

 

  • image read 함수로 영상 불러와 변수에 저장
  • imread( 파일 이름, 파일 불러올 옵션 플래그 ) -> 영상 데이터 픽셀값 출력 ( numpy.ndarray ) 
  • cv2.IMREAD_COLOR ( BGR 컬러 - default값 )
  • cv2.IMREAD_GRAYSCALE ( 그레이스케일 )
  • cv2.IMREAD_UNCHANGED ( 속성 그대로 - 투명 파일도 가능 )

 

(2) imwrite

 

cv2.imwrite('cat_gray.png',img) 

 

  • image write 함수로 영상 파일 저장하기
  • imread( 파일 이름, 영상 데이터, 파일 저장 옵션 ) -> 저장상태 ( TRUE, FALSE )

 

(3) namedWindow

 

cv2.namedWindow('image')

 

  • 새 창 띄우는 함수로 영상이 클 때 마우스로 크기를 조절 가능하게 할 수 있음
  • namedWindow( 창 이름, 창 속성 플래그 )
  • cv2.WINDOW_NORMAL (창 크기에 맞게  - 마우스로 조절 가능)
  • cv2.WINDOW_AUTOSIZE (영상 크기에 맞게 - 마우스로 조절 불가능)

 

(4) imshow

 

cv2.imshow('image',img)

 

  • image show 함수로 영상을 출력함
  • imshow( 영상 출력할 창 이름, 영상 데이터 ( uint8이 기본 )
  • uint16, uint32 는 행렬 원소값에 255로 나눠서 출력
  • float32, float64의 경우 행렬 원소값에 255를 곱해서 출력
  • 창 이름이 없으면 새로 창을 만들어 출력함
  • cv2.waitKey() 함수가 있어야 실제로 출력 가능

 

(5) waitKey

 

cv2.waitKey()

 

  • 키보드에서 입력받을 때까지 대기 ( 0이 default , 1000이 1초 )
  • waitKey( 대기 시간 ) -> 눌린 키 값 (아스키코드)
  • 키보드에서 입력이 없을 시 -1 출력, 입력되면 값은 0 이상

 

cv2.waitKey() == ord('a')

 

  • 눌린 키 값을 확인하기 위해서는 ord() 함수로 확인 가능

 

(6) destroyWindows

 

cv2.destroyAllWindows('image')

 

  • 창 닫기 함수로 destroyWindows와 destroyAllWindows
  • destroyWindows는 지정한 창 하나만 닫기
  • destroyAllWindows 는 열려있는 모든 창을 닫기

 

2. Matplotlib

 

(1) 영상 출력

 

import matplotlib.pyplot as plt
import cv2

imgBGR = cv2.imread('cat.bmp')
imgRGB = cv2.cvtColor(imgBGR, cv2.COLOR_BGR2RGB) # BGR -> RGB

 

  • cv2.imread() 영상은 BGR 순서이므로 cv2.cvtColor 함수로 RGB 순서로 바꿔줌
  • 그레이스케일 영상을 출력하고 싶다면 imread 함수 옵션에서 cv2.IMREAD_GRAYSCALE 지정

 

plt.axis('off')
plt.imshow(imgRGB)
plt.show()

 

  • axis('off') 로 축 제거

 

plt.axis('off')
plt.imshow(imgGray, cmap='gray')
plt.show()

 

  • 그레이스케일 영상은 imshow 에서 cmap ='gray' 지정해줘야함

 

(2) 창 나눠 출력

 

plt.subplot(121), plt.axis('off'), plt.imshow(imgRGB)
plt.subplot(122), plt.axis('off'), plt.imshow(imgGray, cmap='gray')
plt.show()

 

  • 1 X 2 형태로 [1,1] 자리에는 RGB 그림, [1,2] 자리에는 그레이스케일 그림으로 나눠 출력

 

 

+ 참고 자료 및 출처

 

  • 책 < OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 - 황선규 >

'Analysis > DL' 카테고리의 다른 글

딥러닝 개념  (0) 2021.05.02
[openCV] 이미지 슬라이드쇼  (0) 2021.03.06
Computer Vision 컴퓨터 비전 소개  (0) 2021.03.04

댓글