본문 바로가기
데이터 사이언스

[Python]Scipy이용해서 흑백 사진 만들기

by dev_mac-_- 2018. 6. 3.

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()함수를 통해 저장해주면 흑백이 완료된다.


흑백으로 변경 후 사진

댓글