[OpenCV] # 0. 이미지 출력 방법

Crush_on_Study·2022년 6월 21일
0

OpenCV공부

목록 보기
1/3

영상처리_ OpenCV 모듈 설치

cv2

먼저 영상처리는 파이썬에서 가장 많이 쓰이고 C++에서도 쓰이기도 합니다.
이 포스팅은 파이썬을 사용해서 공부한 내용들입니다.

먼저, 사용할 라이브러리는 cv2입니다. Visual Studio Code에서 터미널 창에 pip install opencv 을 입력하시면 설치가 됩니다.
(필자는 설치한지 오래되서 명령어가 저게 아닐 수도 있습니다. 구글링 좀만 해도 바로 나오니 안되시는 분들은 참고 바랍니다!)

  • 저는 아나콘다 사용안했었습니다. 아나콘다면 명령어 달라요!

이미지출력 함수

imread,shape

이미지를 출력하기 위해 알아야할 메서드!

  • imread
    imread는 이미지 파일을 불러오는 메서드입니다.

Q. 근데 메서드가 뭐에요?
A. 앞으로 OpenCV의 코드들을 보면 알겠지만 모듈.메서드 이런식으로 코드가 짜여져 있는 것을 보게될 것입니다.

import cv2

image = cv2.imread("사진파일.jpg")

이런 식으로 cv2는 모듈(=라이브러리)이고 뒤에 imread는 cv2 라이브러리 안에 제공되는 함수(=메서드,method)입니다.

출력결과입니다. 일단 사진크기가 굉장히 크네요.
사진크기를 조정하는 방법도 있는데, 그건 뒤에서 설명하겠습니다.

사진의 크기를 확인하는 메서드로는 shape 가 있습니다.

image.shape()  # 출력 결과는 세로,가로,채널 수

이렇게 나옵니다. image는 제가 임의로 정한 변수명입니다.
여기서 세로와 가로는 알겠는데 '채널 수' 라는게 있어요.
채널 수는 흑백사진이 아닌이상 3으로 출력될겁니다. 여기서 제가 흑백사진을 언급했는데 눈치가 빠르신 분들은 이제 채널 수가 뭘 의미하는지 깨달으셨을겁니다. 바로 R G B 를 의미합니다. 색의 3원소는 ,,로 이루어져있습니다. 여기에 추가로 명암까지 들어감으로써 16,777,216가지의 색을 만들어낼 수 있습니다.


imshow

  • imshow
    이번엔 imshow 함수입니다. 이름에서도 유추가 가능합니다.
    im은 이미지(image)의 약자고, show는 보여달라는거죠? read가 파일을 읽는것이였으니까, 파일을 보여달라는 함수 또한 있어야 합니다.

코드를 다시 한번 찬찬히 볼게요. 제가 위에서 우주배경화면을 출력하기 위한 코드는 아래와 같습니다.

import cv2

image = cv2.imread("사진 파일명.확장명")
cv2.imshow("출력 창 제목",파일 불러서 담은 변수명)

이렇게 짰어요. 제 사진보면 사진파일의 제목은 Earth.jpg였습니다.
그리고 이걸 출력할 때보면 윈도우 창의 제목은 'Universe'로 되어있습니다. 즉, 출력 창 제목에 제가 Universe를 적었기 때문이고 이를 출력하기 위해 가져온 변수명은 앞서 선언한 image가 되겠습니다.


waitKey()

  • waitKey 는 출력한 화면을 얼마나 오랫동안 켜놓을지를 결정하는 함수입니다.

괄호를 비워두면 사용자가 종료 키를 누르지 않는이상 쭉 유지됩니다.
단위는 밀리세컨드 ms 입니다.
즉, 5000을 입력하면 5초 동안 유지됩니다.


destroyAllWindows()

  • 이 함수는 사용 종료시, 출력창을 모두 닫는 함수입니다.
    지금 설명드린 imread, imshow, waitKey, destroyAllWindows는 openCV에서 가장 많이 쓰이는 함수들이므로 금방 적응되실겁니다.

이미지 컬러 관련 메서드들

  • cv2.IMREAD_??

이미지를 출력할때, 원본 그대로의 이미지말고도 다르게 출력할 일이 있습니다. 대표적인게 흑백사진인데요. 우리가 보통 이미지를 출력할 때는 디폴트된 값으로 아래처럼 코드를 짭니다.

cv2.imread("사진 파일명.확장명",cv2.IMREAD_COLOR) # 혹은 cv2.IMREAD_COLOR 생략 가능)

위 코드가 디폴트고,

cv2.imread("~~",cv2.IMREAD_GRAYSCALE) # 흑백
cv2.imread("~~",cv2.IMREAD_UNCHANGED) # 투명한 부분도 출력

이렇게도 있습니다. 이미지 컬러 관련 함수들은 이것보다도 더 많은데
지금 그걸 다 일일이 보여드리긴 어렵고, 필요에 따라 관련 함수들을
서칭하면서 코드를 짜는 식으로 이어갈 것입니다.

profile
방구석백수 코드몽키

0개의 댓글