2011-10-14 113 views
1

假設我的圖像是img=zeros(100,100,3),我的輸出是幾個橢圓,我使用創建的函數[ret]=draw_ellipse(x,y,a,b,angle,color,img),我可以使用imshow(ret)顯示一個橢圓。目前,我試圖在圖像中顯示橢圓橢圓。但我不知道如何編碼。將'for循環'工作或我需要持有他們?Matlab:如何在同一圖像中顯示多個輸出?

回答

2

如果這是關係到你在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) 
+0

非常感謝!Amro,你的回答正是我想要的。你在這方面幫了我很多。 – Elsie

+0

如果我想設置一個橢圓中心點座標的隨機序列值,假設'x = rand(1,10)* 100'和'y = rand(1,10)* 100',我怎麼能把它們到'{}'?我缺乏關於「{}」和「[]」之間區別的知識。 – Elsie

+0

@Ivy:如果你想訪問一個向量/矩陣的元素,使用括號'x(i)',因爲單元格數組使用大括號'x {i}'。要在兩者之間進行轉換,您可以使用CELL2MAT,NUM2CELL,MAT2CELL等功能...請務必閱讀文檔以獲取更多信息。在這種情況下,向量將工作得很好,不需要單元陣列 – Amro

0

我有點不確定你想要什麼。你想在一個圖像中顯示多個橢圓,如使用hold on來繪製多個圖形?

沒有爲圖像沒有相應的命令,但一個簡單的解決方案是將橢圓加入到一個圖像,並顯示一個:

several_ellipse = ellipse1 + ellipse2 + ellipse3; 
imshow(several_ellipse) 
0

你大概想通過ret作爲最後輸入下一個電話draw_ellipse

相關問題