Closed estebanrdo closed 1 year ago
La cabecera del fichero PLY procedente de la densificación MVS es:
ply
format binary_little_endian 1.0
element vertex 2711873
property float32 x
property float32 y
property float32 z
property uint8 red
property uint8 green
property uint8 blue
property float32 nx
property float32 ny
property float32 nz
end_header
Si este fichero se abre y se salva desde CloudCompare la cabecera es la siguiente:
ply
format binary_little_endian 1.0
comment Created by CloudCompare v2.12.4 (Kyiv)
comment Created 2023-01-09T13:12:02
obj_info Generated by CloudCompare!
element vertex 2711966
property float x
property float y
property float z
property uchar red
property uchar green
property uchar blue
property float nx
property float ny
property float nz
end_header
Posibles soluciones:
Finalmente se ha optado por modificar el código de PoissonRecon para que permita los tipos float32 y uint8 en la cabecera. Se modificó la función FromPlyType para permitir los tipos que faltaban. En concreto se han añadido:
La función FromPlyType queda de la siguiente forma:
TypeOnDisk FromPlyType( int plyType )
{
switch( plyType )
{
case PLY_INT: return TypeOnDisk::INT;
case PLY_UINT: return TypeOnDisk::UINT;
case PLY_CHAR: return TypeOnDisk::CHAR;
case PLY_UCHAR: return TypeOnDisk::UCHAR;
case PLY_FLOAT: return TypeOnDisk::FLOAT;
case PLY_DOUBLE: return TypeOnDisk::DOUBLE;
case PLY_INT_8: return TypeOnDisk::CHAR;
case PLY_UINT_8: return TypeOnDisk::UCHAR;
case PLY_INT_32: return TypeOnDisk::INT;
case PLY_UINT_32: return TypeOnDisk::UINT;
case PLY_FLOAT_32: return TypeOnDisk::FLOAT;
default: ERROR_OUT( "Unrecognized type: " , plyType );
}
return TypeOnDisk::UNKNOWN;
}
Cuando se realiza la densificación con MVS el fichero PLY resultante no es compatible con PoissonRecon.