Python - 컴퓨터 비전, OpenCV (6) 영상 픽셀 변경하기
파이썬 numpy 로 객체를 생성하고 영상으로 변환하기
numpy : 수치 계산을 위한 라이브러리이다. empty, zeros, ones, full 함수를 사용하여 numpy 객체를 생성할 수 있다.
이번 예제에서는 numpy로 객체를 생성하고, 이 객체를 영상으로 변환하여 출력해보자.
모듈 import
import numpy as np
import cv2
1. numpy - empy 함수
#empty : numpy 객체를 생성만 하고 초기화하지 않는 함수
#240x320 그레이스케일 영상 생성
img1 = np.empty((240, 320), dtype=np.uint8)
print("img1 :: ", img1)
'''
img1 ::
[[ 80 1 9 ... 0 90 30]
[100 20 132 ... 0 171 0]
[ 0 0 0 ... 61 166 2]
...
[ 0 0 0 ... 108 101 91]
[116 48 44 ... 136 70 221]
[ 11 14 136 ... 0 101 0]]
'''
print("img1.shape :: ", img1.shape)
#img1.shape :: (240, 320)
2. numpy - zeros 함수
#zeros : numpy 객체를 생성하고 0으로 초기화하는 함수
#240x320 컬러 영상 생성
img2 = np.zeros((240, 320, 3), dtype=np.uint8)
print("img2 :: ", img2)
'''
img2 ::
[[[0 0 0]
[0 0 0]
[0 0 0]
...
[0 0 0]
[0 0 0]
[0 0 0]]
...
[[0 0 0]
[0 0 0]
[0 0 0]
...
[0 0 0]
[0 0 0]
[0 0 0]]
'''
3. numpy - ones 함수
ones : numpy 객체를 생성하고 1로 초기화하는 함수
ones()는 1로 초기화된 배열을 생성하는데, 255를 곱하면 255로 초기화된 배열을 생성할 수 있다.
#240x320 흰색 영상 생성
img3 = np.ones((240, 320), dtype=np.uint8) * 255
print("img3 :: ", img3)
# ones으로만 출력하면 1이지만, 255를 곱하면 255로 초기화된 배열을 생성할 수 있다.
'''
img3 ::
[[1 1 1 ... 1 1 1]
[1 1 1 ... 1 1 1]
[1 1 1 ... 1 1 1]
...
[1 1 1 ... 1 1 1]
[1 1 1 ... 1 1 1]
[1 1 1 ... 1 1 1]]
'''
4. numpy - full 함수
full : numpy 객체를 생성하고 픽셀값을 지정한 값으로 초기화하는 함수
#240x320 노란색 영상 생성
img4 = np.full((240, 320, 3), (0, 255, 255), dtype=np.uint8)
print("img4 :: ", img4)
'''
img4 ::
[[255 255 255 ... 255 255 255]
[255 255 255 ... 255 255 255]
[255 255 255 ... 255 255 255]
...
[255 255 255 ... 255 255 255]
[255 255 255 ... 255 255 255]
[255 255 255 ... 255 255 255]]
'''
이미지 출력 결과
cv2.imshow('img1', img1)
cv2.imshow('img2', img2)
cv2.imshow('img3', img3)
cv2.imshow('img4', img4)
cv2.waitKey()
cv2.destroyAllWindows()
- img1
- img2
- img3
- img4
댓글남기기