& 프로그래밍/& openCV
openCV 프로그래밍 기초(이미지파일 읽고 쓰기)
앤퍼센트
2021. 4. 15. 22:03
지난시간 openCV 라이브러리를 활용하여 이미지(영상)파일을 열어보는 방법을 알아보았다
이번에는 이미지파일을 읽고 쓰는 방법을 알아보자
(참고) 나는 VScode에 streamlit 가상환경을 이용하여 활용하고 있다
1. 먼저 opencv 라이브러리를 임포트해준다.
import cv2
2. 저장되어있는 이미지파일의 경로를 불러온다.
imageName = 'data/images/sample.jpg'
3. 이미지파일을 변수에 저장하여 읽어준다.
image = cv2.imread(imageName, 1)
cv.2imread에 대한 레퍼런스는 이전 게시글에 간략하게 설명해놓았으니 참고!
4. 이미지파일에 대한 오류를 체크해준다(생략가능)
if image is None:
print('이미지파일을 불러올 수 없습니다')
5. 컬러로 불러온 이미지 파일을 회색조로 변경하자
grayImage = cv2.cvtCOLOR(image, cv2.COLOR_BGR2GRAY)
추가설명 : opencv는 일반 RGB로 인식하지않고 BGR 즉, 반대로 인식한다. 주피터노트북에서 동일한 구조로 실행시키면 완전 다른 색상의 결과를 가져오게된다. 구글 코랩같은 경우, 웹서버로 작동하는 가상환경이다보니 영상, 이미지파일과 같은 무거운 작업이 어렵기에 애초에 opencv 라이브러리를 지원하지 않도록 되어있다.
6. 창 이름과 성질을 설정한다
cv2.namedWindow('gray image', cv2.WINDOW_AUTOSIZE)
# cv2.namedWindow라는 함수는 창 이름을 고정하여 나중에 해당 창을 수시로 불러오는게 유용하다
# ('사용자가 지정할 창 이름', 창의 사이즈를 지정. 고정값은 auto)
7. 위에서 설정한 gray image 창에 numpy인 grayImage를 표현해보자)
cv2.imshow('gray image',grayImage)
8. 작업한 이미지 파일을 저장해보자
cv2.imwrite('data/images/result_gray.jpg',grayImage)
9. 위 작업한 파일을 확인하기위해 창을 고정시키자
cv2.waitkey()
cv2.destroyAllWindows()
9번째 코드를 입력하지 않으면 컴퓨터가 알아서 실행시키자마자 종료시켜버리기 때문에 반드시 넣어주자
코드전체를 실행시키면 설정한 값(창 이름'gray image', 회색조 이미지)으로 이미지 파일이 열린다