Comment detail

モノクロ画像の類似検索 (Nested Flatten)
Core2 Duo1.83GHz、pnuts -J-server -O で起動して1.3秒 (配列の初期化を除く)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
N_WORDS = 1024*768/32
fb = new int[100][N_WORDS]
for (j:0..99){
  for (i:0..N_WORDS-1) fb[j][i] = random()
}

distance = makeProxy(Integer.getMethod("bitCount", [int]))

function sim(f1,f2){
  d = 0
  for (i:0..N_WORDS-1) d += distance(f1[i]^f2[i])
  d
}

function sim(f1,f2, min){
  d = 0
  for (i:0..N_WORDS-1) {
     d += distance(f1[i]^f2[i])
     if (d > min) return d
  }
  d
}

function findOne(f0, buffers){
   idx = 0
   min = sim(f0, buffers[0])
   for (i: 1.. size(buffers)-1){
      f = buffers[i]
      m = sim(f0, f, min)
      if (m < min){
        min = m
        idx = i
      }
   }
   idx
}
s=currentTimeMillis()
println(findOne(fb[0], fb[1..])+1, "th image")
println((currentTimeMillis()-s), " msec")

Index

Feed

Other

Link

Pathtraq

loading...