import sys
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
img1, img2 조사식
OpenCV 자료형(1채널) | NumPy | 자료형 구분 |
cv2.CV_8U | numpy.uint8 | 8비트 부호없는 정수 |
cv2.CV_8S | numpy.int8 | 8비트 부호있는 정수 |
cv2.CV_16U | numpy.uint16 | 16비트 부호없는 정수 |
cv2.CV_16S | numpy.int16 | 16비트 부호있는 정수 |
cv2.CV_32S | numpy.int32 | 32비트 부호있는 정수 |
cv2.CV_32F | numpy.float32 | 32비트 부동소수형 |
cv2.CV_64F | numpy.float64 | 64비트 부동소수형 |
cv2.CV_16F |
numpy.float16 | 16비트 부동소수형 |
• 그레이스케일 영상: cv2.CV_8UC1 → numpy.uint8, shape = (h, w)
• 컬러 영상: cv2.CV_8UC3 → numpy.uint8, shape = (h, w, 3)
파이썬에서 NumPy 에 정의된 자료형 외에 OpenCV 자료형으로도 사용 할 수 있다.
#img_info.py
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()
# 영상의 픽셀 값 참조
for y in range(h):
for x in range(w):
img1[y, x] = 255
img2[y, x] = (0, 0, 255)
# img1[:,:] = 255
# img2[:,:] = (0, 0, 255)
cv2.imshow('img1', img1)
cv2.imshow('img2', img2)
cv2.waitKey()
cv2.destroyAllWindows()
OpenCV 그리기 함수 (0) | 2021.05.12 |
---|---|
영상의 생성, 복사, 부분 영상 추출 (0) | 2021.05.12 |
Matplotlib 사용하여 영상 출력하기 (0) | 2021.05.12 |
OpenCV 주요 함수 설명 (0) | 2021.05.12 |
BMP 파일 출력 하기 (0) | 2021.05.12 |
댓글 영역