【发布时间】:2011-10-14 08:52:29
【问题描述】:
假设我的图像是img=zeros(100,100,3),我的输出是几个椭圆,我使用创建的函数[ret]=draw_ellipse(x,y,a,b,angle,color,img) 获得,我可以使用imshow(ret) 显示一个椭圆。目前,我正在尝试显示薮椭圆在图像中。但我不知道如何编码。 “for循环”会起作用还是我需要持有它们?
【问题讨论】:
假设我的图像是img=zeros(100,100,3),我的输出是几个椭圆,我使用创建的函数[ret]=draw_ellipse(x,y,a,b,angle,color,img) 获得,我可以使用imshow(ret) 显示一个椭圆。目前,我正在尝试显示薮椭圆在图像中。但我不知道如何编码。 “for循环”会起作用还是我需要持有它们?
【问题讨论】:
如果这与您在 previous question 中所做的事情有关,那么您需要做的是将一次迭代的结果作为输入传递给下一次迭代。
因此假设您提到的函数[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)
【讨论】:
x(i),对于元胞数组,请使用大括号 x{i}。要在两者之间进行转换,您可以使用 CELL2MAT、NUM2CELL、MAT2CELL 等函数……请务必阅读文档以获取更多信息。在这种情况下,向量可以正常工作,不需要元胞数组
我有点不确定你想要什么。您想在一张图像中显示多个椭圆,例如使用hold on 绘制多个图形?
图像没有等效的命令,但一个简单的解决方案是将椭圆添加到一张图像中并显示该图像:
several_ellipse = ellipse1 + ellipse2 + ellipse3;
imshow(several_ellipse)
【讨论】:
大概您想将ret 作为最终输入传递给对draw_ellipse 的下一次调用。
【讨论】: