1

假设我的图像是img=zeros(100,100,3),我的输出是几个椭圆,我使用创建的函数获得[ret]=draw_ellipse(x,y,a,b,angle,color,img),我可以使用显示一个椭圆imshow(ret)。目前,我正在尝试在图像中显示薮椭圆。但我不知道如何编码。'for循环'会起作用还是我需要持有它们?

4

3 回答 3

2

如果这与您在上一个问题中所做的有关,那么您需要做的是将一次迭代的结果作为输入传递给下一次。

因此,假设[ret]=draw_ellipse(x,y,a,b,angle,color,img)您提到的函数将图像作为输入img并返回带有椭圆的相同图像,您可以这样做:

%# ellipses parameters
%#x = {..}; y = {..};
%#a = {..}; b = {..};
%#angle = {..}; color = {..};

img = zeros(200,100,'uint8');     %# image to start with
for i=1:10
    img = draw_ellipse(x{i},y{i}, a{i},b{i}, angle{i}, color{i}, img);
end
imshow(img)
于 2011-10-14T09:31:37.207 回答
0

我有点不确定你想要什么。您想在一张图像中显示多个椭圆,例如使用hold on绘制多个图形?

没有图像的等效命令,但一个简单的解决方案是将椭圆添加到一个图像中并显示一个:

several_ellipse = ellipse1 + ellipse2 + ellipse3;
imshow(several_ellipse)
于 2011-10-14T09:14:22.883 回答
0

大概你想ret作为最终输入传递给下一次调用draw_ellipse.

于 2011-10-14T09:41:18.113 回答