Tech이야기~!
welcom 자세히보기

Computer/OpenCV

[Scikit-image] 색상 모듈, 그리기 모듈

Enhold 2019. 12. 13. 19:17

색상 모듈

추가자료 Site

https://scikit-image.org/docs/stable/api/skimage.color.html#skimage.color.convert_colorspace

 

Module: color — skimage v0.16.1 docs

The image in RGB format, in a 3-D or 4-D array of shape (.., ..,[ ..,] 3), or in RGBA format with shape (.., ..,[ ..,] 4).

scikit-image.org

 

라이브러리의 이 모듈은 한 색상 공간에서 다른 색상 공간으로 이미지를 변경하는 함수들을 포함. 

Valid color spaces

‘RGB’, ‘HSV’, ‘RGB CIE’, ‘XYZ’, ‘YUV’, ‘YIQ’, ‘YPbPr’, ‘YCbCr’, ‘YDbDr’

 

RGB to gray scale 

모듈의 rgb2gray() 함수는 RGB이미지를 그레이 스케일 이미지로 변환

from skimage import color, io 

#파일에서 이미지 읽음
img = io.imread('image2.jpg')

#이미지를 그레이스케일 이미지로 변경
gray = color.rgb2gray(img)

io.imshow(gray)
io.show()

 

RGB to gray scale 

모듈 rgb2hsv()함수는 RGB이미지를 HSV이미지로 변환

from skimage import color, io, data

#이미지 읽음
img = data.astronaut()

#이미지를 hsv로 변경
hsv = color.rgb2hsv(img)

io.imshow(hsv)
io.show()

그리기 모듈

그리기 모듈에는 원형, 타원, 다각형 등 다양한 모양을 그리는 다양한 함수들이 있다. 

(0,0)점은 이미지의 왼쪽 하단이 아니라 왼쪽 상단이다.

 

중심 좌표와 반지름을 입력으로 취하고 주어진 좌표와 반지름의 원 안에 있는 모든 픽셀들을 가져온 후 2D 행렬에 있는 값에 1을 할 당하고 다른 모든 점은 0으로 만든다.

import numpy as np 
from skimage import io, draw 

#이미지 읽음
img = np.zeros((100, 100), dtype=np.uint8)

#원을 그림
x, y = draw.circle(50, 50, 10)
img[x, y] = 1

io.imshow(img)
io.show()

타원

ellipse()함수

import numpy as np 
from skimage import io, draw 

#이미지 읽음
img = np.zeros((100, 100), dtype=np.uint8)

#타원을 그림
x, y = draw.ellipse(50, 50, 10, 20)
img[x, y] = 1

io.imshow(img)
io.show()

다각형

polygon()함수

import numpy as np
from skimage import io, draw

#빈 이미지 생성
img = np.zeros((100, 100), dtype=np.uint8)
r = np.array([10, 25, 80, 50])
c = np.array([10, 60, 40, 10])
x, y = draw.polygon(r, c)
img[x, y] = 1


io.imshow(img)
io.show()