我已经在这个网站上看到过复杂的边界追踪代码。
我是第一次使用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”获得图像矩阵,我是否可以选择起始点?怎么样?
答案 0 :(得分:1)
是的,您可能错过了起点(或方向)。如果你这样做
imshow(I)
[x, y] = getpts
您将能够使用鼠标指定起点。在Matlab中处理图像时,请注意列和行之间的eternal mix-up!