2014-03-24 1 views
0

Извините, если мой вопрос еще не был до конца понят ... Я попытаюсь прояснить его, описав мою проблему ...Как преобразовать фигуру в matlab в объект?

У меня есть объект (в бинарном изображении), почти изогнутый и длинный. Я хочу построить линию от ее верхней точки до ее нижней точки, после чего либо заполнить замкнутую область между моей кривой и прямой, чтобы измерить ее площадь, либо найти расстояние между каждой точкой кривой и линией для той же цели ... Я знаю, что его легко построить линию, используя сюжет следующим образом:

imshow(fnnShrink) 
hold on 
plot([TLx , BRx ],[TLy ,BRy],'-', 'MarkerFaceColor' , 'b') 
hold off 

Который дал мне хорошую цветную линию (в фигуре MATLAB), но проблема, которую я couldnot выполнять любые Measurment на этой линии (его для показа только). Даже при попытке обработчика, как сказал мне один из знакомых, он все равно дает мне длину строки (не полезно). Одним из решения я попытался это сделать линию по моим сам, установив пиксель 1, используя уравнение линии и создать новый объект строки в изображении следующим образом:

m = (TLy - BRy)/(TLx - BRx); % Always Same 
    for i = TLx : 1 : BRx 
     fnnShrink(round(m * (i - TLx) + TLy) , round(i)) = 1; 
     fTest(round(m * (i - TLx) + TLy) , round(i)) = 1; 
    end 

Эта работа решение в какой-то образ, если на расстоянии (между верхним и нижним) (по оси X) относительно велика, проблема в том, что расстояние очень мало (наклон отрицательный). Я получил только дискретную линию, а не непрерывную (группа точек между верхней и нижней точками) ... что моя проблема .. и, пожалуйста, помогите мне, если вы можете ...

+1

Не могли бы вы опубликовать код, который вы имеете до сих пор, пытались ли вы функцию "imline? http://www.mathworks.com/help/images/ref/imline.html –

+0

Уважаемый пользователь, я думаю, что работа в качестве одного и того же принципа графика ... – user3455597

+0

Нет, 'imline' позволяет рисовать линию на изображении и возвращает позицию линии. Но теперь, когда вы редактировали свой вопрос, это не похоже на то, что вам нужно. –

ответ

-1

Собственно, imshow, как и вся функция построения в Matlab, не только показывает график. Он также возвращает дескриптор (эквивалент matlab указателя) к созданному объекту. Таким образом, вам просто нужно

new_object = imshow(...) 

вместо того, чтобы просто imshow

+0

Я не вижу, как это связано с вопросом. –

+0

вы не видите, как «изображение есть объект AN в Matlab» связано с вопросом «как я могу преобразовать изображение в объект» ??? В самом деле??? –

+0

Дорогой blue_note, я пробовал то, что вы говорите, но он просто дает мне длину строки в моем случае ... – user3455597

 Смежные вопросы

  • Нет связанных вопросов^_^