본문으로 바로가기
728x90

이미지의 속성

다음은 이미지 객체에 대한 속성입니다.

import cv2

color_img = cv2.imread('banana.jpg', cv2.IMREAD_COLOR)
gray_img = cv2.imread('banana.jpg', cv2.IMREAD_GRAYSCALE)

print('color_img type:', type(color_img))
print('gray_img type:', type(color_img))

print('color_img dtype:', color_img.dtype)
print('gray_img dtype:', gray_img.dtype)

print('color_img ndim:', color_img.ndim)
print('gray_img ndim:', color_img.ndim)

print('color_img shape:', color_img.shape)
print('gray_img shape:', gray_img.shape)

print('color_img size:', color_img.size)
print('gray_img size:', gray_img.size)
더보기
color_img type: <class 'numpy.ndarray'>
gray_img type: <class 'numpy.ndarray'>
color_img dtype: uint8
gray_img dtype: uint8
color_img ndim: 3
gray_img ndim: 3
color_img shape: (168, 300, 3)
gray_img shape: (168, 300)
color_img size: 151200
gray_img size: 50400

 

속성 설명
type numpy.ndarray 객체 타입
dtype uint8 원소의 데이터 타입
shape (168, 300, 3) color_img (h, w, 3)
(168, 300) gray_img (h, w)
size 151200 color_img 전체 픽셀 개수
50400 gray_img 전체 픽셀 개수

 

원본 파일

 

이미지 식별하기

다음 예제는 shape 를 이용하여 color, gray 이미지를 식별합니다.

      color image shape size : 3

grayscale image shape size : 2

import cv2

img1 = cv2.imread('banana.jpg', cv2.IMREAD_COLOR)
img2 = cv2.imread('banana.jpg', cv2.IMREAD_GRAYSCALE)

print('img1 shape:', img1.shape)
print('img2 shape:', img2.shape)

if len(img1.shape) == 3:
    print('img1 is color')
elif len(img2.shape) == 2:
    print('img1 is gray')

if len(img2.shape) == 3:
    print('img2 is color')
elif len(img2.shape) == 2:
    print('img2 is gray')
더보기
img1 shape: (168, 300, 3)
img2 shape: (168, 300)
img1 is color
img2 is gray

 

픽셀값 변경하기

이미지 객체에 접근은 [height-index, width-index] 로 합니다.

import cv2

img1 = cv2.imread('banana.jpg', cv2.IMREAD_COLOR)
img2 = cv2.imread('banana.jpg', cv2.IMREAD_GRAYSCALE)

x = 33
y = 33

print(img1[y,x])
print(img2[y,x])

img1[y,x] = (255,0,0)
img2[y,x] = 0

cv2.imshow('img1', img1)
cv2.imshow('img2', img2)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

전체 좌표 [:,:] 

import cv2

img1 = cv2.imread('banana.jpg', cv2.IMREAD_COLOR)
img2 = cv2.imread('banana.jpg', cv2.IMREAD_GRAYSCALE)

img1[:,:] = (255,0,0)
img2[:,:] = 0

cv2.imshow('img1', img1)
cv2.imshow('img2', img2)
cv2.waitKey(0)
cv2.destroyAllWindows()