SciPy 이용하여 흑백 사진 만들기
Python을 이용하면 다양한 것을 손쉽게 할 수 있다.
SciPy는 Python을 기반으로 하여 과학, 분석, 엔지니어링을 위한 과학적 컴퓨팅 영역의 여러 기본적인 작업을 위한 라이브러리다.
이 라이브러리는 Numpy, Matplotlib, pandas, Sympy와 함께 동작한다. 그리고 NumPy와 SciPy를 함께 이용하면 MATLAB기능을 완벽히 대체한 수준의 통계관련 자료를 다룰 수 있다.
import numpy as np
from scipy.misc import imread, imsave
img = imread('./cat.jpg') # 사진을 width x height x rgb 3차원 배열로 나타냄
a = img.sum(axis=2) / 3 # sum(axis=2)는 z축의 값을 다 더한다. (RGB)
imsave('cat_black.jpg', a) # 흑백으로 저장
일단 numpy와 scipy를 import한 후에 img에 cat.jpg의 픽셀정보를 담은 배열을 만들어준다.
주석에 나타나 있는 것 처럼 Width x Height x RGB의 3차원 배열로 나타낸다.
원래그림
그리고 나서 그 img배열의 z축을 모두 더한다. (z축은 RGB값인데 다 더한후 3으로 평균을 내면 흑백화가 된다.)
np.sum(axis=number)의 설명은 밑 링크에 들어가면 자세히 볼 수 있다.
https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.sum.html
그리고 imsave()함수를 통해 저장해주면 흑백이 완료된다.
흑백으로 변경 후 사진
'데이터 사이언스' 카테고리의 다른 글
[연속 균등 분포] #1. Continuous uniform Distribution (0) | 2018.06.03 |
---|
댓글