본문 바로가기

study/영상처리 & opencv

[opencv] imread(), imshow(), imwrite(), matplotlib 왕기초

opencv 엄청 들어만 보고 제대로 쓸 줄 모른다,,

프로젝트에 쓸만한 실력까지 올리는게 목표인데 좀 늦긴 하지만 깨작깨작 뭐라두 해보기,,

 

docs.opencv.org/4.1.2/dc/d2e/tutorial_py_image_display.html 

예제를 찾아서 해보는 것보다 공식문서 보면서 차근차근 하는 것이 공부하는 데 효과적일 것 같아서

공식문서 보면서 하는데 잘 이해가 안되는 부분은 opencv-python.readthedocs.io/en/latest/doc/01.imageStart/imageStart.html을 참고하였다.

 

예전에 C++에 opencv 설치하는거 아주 애먹었던 기억이 심해서

colab을 사용해서 python으로 일단 시작해보기 

 

colab에서의 버전

img = cv2.imread('IU.jpg', 0) #grayscale cv2.IMREAD_GRAYSCALE
img = cv2.imread('IU.jpg', 1) #color cv2.IMREAD_COLOR
img = cv2.imread('IU.jpg', -1) #cv2.IMREAD_UNCHANGED

 

cv2.imshow('image',img) #colab에서 오류 발생

#이렇게 써야 imshow를 colab에서 사용 가능
from google.colab.patches import cv2_imshow
cv2_imshow(img)
#원래 코드
cv.imshow('image',img) 
cv.waitKey(0) #키보드 입력 대기 함수 -> 0이면 무한 대기 / 숫자 -> 숫자(milisecond) 대기
cv.destroyAllWindows() #윈도우 종료

 

- cv2.imwrite() : 이미지 저장 / 영상의 format을 변경할때도 사용하는 것 같다.

원하는 이름 / 저장할 이미지

 

- matplotlib

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
from google.colab.patches import cv2_imshow

img = cv.imread('IU.jpg', 0)

plt.imshow(img)
#plt.xticks([]) # x축 눈금
#plt.yticks([]) # y축 눈금
plt.show()

#9-10번 코드 추가 -> 축 사라짐

openCV는 BGR을  / Matplotlib는 RGB을 사용하여 이미지를 보여준다.

따라서 첫번째와 세번째의 값이 바뀌어서 출력되게 된다.

 

img 배열에 담긴 모습
코드 참조 : https://opencv-python.readthedocs.io/en/latest/doc/01.imageStart/imageStart.html

 

내 github에 정리한 코드 : #1.imread(),_imshow(),_imwrite(),_matplotlib.ipynb

 

끝 !