1
# -*- coding: utf-8 -*-
3
from compute_channels_oe_nms import compute_channels_oe_nms
4
from get_descriptors import get_descriptors
7
class GeometricBlurComputer:
8
def __init__(self, usePBEdges=False,
13
sampleRadii=[0, 4, 8, 16, 32, 50],
14
numSamplePerRadius= [1, 8, 8, 10, 12, 12]):
15
self.usePBEdges=usePBEdges
16
self.numFeats=numFeats
17
self.repulsionRadius=repulsionRadius
18
self.blurRate=blurRate
19
self.blurBase=blurBase
20
self.sampleRadii=sampleRadii
21
self.numSamplePerRadius=numSamplePerRadius
27
I=I.reshape(I.shape[:2])
29
if not self.usePBEdges:
30
fbr = compute_channels_oe_nms(I)
32
assert False,"Not yet implemented"
33
#feat = pbEdges(conf, I)
34
#th = 4 * mod(feat.theta, numpy.pi) / numpy.pi
42
#fbr = numpy.zeros(I.shape[0],I.shape[1],4)
44
#fbr=vl_binsum(fbr,wi * feat.pb,i,3)
45
#fbr=vl_binsum(fbr,wj * feat.pb,j,3)
49
descrs, frames=get_descriptors(numpy.dstack(fbr), self.numFeats, self.repulsionRadius, self.blurRate, self.blurBase, numpy.array(self.sampleRadii), numpy.array(self.numSamplePerRadius))
51
frames = numpy.flipud(frames.T)
52
descrs = numpy.dstack(descrs).swapaxes(1,2)
53
#descrs = numpy.array([ descrs[:,:,0],descrs[:,:,1],descrs[:,:,2],descrs[:,:,4]]).T
56
#feat.frames = frames ;
57
#feat.descrs = descrs ;
60
from pycvf.core import genericnode
61
from pycvfext.image.datatypes import image
62
from pycvf.datatypes import numericvectors
63
from pycvf.datatypes import list as ldt
66
Node=genericnode.pycvf_node_class(image.Datatype(),ldt.Datatype(numericvectors.Datatype))(GeometricBlurComputer)
70
def gb_distance(desc1,desc2):
71
return numpy.dot(desc1.ravel(),desc2.ravel())
74
if __name__=="__main__":
76
I=scipy.lena()[::2,::2]
77
r=GeometricBlurComputer().process(I)
80
#for i in range(len(r)):
81
#scipy.misc.pilutil.imshow(r[i]/r[i].max()*255)
82
#print len(r),r[i].mean()
b'\\ No newline at end of file'