gpt4 book ai didi

matlab - Insertshape 在错误的位置绘制 FilledPolygon - Matlab

转载 作者:行者123 更新时间:2023-12-02 06:02:17 25 4
gpt4 key购买 nike

为什么 insertshape 函数会在错误的位置绘制 FilledPolygon?

代码:

I = imread('coins.png');
BW = im2bw(I, graythresh(I));
[B,L] = bwboundaries(BW,'noholes');
boundary = B{1};
boundary1 = reshape(boundary.',1,[])
newI = insertShape(I,'FilledPolygon',boundary1);
imshow(newI);

最佳答案

在 MATLAB 中,矩阵索引 (i,j) 经常令人困惑,其中 i 是行号,坐标 (x,y),其中 x 是水平的。

密切关注文档非常重要,看看它是否指的是 ij 或行和列,还是指的是 x 和 y .

在本例中,bwboundaries返回

Row and column coordinates of boundary pixels

insertShape需要 x 和 y 坐标。

因此,要将一个的输出放入另一个中,您需要交换 B{1} 的两列:

I = imread('coins.png');
BW = im2bw(I, graythresh(I));
[B,L] = bwboundaries(BW,'noholes');
boundary = B{1};
boundary = boundary(:,[2,1]); % <<< swap columns
boundary1 = reshape(boundary.',1,[]);
newI = insertShape(I,'FilledPolygon',boundary1);
imshow(newI);

关于matlab - Insertshape 在错误的位置绘制 FilledPolygon - Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57119129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com