[ch02] Python 기초 사용법 - 영상의 속성과 픽셀 값 참조
OpenCV는 영상 데이터를 numpy.ndarray
로 표현
import cv2
img1 = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE)
img2 = cv2.imread('cat.bmp', cv2.IMREAD_COLOR)
numpy.ndarray
- ndim: 차원 수. len(img.shape)과 같음.
- shape: 각 차원의 크기. (h, w)[그레이스케일] 또는 (h, w, 3)[컬러]
- size: 전체 원소 개수
- dtype: 원소의 데이터 타입. 영상 데이터는 uint8.
OpenCV 영상 데이터 자료형과 Numpy 자료형
- 그레이스케일 영상: cv2.CV_8UC1 → numpy.uint8, shape = (h, w)
- 컬러 영상: cv2.CV_8UC3 → numpy.uint8, shape = (h, w, 3)
영상의 속성 참조 예제
img1 = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE)
img2 = cv2.imread('cat.bmp', cv2.IMREAD_COLOR)
print('type(img1):', type(img1)) # type(img1): <class 'numpy.ndarray'>
print('img1.shape:', img1.shape) # img1.shape: (480, 640)
print('img2.shape:', img2.shape) # img2.shape: (480, 640, 3)
print('img2.dtype:', img2.dtype) # img2.dtype: uint=8
h,w = img2.shape[:2] # h=480, w=640
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')
영상의 픽셀 값 참조 예제
img1 = cv2.imread('cat.bmp', cv2.IMREAD_GRAYSCALE)
img2 = cv2.imread('cat.bmp', cv2.IMREAD_COLOR)
for y in range(h):
for x in range(w):
img1[x, y] = 255
img2[x, y] = [0, 0, 255]
# for문으로 픽셀 값을 변경하는 작업은 매우 느리므로,
# 픽셀 값 참조 방법만 확인하고 실제로는 사용 금지
# img1[:, :] = 255
# img2[:, :, :] = (0, 0, 255)
Author And Source
이 문제에 관하여([ch02] Python 기초 사용법 - 영상의 속성과 픽셀 값 참조), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@redorangeyellowy/ch02-Python-기초-사용법-영상의-속성과-픽셀-값-참조저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)