Forum

Author Topic: ОБРАТНАЯ ПРОЕКЦИЯ  (Read 2594 times)

Lapin

  • Newbie
  • *
  • Posts: 13
    • View Profile
ОБРАТНАЯ ПРОЕКЦИЯ
« on: December 21, 2016, 08:41:58 PM »
Здравствуйте, Алексей!

Возможно ли средствами сценария пайтона репроекция текстуры с тектурированной модели на камеры (или импортированные камеры) с возможностью сохранения перепроецированных фото. В смысле спроецировать модель на камеры и сохранить в картинки.

Спасибо.










Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 10166
    • View Profile
Re: ОБРАТНАЯ ПРОЕКЦИЯ
« Reply #1 on: December 21, 2016, 08:59:23 PM »
Добрый день,

Если я правильно понял вопрос, то это можно сделать следующим образом:

Code: [Select]
model = chunk.model
camera = chunk.cameras[0] #для первой камеры
image = model.renderImage(camera.transform, camera.sensor.calibration)
image.save(path)

В принципе, подобным образом можно генерировать рендер модели и с других точек, не соответствующих положениям камер.
Best regards,
Alexey Pasumansky,
AgiSoft LLC

Lapin

  • Newbie
  • *
  • Posts: 13
    • View Profile
Re: ОБРАТНАЯ ПРОЕКЦИЯ
« Reply #2 on: December 21, 2016, 10:14:28 PM »
Спасибо огромное, Алексей!

 Жаль не могу сейчас проверить. А разрешение картинки зависит от разрешения камеры/фото или разрешения экрана?

И второй вопрос. Рендер модели с других точек будет ли отличаться от простого скриншота и как будет выглядеть сценарий для  рандомных точек обзора?

Спасибо.
« Last Edit: December 21, 2016, 10:23:24 PM by Lapin »

Lapin

  • Newbie
  • *
  • Posts: 13
    • View Profile
Re: ОБРАТНАЯ ПРОЕКЦИЯ
« Reply #3 on: December 21, 2016, 11:29:57 PM »
Выдаёт ошибку:

Traceback (most recent call last):
  File "F:/Test.py", line 1, in <module>
    model = chunk.model
NameError: name 'chunk' is not defined
>>>
« Last Edit: December 21, 2016, 11:42:02 PM by Lapin »

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 10166
    • View Profile
Re: ОБРАТНАЯ ПРОЕКЦИЯ
« Reply #4 on: December 21, 2016, 11:47:59 PM »
Нужно определить переменную chunk.

Для активного блока это chunk = PhotoScan.app.document.chunk
Best regards,
Alexey Pasumansky,
AgiSoft LLC

Lapin

  • Newbie
  • *
  • Posts: 13
    • View Profile
Re: ОБРАТНАЯ ПРОЕКЦИЯ
« Reply #5 on: December 22, 2016, 12:01:05 AM »
Алексей, напишите пожалуйста полный, работающий в Вашем случае скрипт. У меня еррорит.))

Спасибо.

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 10166
    • View Profile
Re: ОБРАТНАЯ ПРОЕКЦИЯ
« Reply #6 on: December 22, 2016, 12:11:33 AM »
Code: [Select]
import PhotoScan

path = PhotoScan.app.getSaveFileName("Specify export file:")
chunk = PhotoScan.app.document.chunk
model = chunk.model
camera = chunk.cameras[0]
image = model.renderImage(camera.transform, camera.sensor.calibration)
image.save(path)
Best regards,
Alexey Pasumansky,
AgiSoft LLC

Lapin

  • Newbie
  • *
  • Posts: 13
    • View Profile
Re: ОБРАТНАЯ ПРОЕКЦИЯ
« Reply #7 on: December 22, 2016, 12:15:10 AM »
Спасибо огромное, Алексей! Очень выручили.)

С

Lapin

  • Newbie
  • *
  • Posts: 13
    • View Profile
Re: ОБРАТНАЯ ПРОЕКЦИЯ
« Reply #8 on: December 22, 2016, 01:44:34 AM »
Алексей, проясните, пожалуйста ещё этот вопрос:

И второй вопрос. Рендер модели с других точек будет ли отличаться от простого скриншота и как будет выглядеть сценарий для  рандомных точек обзора?

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 10166
    • View Profile
Re: ОБРАТНАЯ ПРОЕКЦИЯ
« Reply #9 on: December 22, 2016, 12:50:14 PM »
Добрый день,

Параметрами к функции rednerImage() передаётся матрица трансформации 4х4, определяющая положение виртуальной камеры в пространстве (во внутренней системе координа чанка) и её вращение, а также калибровка, которая будет использована для этой камеры.
То есть, в принципе, можно добиться серьёзных дисторсий отрендеренного изображения, манипулируя значениями калибровки. В то время как скриншот даст ровно то, что есть на экране - обратите внимание, что опция Capture View доступна как из интерфейса программы (контекстного меню Model view), так и через Python - с помощью функции PhotoScan.app.captureModelView()
Best regards,
Alexey Pasumansky,
AgiSoft LLC

Lapin

  • Newbie
  • *
  • Posts: 13
    • View Profile
Re: ОБРАТНАЯ ПРОЕКЦИЯ
« Reply #10 on: December 22, 2016, 02:25:34 PM »
Спасибо, Алексей. У Вас безукоризненная поддержка пользователей. Очень приятно.

С уважением,
Стив.

Lapin

  • Newbie
  • *
  • Posts: 13
    • View Profile
Re: ОБРАТНАЯ ПРОЕКЦИЯ
« Reply #11 on: February 08, 2017, 08:51:37 PM »
Добрый день, Алексей.
Скажите , возможно ли с помощью сценария записать видео облёта модели, как это реализовано у RC?

Спасибо.

Alexey Pasumansky

  • Agisoft Technical Support
  • Hero Member
  • *****
  • Posts: 10166
    • View Profile
Re: ОБРАТНАЯ ПРОЕКЦИЯ
« Reply #12 on: February 08, 2017, 09:12:25 PM »
В настоящее время рекомендуемый вариант - это экспорт TLS модели в Agisoft Viewer, однако, для создания собственного трека потребуется его импортировать из стороннего софта, например, из Blender. Однако, в любом случае опция рендеринга не поддерживается, поэтому запись можно осуществить только через захват экрана.

Реализовать движение камеры прямо в PhotoScan теоретически возможно, т.к. есть доступ через Python к PhotoScan.app.viewpoint, но это может быть неоправданно сложным.

Best regards,
Alexey Pasumansky,
AgiSoft LLC

Lapin

  • Newbie
  • *
  • Posts: 13
    • View Profile
Re: ОБРАТНАЯ ПРОЕКЦИЯ
« Reply #13 on: February 08, 2017, 10:11:23 PM »
Спасибо, Алексей за ответ. Будем думать как добиться желаемого "малой кровью".))