Свежие обсуждения
Прочее

3D модель из фото

1 5

Дал мне руководитель задание, правда, оно не совсем по тематике форума, но я больше не знаю, где можно найти знающих людей!
А задание следующее. Есть некий непрозрачный объект. Его просвечивают рентгеном и получают снимок. На снимке будет виден кубик (толи параллелограмм), размеры которого известны. Он будет служить ориентиром. Через параллелограмм будет проходить «кочерга». Моя задача, используя фото и известные размеры кубика определить размеры кочерги.
- Рисунок -
После небольших размышлений я пришел к выводу, что используя всего 1 проекцию, определить размеры «кочерги» невозможно (или я ошибаюсь?). Руководитель сказал, что если будет доказано, что это невозможно, то они смогут сделать вторую проекцию (снимок под другим углом).
Для начала мне надо научится по фото определять размеры чего-либо, с учетом искажения изображения (т.е. съемка широкоформатным объективом). Как подступить – не имею понятия
Сейчас перерываю книги по высшей математике и геометрии, но пока результат «ноль».
Жду Ваших предложений

 

Если нет никаких данных об ориентации кочерги, определить ее размер невозможно. Однако, из картинки сразу возникает гипотеза, что кочерга параллельна оси y и ее длина -- две грани кубика. Но это лишь одна из возможностей. Надо делать вторую проекцию.

 

По одной проекции - ты ничего не получишь. Сам погляди на рисунок - твоя "кочерга" может быть как полностью перед кубиком, так и полностью за ним, так и частично в нем - причем, двумя способами - когда внутри кубика только ее середина, и когда внутри кубика полностью один ее конец.

Если имеется вторая проекция в перпендикулярной плоскости - все вычисляется без особых проблем. Хуже, если вторая проекция - неперпендикулярна. Там в этом случае необходимо делать какие-то преобразования координат. Ну и если вы имеете "широкофоматный объектив" - то тут, на мой взгляд - все становится вобще сильно замороченным. Необходимо четко представлять все виды искажений, которые он дает, и как-то их учитывать.

 

По моему это задача из курса начерталки. Дочка в прошлом году похожее проходила.

 

А мне кажется, всё определяется легко. Лишь бы эта "кочерга" была параллельна граням куба (это, конечно, не куб, но настоящее название длиннее пишется... )
Похоже, что параллельна.

Тогда чертим две вертикальные линии на любом, но одинаковом, расстоянии от края куба (но внутри его) так, что бы они пересекли кочергу. Естественно, эти линии должны быть параллельны граням куба.
Отрезок, между этими линиями, будет равен длине параллельной грани куба, размеры которой известны. Значит, тот кусок кочерги, который лежит между этими нарисованными линиями будет равен параллельной ему грани куба. Дальше - простая пропорция, из которой вычисляется полная длина кочерги в проекции "Y".

Загнутый конец кочерги, по идее, согнут под углом 90 градусов, по этому, его длину можно найти из той же пропорции, зная размеры горизонтальных граней куба.

Если кочерга не параллельна граням куба, то сначала нужно вычислить угол, между кочергой и параллельной ей гранью. Потом всё вычислять так же, но делая поправку на угол.

 

Можно ещё взять какую то 3D прогу, перенести этот рисунок в неё, и дать команду "повертеть" всё это. Выбрав позицию, когда кочерга станет параллельной экрану монитора, можно линейкой замерять длину кочерги и параллельной ей грани куба. Дальше - та же пропорция, так как станет известно, во сколько раз одно длиннее другого.

 

DWD А мне кажется, всё определяется легко. Лишь бы эта "кочерга"...

Вот-вот... "Лишь бы..."

Если есть подобные условия - то, действительно, все легко определится...

Но насколько я понял, речь идет о заранее неизвестном взаимном расположении элементов и осей.

 

Тогда, просто, усложняется вычисление, так как нужно учитывать и углы (измерить транспортиром... ).
Всё равно, задача решаема. Мне показалось, что именно это и требуется определить - решаема ли задача при наличии только перечисленных фактов.

Возможно, придётся ещё выбирать "точку горизонта". Чертить линии от всех углов и концов рисунка к "горизонту", вычислять дополнительные углы и учитывать проекцию - зависимость кажущегося размера объёкта от расстояния до него.

В общем, не знаю... Пока же, мне кажется, что задача решаема. Просто, при паралельном расположении граней куба и кочерги она решается проще, чем при отсутствии параллельности.

 

Ясь: из картинки сразу возникает гипотеза, что кочерга параллельна оси y и ее длина -- две грани кубика
Это условный рисунок. Кочерга и кубик могут быть сориентированны как угодно, известно только то, что кочерга восновном будет внутри куба и немного выходить за его пределы.

Laryx: Хуже, если вторая проекция - неперпендикулярна
А оня явно будет неперпендикулярна, да и на первой проекции передняя грань не будет паралельна "дисплею".

Laryx: Ну и если вы имеете "широкофоматный объектив" - то тут, на мой взгляд - все становится вобще сильно замороченным
Пока я не имею понятия о типе объектива, знаю только что это будет рентгеновский снимок и это нечто будет просвечиватся в положении удобном для оператора.

MaxS: По моему это задача из курса начерталки
Возможно, но мы до таких сложностей не доходили... да и задачи были "без искажений".

DWD: Лишь бы эта "кочерга" была параллельна граням куба
она не паралельна

DWD: Загнутый конец кочерги, по идее, согнут под углом 90 градусов
90 градусов? не... там явно будет не 90!

DWD: Можно ещё взять какую то 3D прогу, перенести этот рисунок в неё
Допустим Автокад. А кочергу как ввести? Я не знаю ее координат и размеров!

DWD: Мне показалось, что именно это и требуется определить - решаема ли задача при наличии только перечисленных фактов
не совсем, нужно решить эту задачу в реале. Похоже это будут какие то опыты. От меня требуется рабочая программа...

Я поразмышлял и пришел к следующим гипотезам
Возьмем одну проекцию. С кубиком все понятно. А вот с кочергой - не совсем. Когда я на нее смотрю, то я не вижу ее положения в глубину (предположим, горизонталь и вертикаль совпадают с дисплеем).
Исходя из того, что рентген является точечным истоником света и глаз тоже. Тогда, я расчитываю (пока не знаю как) координаты точки излучения (ну и так сказать "глаза"). С этой точки я провожу три прямые в узловые точки кочерги. По этим прямым я строю две плоскости. Я буду смотреть в торец этих плоскостей и видеть ту же кочергу.
Теперь беру вторую проекцию и расчитываю координаты второй точки наблюдения. Срою опять две плоскоси.
При пересечении плоскостей с первой проекции и второй я получу линию - саму кочергу.
Для упрощения я думаю взять один из узлов куба как координату 0,0,0; по граням пойдут соответственно x,y,z.

 

Сергей К: Сейчас перерываю книги по высшей математике и геометрии, но пока результат «ноль».
Да это же чистая начерталка! Любой учебник по начертательной геометрии нужен. Для точного определения положения кочерги в пространстве нужна еще одна проекция под прямым углом (либо сбоку, либо сверху). Достаточно двух проекций. Третья проекция строится на основе первых двух. Еще в 18м веке фр. Гаспар Монж это доказал. На основе его теории и построена начерталка (начертательная геометрия).
Вот: начертательная геометрия изучает законы отображения пространственных объектов и методы преобразования этих отображений на плоском чертеже.