이미지나 영상관련해서는 알게 모르게 제가 초보 주제에 생각보다는 많은 글을 올린것 같습니다.^^ 이번에는 mahotas를 소개할까 합니다. 꽤 괜찮은 모듈인데.. Python 3.5부터 버전이 지원되지 않아서 아쉬웠는데 최근 업데이트를 해주어서 3.6에서도 잘 동작합니다. mahotas 모듈을 가지고 재미있는 공부를 많이 했거든요. 그러다가 그들의 공식홈페이지에 공개되어 있는 예제 중에 월리를 찾는 예지를 보고 저도 한 번 돌려 봤습니다. (이 이야기는 제가 짠 코드가 아니라는 거죠 ㅎㅎㅎ) mahotas는 conda 명령으로 설치하는게 편하더군요.
import matplotlib.pyplot as plt import mahotas as mh %matplotlib inline wally = mh.demos.load('Wally') plt.figure(figsize=(14,14)) plt.imshow(wally) plt.show()
먼저 mahotas를 import하고 월리를 읽어보도록 하겠습니다.~~
오랜만이죠? 먼저 눈으로 한 번 찾아보시죠 월리~~~~~ 월리의 특징은 힌색 빨간색이 번갈아 나타나는 셔츠를 입고 있다는 것입니다.
import numpy as np wfloat = wally.astype(float) r,g,b = wfloat.transpose((2,0,1)) w = wfloat.mean(2) pattern = np.ones((24,16), float) for i in np.arange(2): pattern[i::4] = -1 pattern
이렇게~ 그 흰색-빨간색 패턴을 지정하기 위한 작업을 좀 하구요~~~
그리고,
v = mh.convolve(r-w, pattern) mask = (v == v.max()) mask = mh.dilate(mask, np.ones((48,24))) np.subtract(wally, .8*wally * ~mask[:,:,None], out=wally, casting='unsafe') plt.figure(figsize=(14,14)) plt.imshow(wally) plt.show()
이렇게 컨볼루션 연산을 통해 이미지 전체에 마스크를 씌어주면~
그냥~ 월리를 찾네요.. 전 영상인식을 제대로 공부한 적이 없어서 참 신기한데요. 이번 기회에 컨볼루션 연산이 영상 인식에 어떤 영향을 주는 건지 공부해야겠어요~~~^^
반응형
'Theory > DataScience' 카테고리의 다른 글
전세계 테러 데이터 분석 (따라하기) (8) | 2019.05.07 |
---|---|
지도 그리기, basemap 모듈 간단 사용법 (7) | 2019.04.11 |
mahotas를 이용한 유사 이미지 찾기 (15) | 2018.10.24 |
우리나라 지도그리는 모듈 배포 - 인구소멸위기지역, 여성인구비율 등등 (28) | 2018.07.04 |
구글 지도 API 유료화에 대해 학습 방법... (34) | 2018.06.27 |
[SKLearn] 다변수 입력을 가지는 회귀 문제에 대한, Scikit-learn 선형회귀와 kNN 회귀 문제 (20) | 2018.06.20 |
Naver 검색 API 사용하기 (18) | 2018.06.18 |