무효 클릭 IP 추적 중...
머신러닝,딥러닝/opencv

[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백

꼬예 2022. 8. 30.
[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백

 

 

이번 포스팅에서는 opencv를 통해 아래 양이미지를 읽는 방법에 대해 알아보도록 하겠습니다.

 

//sheep.jpg

 

sheep.jpg

 

1) 이미지 읽기

이미지를 읽을때는 image read의 약자인 imread함수를 이용하는데요. 인자로는 읽어올 파일의 경로를 적어주면 됩니다.

 

[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백 - undefined - 1) 이미지 읽기

 

2) flag 설정

공식문서에 보면 imread함수에는 flag라는 인자값이 있는데요.

 

[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백 - undefined - 2) flag 설정

 

이는 해당 이미지를 읽어 올때 컬러 이미지로 읽을지, 그레이스케일 이미지로 읽을지 정하는 것이라고 보면 됩니다.

 

가령 컬러 이미지로 읽고 싶다면 cv2.IMREAD_COLOR,

 

컬러이미지

 

그레이스케일 이미지로 읽고 싶을땐, cv2.IMREAD_GRAYSCALE 을 두번째 인자로 넣어주면 됩니다.

 

[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백 - undefined - 2) flag 설정

 

참고로 cv2.IMREAD_COLOR숫자 1로,

 

IMREAD_COLOR

 

cv2.IMREAD_GRAYSCALE숫자 0으로 쓰이기도 하니 참고하기 바랍니다.

 

GRAYSCALE

 

3) return image 값

imread함수를 통해 리턴받은 img값의 정체는 무엇일까요?

 

(1) 타입(type)

먼저 타입을 찍어보면,

타입

 

output:

 

ndarray

 

넘파이 ndarray이라는 것을 알 수 있습니다.

 

(2) shape

 

shape의 경우 flag를 어떻게 설정하느냐에 따라 달라 지는데요.

 

먼저 IMREAD_COLOR을 통해 이미지를 읽으면

 

[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백 - undefined - 3) return image 값

 

3차원의 shape이고, 마지막 차원의 3BGR컬러 채널을 의미합니다.

[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백 - undefined - 3) return image 값

 

IMREAD_GRAYSCALE을 통해 이미지를 읽으면,

 

[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백 - undefined - 3) return image 값

 

채널 차원이 빠진 2차원의 shape이 출력됩니다.

 

[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백 - undefined - 3) return image 값

(3) dtype

 

ndarray 내부 요소들의 타입은 무엇일까요?

 

[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백 - undefined - 3) return image 값
[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백 - undefined - 3) return image 값

uint8, 즉 unsigned int로,  0부터 255값을 의미합니다.

 

실제로 이미지를 print 해보면,

 

[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백 - undefined - 3) return image 값

 

아래와 같은 int형태의 값들로 구성 되어 있습니다. 

 

[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백 - undefined - 3) return image 값

 

(4) 이미지 dtype 변경

이미지 프로세싱을 하다보면 디테일한 값의 변화를 체크하기 위해 dtypefloat형태로 바꿔줄 필요도 있는데요.

 

이때는 astype() 메소드를 이용하여 타입을 변경해주시면 됩니다.

 

[오픈 cv python] 이미지 읽기(cv2.imread) | 컬러 , 흑백 - undefined - 3) return image 값

  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글

꼬예님의
글이 좋았다면 응원을 보내주세요!