Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
polyshape对象概述-Matlab_Matlab - Fatal编程技术网

polyshape对象概述-Matlab

polyshape对象概述-Matlab,matlab,Matlab,我尝试使用以下代码将轮廓转换为多边形对象: clc; clear; RGB = imread('pillsetc.png'); I = rgb2gray(RGB); bw = imbinarize(I); imshow(bw) bw = bwareaopen(bw,30); bw = imfill(bw,'holes'); imshow(bw) [B,L] = bwboundaries(bw,'noholes'); imshow(label2rgb(L, @jet, [.5 .5 .5]

我尝试使用以下代码将轮廓转换为多边形对象:

clc;
clear;

RGB = imread('pillsetc.png');
I = rgb2gray(RGB);
bw = imbinarize(I);
imshow(bw)

bw = bwareaopen(bw,30);
bw = imfill(bw,'holes');
imshow(bw)

[B,L] = bwboundaries(bw,'noholes');

imshow(label2rgb(L, @jet, [.5 .5 .5]))
hold on

for k = 1:length(B)
  outline = B{k};
  plot(outline(:,2), outline(:,1), 'w', 'LineWidth', 2)
end

k=1
outline = B{k};

pgon = polyshape(outline)
plot(pgon)
但当我绘制它时,我以不同的方向进入它,它产生了这个错误:

Warning: Polyshape has duplicate vertices, intersections, or other inconsistencies that may produce inaccurate or unexpected results. Input data has
been modified to create a well-defined polyshape. 
> In polyshape/checkAndSimplify (line 339)
  In polyshape (line 152)
  In polyOut (line 26)
如何解决上述问题(方向和错误)


谢谢

请您解释一下
polyshape
?pillsetc.png,Matlabyeah中的内置图像,我知道了,谢谢;)我的Matlab是2017a,因此它没有
polyshape
函数,错误是
未定义的函数或变量“polyshape”。
。但是为什么要使用
pgon=polyshape(outline)
,因为默认情况下,polyshape函数会将边界拆分为两个不同的边界,以便创建定义良好的多边形。我无法检查,但可能最好使用
pgon=polyshape(outline(:,2),outline(:,1))
,因为
outline
类型及其值。非常感谢您的帮助