728x90
RGB
RGB 색 모형은 빛의 삼원색을 이용하여 색을 표현하는 방식이다. 빨강(RED), 초록(GREEN), 파랑(BLUE) 세 종류의 광원(光源)을 이용하여 색을 혼합하며 색을 섞을수록 밝아지기 때문에 '가산 혼합'이라고 한다. 디지털 이미지에서 사용되는 RGB 가산혼합의 종류로는 sRGB, 어도비 RGB 등이 있다.
Red : (255, 0, 0)
Green : (0, 255, 0)
Blue : (0, 0, 255)
테스트 해보세요 !
이미지 생성
Numpy 의 배열을 생성해주는 함수를 이용할 것입니다.
zeros() : 원소를 0로 배열을 생성
ones() : 원소를 1으로 배열을 생성
import numpy as np
zeros = np.zeros((240, 320), dtype=np.uint8)
print(zeros)
ones = np.ones((240, 320), dtype=np.uint8)
print(ones)
더보기
[[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
...
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]]
[[1 1 1 ... 1 1 1]
[1 1 1 ... 1 1 1]
[1 1 1 ... 1 1 1]
...
[1 1 1 ... 1 1 1]
[1 1 1 ... 1 1 1]
생선된 배열을 이용하여 이미지를 생성합니다.
모든 원소가 0이면 검정색이고, 모든 원소가 255이면 흰색입니다.
import numpy as np
import cv2
gray_img = np.empty((240, 320), dtype=np.uint8)
gray_img2 = np.ones((240, 320), dtype=np.uint8) * 255
color_img = np.zeros((240, 320, 3), dtype=np.uint8)
color_img2 = np.ones((240, 320, 3), dtype=np.uint8) * 255
cv2.imshow('gray_img', gray_img)
cv2.imshow('gray_img2', gray_img2)
cv2.imshow('color_img', color_img)
cv2.imshow('color_img2', color_img2)
cv2.waitKey()
cv2.destroyAllWindows()
Numpy의 full() 함수를 이용하면 쉽게 배열을 생성할 수 있습니다.
사용방법은 다음과 같습니다.
import numpy as np
import cv2
gray_img = np. full((480, 640), 255, dtype=np.uint8)
color_img = np.full((480, 640, 3), (0, 255, 255), dtype=np.uint8)
cv2.imshow('gray_img', gray_img)
cv2.imshow('color_img', color_img)
cv2.waitKey()
cv2.destroyAllWindows()
이미지 복사
두 예제의 차이점을 보시겠습니다. (옅은복사, 깊은복사와 관련있습니다.)
배열을 대입하여 사용하니 다음과 같이 소스 이미지에 영향을 줍니다.
#1
import cv2
src = cv2.imread('cat.jpg', cv2.IMREAD_COLOR)
print(src.shape)
cp_img = src[100:200, 100:200]
cp_img.fill(0)
cv2.imshow('src', src)
cv2.imshow('cp_img', cp_img)
cv2.waitKey()
cv2.destroyAllWindows()
copy() 함수를 사용하면 소스 이미지에 영향을 주지 않습니다.
#2
import cv2
src = cv2.imread('cat.jpg', cv2.IMREAD_COLOR)
print(src.shape)
cp_img2 = src[100:200, 100:200].copy()
cp_img2.fill(0)
cv2.imshow('src', src)
cv2.imshow('cp_img2', cp_img2)
cv2.waitKey()
cv2.destroyAllWindows()
'OpenCV' 카테고리의 다른 글
파이썬 OpenCV 이미지 밝기 조절 : add, sub (0) | 2020.07.14 |
---|---|
파이썬 OpenCV 도형 그리기 : line, rectangle, circle, polilines (0) | 2020.07.13 |
파이썬 OpenCV 이미지 읽기 -2 : 이미지 객체 속성, 픽셀 접근 (0) | 2020.07.08 |
파이썬 OpenCV 이미지 읽기 -1 : imread() 속성, 흑백으로 읽기 (0) | 2020.07.08 |
파이썬 OpenCV 시작하기 : 설치 (0) | 2020.07.08 |