Конвертировать 2D изображение в 3D модель
Есть ли способ конвертировать 2D-изображение, полученное с помощью обычной веб-камеры, в 3D-модель? Я использую C#, поэтому любой алгоритм, основанный на C#, будет полезен.
4 ответа
Это активная тема исследования, и это далеко не просто.
Make3D использовал контролируемое обучение (одна из форм искусственного интеллекта) для вычисления огромного количества коэффициентов. Затем они используются для оценки карты глубины по изображениям.
У них есть некоторый код на их сайте, но это для Matlab, а не C#.
Я хочу сказать "Распечатай", так как плоскость означает плоскую поверхность в трехмерном мире, как лист бумаги.
Но на самом деле вы просто хотите указать значение третьего измерения для каждой точки. Так что решите, где в вашем трехмерном пространстве вы хотите, чтобы он был, и сделайте необходимые математические расчеты. Например, если вы хотите, чтобы это было на "стене", тогда сопоставьте свои координаты x,y вместо x, 0, z.
-редактировано для нового вопроса...
Вам нужно выяснить, как далеко каждая точка находится от камеры. Это очень трудно сделать, так как камера не может определить, как далеко прошел свет.
Не без какой-либо дополнительной информации.
Вы можете проецировать 2-мерное изображение на смоделированную 3D-поверхность. примечание: смешно говорить "3d самолет", так как самолет обычно 2d.
Если у вас есть несколько изображений высокого (среднего) качества, снятых с разных позиций камеры, это возможно. Этот процесс называется "структура из движения"
http://en.wikipedia.org/wiki/Structure_from_motion
и обычно включают в себя очень тяжелый и сложный расчет. Единственным исключением является случай, если изображения сняты стереокамерой или выровненными камерами из фиксированных предопределенных положений. Нет способа сделать это в C#. C# довольно бесполезен для приложений компьютерного зрения. Для этого есть библиотеки GPL с открытым исходным кодом, такие как Bundler и PMVS.
http://phototour.cs.washington.edu/bundler
Отслеживание рук - это другие довольно разные задачи, в некотором смысле не менее сложные, хотя структура грубой силы от движения может работать для отслеживания рук. Существует несколько подходов для точного отслеживания рук, некоторые основаны на модели активной формы или модели активного внешнего вида, более простые основаны на отслеживании характерных точек, которые могут работать в вашем случае. Но даже самый простой подход довольно сложен и на него нельзя положиться в одном посте. Вы можете Google, там может быть открытая библиотека для отслеживания рук тоже.