numpy 함수 중 zeros를 사용하여 모든 픽셀값이 0인 빈 영상을 생성한다.
np.zeros(shape, dtype) 지정한 shape과 data type에 맞추어 모든 값이 0인 텐서를 생성
shape(height,width,dim) : 그리고자 하는 영상의 모양
color 영상 : (height, width, 3) / B,G,R 3-channel
grayscale 영상 : (height, width) / intensity single-channel
dtype : 저장되는 값의 type, 영상처리를 위해 np.uint8로 지정한다
numpy.ndarray 영상의 x,y 픽셀에 접근하기 위해 arr[y, x] 를 통해 접근이 가능하며, 원하는 픽셀값을 넣어줄 수 있다. 또한 인덱스 슬라이싱이 가능하다.
# color 3 channel
image[y, x] = [B, G, R]
# grayscale single channel
image[y, x] = intensity
# color 3-channel
image[y : y+n, x : x+m] = [B, G, R]
# grayscale single channel
image[y : y+n, x : x+m] = intensity
import cv2
import numpy as np
height = 100
width = 150
# 빈영상 생성
color = np.zeros((height,width,3),np.uint8)
grayscale = np.zeros((height,width),dtype=np.uint8)
# color index 접근
color[60,80] = [0,255,0]
color[0:50,50:100]= [255,0,0]
# grayscale index 접근
grayscale[60,80]=255
grayscale[0:50,50:100]=150
cv2.imshow("color",color)
cv2.imshow("gray",grayscale)
cv2.waitKey()
cv2.destroyAllWindows()