Insertshape在错误位置绘制填充多边形-Matlab

Insertshape在错误位置绘制填充多边形-Matlab,matlab,Matlab,为什么insertshape函数在错误的位置绘制填充多边形 代码: 在MATLAB中,经常会混淆矩阵索引(i,j),其中i是行号,坐标(x,y),其中x是水平的 必须密切注意文档,查看它是指i和j还是指行和列,还是指x和y 在本例中,返回 边界像素的行和列坐标 需要x和y坐标 因此,要将一个的输出放入另一个,您需要交换B{1}的两列: I=imread('coins.png'); BW=im2bw(I,灰度阈值(I)); [B,L]=BW边界(BW,'noholes'); 边界=B{1}; 边界

为什么insertshape函数在错误的位置绘制填充多边形

代码:


在MATLAB中,经常会混淆矩阵索引
(i,j)
,其中
i
是行号,坐标
(x,y)
,其中
x
是水平的

必须密切注意文档,查看它是指
i
j
还是指行和列,还是指x和y

在本例中,返回

边界像素的行和列坐标

需要x和y坐标

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

I=imread('coins.png');
BW=im2bw(I,灰度阈值(I));
[B,L]=BW边界(BW,'noholes');
边界=B{1};
边界=边界(:,[2,1]);%
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);