Трассировка границ в Matlab - PullRequest
0 голосов
/ 25 марта 2011

Я уже видел сложные коды для отслеживания границ на этом сайте.

Я первый раз пользуюсь Matlab, с небольшим кодом с bwtraceboundary.

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

Я думал, что пропустил начальную точку границы, и пробовал разные значения для вычисления строки & col (скоординированных значений start pt., но никто не работал.Можете ли вы помочь мне отследить лист с его стеблем, пожалуйста?

Код:

I = imread('C:\...\images3.jpg');
imshow(I)
BW = im2bw(I);
imshow(BW)
dim = size(BW)
col = round(dim(2))-90;
row = min(find(BW(:,col)))
boundary = bwtraceboundary(BW,[row, col],'N');
imshow(I)
hold off;
plot(boundary(:,2),boundary(:,1),'b','LineWidth',1);

Предположим, матрица изображения получается путем ввода 'I' в командном окне, смогу ли явыбрать стартовый пункт?Как?

1 Ответ

1 голос
/ 25 марта 2011

Да, вы можете пропустить начальную точку (или направление).Если вы сделаете

imshow(I)
[x, y] = getpts

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...