Data scientist/컴퓨터 비전

OpenCV-Python 기초 사용법

맨사설 2021. 10. 27. 21:51
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)

부분 영상 추출도 img2와 img3는 차이가 있다.

 

728x90

'Data scientist > 컴퓨터 비전' 카테고리의 다른 글

컴퓨터 비전  (0) 2021.10.27