mercoledì 22 dicembre 2021

PFM2PLY

Un programmino un Python per convertire le mappe di profondita' di MiDaS dal formato PFM al formato PLY (GitHub)




import utils
import pandas as pd
import numpy as np
from PIL import Image
from plyfile import PlyData, PlyElement

immagine = 'firenze-aerea'
molt = 20

ottico = Image.open(immagine+'.jpeg')
ottico = ottico.convert('RGB')
(data,scale) = utils.read_pfm(immagine+'.pfm')
df = pd.DataFrame(data)

x = np.zeros(ottico.width*ottico.height)
y = np.zeros(ottico.width*ottico.height)
z = np.zeros(ottico.width*ottico.height)
red = np.zeros(ottico.width*ottico.height)
green = np.zeros(ottico.width*ottico.height)
blue = np.zeros(ottico.width*ottico.height)

posizione = 0

for j in range (1,ottico.width):
for k in range (1,ottico.height):
RGB = ottico.getpixel((ottico.width-j,ottico.height-k))
x[posizione] = k
y[posizione] = j
z[posizione] = df.values[k,j]*molt
red[posizione] = RGB[0]
green[posizione] = RGB[1]
blue[posizione] = RGB[2]
posizione = posizione+1

vertices = np.empty(ottico.width*ottico.height, dtype=[('x', 'f4'), ('y', 'f4'), ('z', 'f4'), ('red', 'u1'), ('green', 'u1'), ('blue', 'u1')])
vertices['x'] = x.astype('f4')
vertices['y'] = y.astype('f4')
vertices['z'] = z.astype('f4')
vertices['red'] = red.astype('u1')
vertices['green'] = green.astype('u1')
vertices['blue'] = blue.astype('u1')

ply = PlyData([PlyElement.describe(vertices, 'vertex')], text=False)
ply.write(immagine+".ply")

Nessun commento:

Posta un commento

Hypersoil su campioni Mugello

Durante la tesi di dottorato avevo provato a determinare il contenuto di CaCO3 in suoli naturali basandomi solo sul picco di assorbimento ca...