C로 구현되어 있는 프로그램이다.
다운로드를 받고 PATH를 설정후에, 작업한다.
이미지 파일은 pgm으로 끝나야 하기 때문에 numpy의 기능을 빌려서
im = Image.open('test01.jpg').convert('L')
im.save('something.pgm')
으로 재저장을 한 후, 커맨드프롬프트를 통해 다음과 같이 실행한다.
$ sift tmp.pgm --output test01.sift --edge-thresh 10 --peak-thresh 5
그리고 plot은 다음과 같이 그린다.
그리고 다음과 같이 읽는다. l1=location d1=description
f = loadtxt('test01.sift')
l1 = f[:,:4]
d1 = f[:,4:]
l1과 d1에 이제 모든 파일이 저장되어있으므로, plot을 그릴수 있다.
figure()
gray()
imshow(im1)
plot(locs[:,0],locs[:,1],'ob')
동그라미도 가능하다. 다음함수를 쓰고
def draw_circle(c,r):
t = arange(0,1.01,.01)*2*pi
x = r*cos(t) + c[0]
y = r*sin(t) + c[1]
plot(x,y,'b',linewidth=2)
for p in l1:
draw_circle(p[:2],p[2])
위의 함수를 섞어쓰면 된다.
코드는 전적으로 Programming Computer Vision , Jan Erik Solem 의 책에서 안되는 부분 제거하고 구현해본 것입니다.
'데이터분석 > Vision Recognition' 카테고리의 다른 글
[링크] 아핀변환 (0) | 2016.01.02 |
---|---|
SIFT 이용해서 Local Descriptor 이용하기 (0) | 2016.01.02 |
이미지 배열 슬라이싱 및 몇가지 기능 (0) | 2016.01.01 |
의학용 소프트웨어 참고 (0) | 2015.12.19 |
openCV에서 제공하는 몇가지 유용한 기능 (0) | 2015.12.19 |