Python: SURF by Mahotas

29 07 2012

20120729

กระบวนการ SURF เป็นการพัฒนาเพิ่มประสิทธิภาพของ SIFT ในการหาลักษณะเด่นของภาพ เริ่มต้นด้วยการสังวัตนาการภาพ หาจุดที่สนใจในหลายมาตราส่วน ในลักษณะพีรามิดภาพ และยังใช้วิธีการของ Harr waveletใช้ตัวกรองเพื่อตอบสนองต่อขนาดและทิศทางของวัตถุที่เปลี่ยนแปลงในการหาจุดที่สนใจ

SURF เท่าที่ค้นเจอเขียนด้วยภาษา C++ กับ Java ซึ่งใช้ไม่เป็นทั้งสองภาษา มีแพคเกจที่หุ้มห่อด้วยภาษาไพธอนบ้างคือ PyOpenCV และอีกตัวนึงคือ Mahotas วันนี้เรามาลอง Mahotas กัน

โค้ทไม่ยาว

import numpy as np
import mahotas
from mahotas.features import surf
from pylab import *

filename = r’d:\temp\sathon_000001.jpg’
f = mahotas.imread(filename, as_grey=True)
f = f.astype(np.uint8)
spoints = surf.surf(f, 4, 6, 2)
print “Nr points:”, len(spoints)

values = np.zeros(100)
colors = np.array([(255,0,0)])

f2 = surf.show_surf(f, spoints[:1000], values, colors)
imshow(f2)
show()

Image

สำหรับ Mahotas ดาวน์โหลดได้จาก

Unofficial Windows Binaries for Python Extension Packages

ส่วนใครที่สงสัยคำว่า “สังวัตนาการ” มันก็จะไปตรงข้ามกับคำว่า “อาวัตนาการ”
ความหมายคือ
อาวัตนาการ และสังวัตนาการ เป็นคำศัพท์บัญญัติของราชบัณฑิตยสถาน ที่บัญญัติขึ้นมาจากคำบาลี-สันสกฤต
อาวัตนาการ (involution) คือการพัวพัน การยุ่งเกี่ยว
สังวัตนาการ (convolution) คือลักษณะที่ม้วนขดอยู่ การงองุ้ม รอยหยักของสมอง
convolve คือทำให้ม้วนเข้าด้วยกัน
deconvolution คือลักษณะที่ไม่ม้วนขด
involutive distribution คือการนำไปสู่การกระจาย

แหล่งที่มา


Actions

Information

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: