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 |
댓글