2016-08-10 8 views
0

У меня есть набор дискретных точек в 2D, которые должны вычислять внутреннюю область, или просто длину и высоту, не имеет значения, очевидно. Но вопрос в этом вопросе; не обязательно у нас острые края, которые формируют внутреннюю поверхность. Я пробовал команды boundary и inpolygon, но, похоже, они не подходят для этой проблемы. Как насчет краев, которые у нас нет прямых ребер, таких как дуги или полукруги.Вычисление области дискретных точек в Matlab

https://drive.google.com/file/d/0B-DuVkE6qbU3ZnJsbWdQNjVmVkk/view?usp=sharing

The файлов, расположенных внутри ссылке:

  • Файл 1 состоят из XYZ координаты плюс интенсивность (поставляется лазерными отсканированных данных) значения
  • Файл 2 состоит из XYZ координаты плюс интенсивность , а все значения Z и интенсивности фиксируются через файл.
  • Рисунки 1-1, 1-2, 1-3, 1-4 представляют данные в 3D с соответствующими значениями интенсивности. Различные значения интенсивности отображают различные материалы. Белые стрелки демонстрируют глубину различных частей сегмента.
  • Рисунок 2-1, 2-2 представляют данные в 2D только с одним значением интенсивности. Фактически, на этом этапе 3D-данные проецировались в 2D, и все значения интенсивности изменялись только на одно значение, кроме того, внутренняя часть окна была удалена. Область внутренней части представляет интерес для расчета.

Это был вызов для меня! Может ли кто-нибудь посоветовать, пожалуйста?

+1

Точка, по определению, что-то с нуля площадь. Если вы не имеете в виду что-то еще, и вы не показываете его. Эта обработка изображений? мы можем видеть изображения? Что вы пробовали? –

+0

Не могли бы вы посоветовать, как я могу загрузить снимок экрана или файл ascii? На самом деле это не структура изображения, т. Е. Не формат пикселей. это просто дискретные точки, означает координаты x, y, но, очевидно, не связаны. – Sophia

+0

В редакторе вопросов у вас есть кнопка для загрузки изображений.Или вы можете загрузить изображение на внешний сайт и предоставить ссылку (есть кнопка для ссылок также) –

ответ

0

Может быть, вы можете использовать imclose, imdilate или imerode функции для того, чтобы получить уникальный «объект», а затем вы можете вычислить площадь путем суммирования всех значений Diferent от 0 или 255, в зависимости от вашей реализации. Я предполагаю, что изображение черно-белое, иначе конвертируйте его в первую очередь. Matlab документация:

+0

Дорогой RCaetano, Я предоставил ссылку на данные, а также больше объяснений проблемы. – Sophia

+0

Это не проблема изображения. В файле ascii имеются координаты xyz плюс значение интенсивности. Интенсивность является свойством точки, связанной с некоторыми параметрами, такими как материал. – Sophia

0

Если точки находятся координаты вершин многоугольника, то вы можете использовать polyarea вернуть область это полигон.

Ex:

Area = polyarea(pointsX, pointsY) 

Примите во внимание, что порядок точек материи, и они должны образовывать правильный многоугольник (сегменты не должны пересекаться)

+0

Уважаемый Семемей, я предоставил ссылку на данные, а также больше объяснений проблемы. – Sophia

+0

Как видно из файла ascii, нет особого порядка между точками, записанными для сборки файла ascii. Они были записаны случайным образом. – Sophia

+0

Вы можете поместить порог в координату Z (глубина). поэтому вы закончите с двоичным изображением с объектами на определенной глубине. Если у вас есть бинарное изображение, вам, вероятно, понадобится морфология для его очистки, а затем вы можете использовать 'bwarea'. Взгляните на http://ch.mathworks.com/help/images/ref/bwarea.html –