Проблемы точности преобразования E57 в LAS в Python с использованием pye57 и laspyPython

Программы на Python
Ответить
Anonymous
 Проблемы точности преобразования E57 в LAS в Python с использованием pye57 и laspy

Сообщение Anonymous »

Я пытаюсь преобразовать топль .e57 в. Следующие изображения иллюстрируют исходный .e57 в CloudCompare, по сравнению с преобразованным файлом .las также в CloudCompare. Размер точки значительно увеличивается для сравнения различий. : //i.sstatic.net/gopg2.png "/>
преобразованный las

Как видно, что точки расположены в каком -то сетке в файле LAS. Осмотр файла LAS в Potree выявляет проблему на значительном уровне. См. Изображение ниже.

my my Код для преобразования E57 в LAS размещен ниже. Если у кого-то есть какое-либо представление о том, почему это происходит и почему точки кажутся выравниваемыми сеткой, тогда я бы был рад услышать больше. ">import numpy as np
import pye57
import laspy

e57 = pye57.E57("in.e57")

# read scan at index 0
data = e57.read_scan(index=0, ignore_missing_fields=True, colors=True, intensity=True)

# 'data' is a dictionary with the point types as keys
assert isinstance(data["cartesianX"], np.ndarray)
assert isinstance(data["cartesianY"], np.ndarray)
assert isinstance(data["cartesianZ"], np.ndarray)

# other attributes can be read using:
# data = e57.read_scan(0, intensity=True, colors=True, row_column=True)
assert isinstance(data["cartesianX"], np.ndarray)
assert isinstance(data["cartesianY"], np.ndarray)
assert isinstance(data["cartesianZ"], np.ndarray)
assert isinstance(data["intensity"], np.ndarray)
assert isinstance(data["colorRed"], np.ndarray)
assert isinstance(data["colorGreen"], np.ndarray)
assert isinstance(data["colorBlue"], np.ndarray)

# the ScanHeader object wraps most of the scan information:
header = e57.get_header(0)
print(header.point_count)
print(header.rotation_matrix)
print(header.translation)

# all the header information can be printed using:
for line in header.pretty_print():
print(line)

# Create a new LAS file
las_out = laspy.create(point_format=3, file_version='1.2')

# Populate the LAS file with point cloud data
print(data["cartesianX"])
las_out.x = data["cartesianX"]
las_out.y = data["cartesianY"]
las_out.z = data["cartesianZ"]
las_out.intensity = data["intensity"]
las_out.red = data["colorRed"]
las_out.green = data["colorGreen"]
las_out.blue = data["colorBlue"]

# Close the LAS file
las_out.write("output/out.las")


Подробнее здесь: https://stackoverflow.com/questions/773 ... -and-laspy
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»