728x90
◎ 영상의 속성과 픽셀 값 처리
○ OpenCV는 영상 데이터를 numpy.ndarray로 표현
import sys
import cv2
# 영상 불러오기
img1 = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE)
img2 = cv2.imread('cat.bmp', cv2.IMREAD_COLOR)
if img1 is None or img2 is None:
print('Image load failed!')
sys.exit()
# 영상의 속성 참조
print('type(img1):', type(img1))
print('img1.shape:', img1.shape)
print('img2.shape:', img2.shape)
print('img1.dtype:', img1.dtype)
# 영상의 크기 참조
h, w = img2.shape[:2]
print('img2 size: {} x {}'.format(w, h))
if len(img1.shape) == 2:
print('img1 is a grayscale image')
elif len(img1.shape) == 3:
print('img1 is a truecolor image')
cv2.imshow('img1', img1)
cv2.imshow('img2', img2)
cv2.waitKey()
◎ 영상의 생성, 복사, 부분 영상 추출
# 새 영상 생성하기
img1 = np.empty((240, 320), dtype=np.uint8) # grayscale image
img2 = np.zeros((240, 320, 3), dtype=np.uint8) # color image
img3 = np.ones((240, 320), dtype=np.uint8) * 255 # white
img4 = np.full((240, 320, 3), (0, 255, 255), dtype=np.uint8) # yellow
# 영상 복사
img1 = cv2.imread('HappyFish.jpg')
img2 = img1 # 공유한다
img3 = img1.copy() # 새로운 복사본 생성
# 부분 영상 추출
img1 = cv2.imread('HappyFish.jpg')
img2 = img1[40:120, 30:150] # numpy.ndarray의 슬라이싱
img3 = img1[40:120, 30:150].copy()
img2.fill(0)
728x90
'Data scientist > 컴퓨터 비전' 카테고리의 다른 글
컴퓨터 비전 (0) | 2021.10.27 |
---|