Я пытаюсь преобразовать топль .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
Проблемы точности преобразования E57 в LAS в Python с использованием pye57 и laspy ⇐ Python
Программы на Python
1737694604
Anonymous
Я пытаюсь преобразовать топль .e57 в. Следующие изображения иллюстрируют исходный .e57 в CloudCompare, по сравнению с преобразованным файлом .las также в CloudCompare. Размер точки значительно увеличивается для сравнения различий. : //i.sstatic.net/gopg2.png "/>
[b] преобразованный las [/b]
Как видно, что точки расположены в каком -то сетке в файле 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")
Подробнее здесь: [url]https://stackoverflow.com/questions/77308057/conversion-accuracy-issues-of-e57-to-las-in-python-using-pye57-and-laspy[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия