在matlab中进行边界跟踪

时间:2011-03-25 16:22:34

标签: matlab

我已经在这个网站上看到过复杂的边界追踪代码。

我是第一次使用bwtraceboundary的Matlab用户。

此代码曾跟踪过叶子图像的轮廓(虽然没有跟踪叶柄,这是一个较浅的阴影)......在我改变图像大小之前。然后,对于任何图像,我所有的一切都是空白。

我以为我错过了边界的起点,并尝试了不同的值来计算行和放大器。 col(coords.of 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 个答案:

答案 0 :(得分:1)

是的,您可能错过了起点(或方向)。如果你这样做

imshow(I)
[x, y] = getpts

您将能够使用鼠标指定起点。在Matlab中处理图像时,请注意列和行之间的eternal mix-up