Agisoft Metashape
Agisoft Metashape => Other Languages => Topic started by: lelic on August 24, 2017, 09:06:53 AM
-
Добрый день.
Хотел получить получить координаты фигуры, поскольку я начинающий программист на Python, что то идет не так.
При попытке получить название Shape выдает ошибку
import PhotoScan
doc = PhotoScan.app.document
ss = doc.chunk.shapes
for sp in ss:
print(sp.label)
#for ver in sp.vertices:
Консоль
AttributeError: 'PhotoScan.Shape' object has no attribute 'label'
Где я что упустил помогите пожалуйста.
Версия программы 1.2.5 (2680)
-
Здравствуйте,
в версии 1.3.3 Ваш код будет работать. Возможно, в старой версии не было доступа к названиям шейпов через Python.
Координаты Вы можете получить следующим образом:
for ver in sp.vertices:
print(ver)
Каждая вершина - это двух- или трёх-компонентный вектор, в зависимости от того, если ли высота для вершин или нет (sp.has_z == True).
-
В качестве справочника я использую photoscan_python_api_1_2_5.pdf для версии программы 1.2.5
import PhotoScan
doc = PhotoScan.app.document
ss = doc.chunk.shapes
for sp in ss:
#print(sp.label)
for ver in sp.vertices:
print(ver)
Но этот код тоже выдает ошибку
AttributeError: 'PhotoScan.Shape' object has no attribute 'vertices'
Почти использование всех атрибутов выдает эту " object has no attribute"
Может я неправильно выбираю шейпы?
-
Только что проверил на финальном релизе версии 1.2 (1.2.6) - данный код отработал корректно, включая и доступ к названию шейпов.
-
Спасибо Алексей!
Так я понял на версии 1.2.5 эти атрибуты еще не реализованы, если даже реализованы они сырые.
Ну чтож, будем пробовать на новых версиях.