【发布时间】:2014-11-16 00:19:20
【问题描述】:
我想在二进制图像中的单元格周围绘制椭圆形。到目前为止,我尝试使用下面显示的代码在二进制图像中的单元格周围绘制椭圆。在代码中,IBord 是二进制图像。代码在单元格周围成功绘制了椭圆形状。
s = regionprops(IBord, 'Orientation', 'MajorAxisLength', 'MinorAxisLength', 'Eccentricity', 'Centroid');
figure(2);
imshow(IBord)
phi = linspace(0,2*pi,50);
cosphi = cos(phi);
sinphi = sin(phi);
for k = 1:length(s)
xbar = s(k).Centroid(1);
ybar = s(k).Centroid(2);
a = s(k).MajorAxisLength/2;
b = s(k).MinorAxisLength/2;
theta = pi*s(k).Orientation/180;
R = [ cos(theta) sin(theta)
-sin(theta) cos(theta)];
xy = [a*cosphi;b*sinphi];
xy = R*xy;
X = xy(1,:) + xbar;
Y = xy(2,:) + ybar;
plot(X,Y,'r','LineWidth',2);
end
请建议我如何修改此代码以在二进制图像中的单元格周围绘制椭圆形(蛋形)。
【问题讨论】:
-
尝试使用 egg-functions,例如这里:mathematische-basteleien.de/eggcurves.htm 或这里:geocities.jp/nyjp07/Egg/index_egg_E.html
标签: matlab matlab-figure