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
类型及其值。非常感谢您的帮助