L'oggetto e' stata la caffettiera sotto riportata il cui centro di rotazione e' stato posto a 65 cm dal Kinect ed e' stato ripreso da 4 fotogrammi ruotando ogni volta l'oggetto di 90°
Ovviamente e' stata una prova casalinga e ci sono forti errori di allineamento tra il sensore Kinect e l'asse di rotazione.
L'oggetto reale |
La sua scansione (da notare che era posto sopra una scatola)
-------------------------------------------------
from openni import *
import time
import pickle
import numpy as np
import Image
import scipy
ctx = Context()
ctx.init()
# Create a depth generator
depth = DepthGenerator()
depth.create(ctx)
# Set it to VGA maps at 30 FPS
depth.set_resolution_preset(RES_VGA)
depth.fps = 30
# Start generating
ctx.start_generating_all()
# Update to next frame
nRetVal = ctx.wait_one_update_all(depth)
depthMap = depth.map
depthMap2 = np.array(depthMap)
f = open("ca_2700.txt","w+b")
pickle.dump(depthMap2,f)
f.close()
-------------------------------------------------
i vari file salvati con pickle sono stati poi trattati con i seguenti programmi (uno ogni 90°, di fatto l'immagine viene centrata e vengono filtrati solo i dati > 0 ed inferiori a 70 cm)
--------------------------------
#!/usr/bin/python
import pickle
import numpy as np
import Image
f = open("ca_000.txt")
data = pickle.load(f)
f.close()
t = 0
for y in range(0,480):
for x in range (0,640):
if ((data[t] < 700) and (data[t]>0)):
print str(x-320)+","+str(y-240)+","+str(660-data[t])
t = t + 1
--------------------------------
#!/usr/bin/python
import pickle
import numpy as np
import Image
f = open("ca_180.txt")
data = pickle.load(f)
f.close()
t = 0
for y in range(0,480):
for x in range (0,640):
if ((data[t] < 700) and (data[t]>0)):
print str(x-320)+","+str(y-240)+","+str(-(660-data[t]))
t = t + 1
--------------------------------
#!/usr/bin/python
import pickle
import numpy as np
import Image
f = open("ca_090.txt")
data = pickle.load(f)
f.close()
t = 0
for y in range(0,480):
for x in range (0,640):
if ((data[t] < 700) and (data[t]>0)):
print str(660-data[t]) + "," + str(y-240) + "," + str(x-320) #non funziona
t = t + 1
#!/usr/bin/python
import pickle
import numpy as np
import Image
f = open("ca_090.txt")
data = pickle.load(f)
f.close()
t = 0
for y in range(0,480):
for x in range (0,640):
if ((data[t] < 700) and (data[t]>0)):
print str(660-data[t]) + "," + str(y-240) + "," + str(x-320) #non funziona
t = t + 1
--------------------------------
#!/usr/bin/python
import pickle
import numpy as np
import Image
f = open("ca_090.txt")
data = pickle.load(f)
f.close()
t = 0
for y in range(0,480):
for x in range (0,640):
if ((data[t] < 700) and (data[t]>0)):
print str(-(660-data[t])) + "," + str(y-240) + "," + str(x-320)
t = t + 1
#!/usr/bin/python
import pickle
import numpy as np
import Image
f = open("ca_090.txt")
data = pickle.load(f)
f.close()
t = 0
for y in range(0,480):
for x in range (0,640):
if ((data[t] < 700) and (data[t]>0)):
print str(-(660-data[t])) + "," + str(y-240) + "," + str(x-320)
t = t + 1
--------------------------------
L'output e' stato dirottato su file testo che poi sono importati in Meshlab.
Nessun commento:
Posta un commento