데이터분석/Vision Recognition

실제 이미지로 Scikit-image 적용해보기

늘근이 2015. 8. 16. 22:30

이제 샘플데이터가 아닌 실제 이미지를 가지고 여러가지를 해본다.

Scikit-Image는 프로그래밍적으로 여러가지 포토샵 비스무리한 필터를 적용할수 있는지라 이미지를 다루는데 있어 꽤나 쓸모있게 쓰일수 있는 것처럼 보이지만, 사실은 기본적인 필터를 사용할수 있는 정도이며, 머신러닝 등을 적용하려면 Scikit-learn을 붙여서 쓰거나 기타 다른 라이브러리를 통해서 개발을 진행하여야 하는것으로 보인다.

 

일단 다음과 같은 쉬운 명령어로 쉽게 대상이 되는 데이터를 지정할수 있다. 대상이 되는 이미지는 다음과 같다. 내가받은 생일선물 중에서 제일 쓸모없다고 느꼈었는데, 그래도 이렇게 쓸모가 있다니..

 

 

 

 

import os
from skimage import io
filename = os.path.join('c:\pyapps\image', 'test.png')
image = io.imread(filename)

 

이렇게 되면 이미지를 불러온 상태이다. 이 이미지를 가지고 여러가지 명령어를 먹여볼수 있다.

 

사이즈와 이미지 정보에 대한 것 

>>> image.shape 

(740,1290,4)

 

>>> image.size

3818400

 

 해당하는 픽셀정보 얻기

>>> image[100,200,1]

75

 

해당하는 픽셀정보 설정

>>> image[100,200,1] = 0

3818400

 

 

처음 10번째 라인까지 검정으로 만들기

>>> image[:10] = 0

 

 

마스크를 씌우고 색깔을 허옇게 만들기

>>> mask = image < 100

>>> image[mask] = 255 

 

mask = image < 100

이라는 구문을 실행한 후, mask를 타이핑해보면 모든 값이 True, False 값으로 변한것을 알수있다. 지금 상태는 R,G,B 값이 하나라도 100이하이면 (어두운계열) 모두 마스크를 씌워준 상태이며 이를 간편하게

image[mask] = 255

라는 구문으로 다 255로 변환시켜 줘버리는것이다. 마스크를 입혀주는것이다.

 

뭔가 열심히 필터를 입혀주었기 때문에 그림의 속성이 다음과 같이 변한것을 알수있다.

 

이제 마지막으로, 다음의 명령어로 실제 변환된 그림을 구경할수있다.

>>> io.imshow(image)

>>> io.show() 

결과적으로 검정색이였던 부분은 대부분의 R,G,B값이 100이하였을 것이므로, 색정보가 모두 255로 변하여 흰색으로 변했을 것이고, 나머지 애매한 색들은 R,G,B중 한두개만 255값으로 변했을 것이므로 결과적으로는 위와같은 형광빛의 이미지가 태어나게 되었다.