Получите POINT CLOUD через 360 градусов вращения и обработки изображений - PullRequest
3 голосов
/ 12 мая 2011

Мой вопрос, как показано ниже, в двух частях ……

ВОПРОС (КОРОТКО):

• Для генерации облака точек объекта реального мира….

• При вращении на 360 градусов ... на вращающемся столе

• Получение 360 изображений ... одно изображение на каждый градус (от 1 ° до 360 °).

• Я знаю, как обрабатывать изображение и получать его значение в пикселях.

• См. Один пример изображения ниже ... вы можете видеть, что изображение черно-белое ... потому что мне приходится иметь дело с очень блестящими (блестящими) объектами ... и это АЛМАЗ. Поэтому я настроил фон так, чтобы блестящий объект (ромб) превращался в черно-белый объект. И поэтому я могу легко сканировать внешний край объекта (например, Diamond).

• И одну вещь, которую нужно учитывать, я не использую лазер ... Я просто использую один вращающийся стол и одну камеру для съемки ... Вы можете увидеть один пример проекта над здесь ... но там MATLAB скрывает все вещи ... потому что этот парень использует MATLAB во встроенной функциональности.

На самом деле я ищу Math рутину или Алгоритм или любую Технику, которая бы помогла мне понять, как получить облако точек ........ используя способ, который я упомянул .........

БОЛЬШЕ РАЗРАБОТКИ:

Мне нужно иметь облако точек объекта реального мира. Итак, я могу отобразить его на экране компьютера.

Для этого я использую один вращающийся стол. Я положу на него свой объект, и я поверну стол на 360 °, и получу 360 изображений ... одно изображение на каждый градус (от 1 ° до 360 °).

Камера для съемки хорошо откалибрована. Я дал один пример изображения, как показано ниже. Я также знаю, как сканировать изображение и получать его значение в пикселях.

Также примите во внимание, что мои изображения Силуэт типа ... означает просто черно-белое ... Нет цветных изображений.

Но моя проблема в том, или где я в ловушке, в ...

Получение облака точек объекта ……. Из данных, которые я получаю при обработке изображения.

Один и тот же проект, который я нашел за здесь …… .. Но он просто использует встроенные функции MATLAB… Я использую Microsoft Visual C # .Net, поэтому мне нужно самому построить весь алгоритм…. Потому что MATLAB скрывает все то, что я хочу знать….

Есть ли какой-нибудь хозяин ... который хорошо знает все это и выводит меня из ловушки ... !!!! enter image description here

Спасибо ... ..

1 Ответ

1 голос
/ 12 мая 2011

У меня нет такого опыта, но если бы я хотел сделать что-то подобное, я бы попробовал это:

  1. Используйте одноцветный источник света
  2. если возможно, создайте источник света, который падает на тонкий вертикальный срез объекта.
  3. имеют 360 черно-белых изображений, эти изображения будут изображениями линии вертикали, имеющей различную интенсивность. Если вы используете matlab, в вашей матрице будет столбец / Несколько со значениями sime.
  4. теперь добавьте строку вертикула (ваша ось вращения). 5 построить или преобразовать (imageno, rownoOfMatrix, ValueInPopulatedColumnInSameRow) ... [Предполагая нумерацию изображения от 0 до 360]
  5. в идеальных условиях. Хромкий способ. Чтобы получить X и Y, используйте K1 * cos imgNo * ValInCol и K1 * sin imgNo * ValInCol, и Z будет некоторым K2 * rowNum. K1 и K2 можно калибровать, зная фактический размер объекта .

Я имею в виду что-то вроде этого: http://fab.cba.mit.edu/content/processes/structured_light/

но вместо использования структурированного света используется один вертикальный источник света

http://www.geom.uiuc.edu/~samuelp/del_project.html Эта ссылка может помочь в триангуляции ...

...