본문 바로가기

Fields Applied with AI/컴퓨터 비전 Computer Vision

Ⅰ. 컴퓨터 비전 기초 (4. 영상의 생성, 복사, 추출)

4-(1) 영상 생성

영상 데이터는 Numpy의 array로 표현되므로 array를 생성하는 것과 동일합니다.

Import Library

import cv2
import numpy as np
from google.colab.patches import cv2_imshow

 

  • 필요한 라이브러리들을 불러옵니다.

 

 

Create Numpy Array

img1 = np.empty((480, 640), dtype=np.uint8)
img2 = np.zeros((480, 640, 3), dtype=np.uint8) 
img3 = np.ones((480, 640), dtype=np.uint8) * 100 
img4 = np.full((480, 640, 3), (0, 255, 255), dtype=np.uint8)

 

  • img1 : 모든 원소가 임의의 값으로 초기화된 (480, 640) array.
  • img2 : 모든 원소가 0으로 초기화된 (480, 640, 3) array.
  • img3 : 모든 원소가 1로 초기화된 (480, 640) array.
  • img4 : 모든 원소가 (0, 255, 255)로 초기화된 (480, 640, 3) array.

 

 

Print Image

cv2_imshow(img1)
cv2_imshow(img2)
cv2_imshow(img3)
cv2_imshow(img4)

 

 

 

 

4-(2) 영상 복사

영상 데이터는 Numpy의 array로 표현되므로 array를 복사하는 것과 동일합니다.

Upload File

from google.colab import files
upload = files.upload()

Saving HappyFish.jpg to HappyFish.jpg

 

 

Copy and Modify Image

import cv2
from google.colab.patches import cv2_imshow
 
img1 = cv2.imread('HappyFish.jpg')
img2 = img1
img3 = img1.copy()
img1.fill(100)

 

  • img1 : 'HappyFish' 컬러 이미지.
  • img2 : img1과 동일한 메모리를 공유하는 변수.
  • img3 : img1의 데이터를 복사한 이미지.(img1과 다른 메모리)
  • img1의 array의 각 원소를 모두 100으로 값을 수정합니다.

 

 

Print Image

cv2_imshow(img1)
cv2_imshow(img2)
cv2_imshow(img3)

 

 

 

 

4-(3) 영상 추출

영상 데이터는 Numpy의 array로 표현되므로 array를 슬라이싱하는 것과 동일합니다.

Upload File

from google.colab import files
upload = files.upload()

Saving HappyFish.jpg to HappyFish.jpg

 

 

Slicing Image

import cv2
from google.colab.patches import cv2_imshow
 
img1 = cv2.imread('HappyFish.jpg')
img2 = img1[40:120, 30:150]
img3 = img1[40:120, 30:150].copy()
img2.fill(0)

 

  • img1 : 'HappyFish' 컬러 이미지.
  • img2 : img1의 행(index 40~119) * 열(index 30~149) 크기의 부분 이미지. (img1과 동일한 메모리)
  • img3 : img2를 복사한 이미지.(img2와 다른 메모리)
  • img2의 모든 원소의 값을 0으로 수정합니다.

 

 

Print Image

cv2_imshow(img1)
cv2_imshow(img2)
cv2_imshow(img3)

 

 

 

*참고 : OpenCV를 활용한 컴퓨터 비전과 딥러닝