Matlab: Как я могу отобразить несколько выходов на одном изображении? - PullRequest
1 голос
/ 14 октября 2011

Скажем, мое изображение img=zeros(100,100,3), мои выходы представляют собой несколько эллипсов, которые я получаю, используя созданную функцию [ret]=draw_ellipse(x,y,a,b,angle,color,img), я могу отобразить один эллипс, используя imshow(ret). На данный момент я пытаюсь показать сервный эллипс на изображении. Но я не знаю, как это кодировать. сработает ли «цикл» или мне нужно их удержать?

Ответы [ 3 ]

2 голосов
/ 14 октября 2011

Если это связано с тем, что вы делали в своем предыдущем вопросе , то вам нужно передать результат одной итерации в качестве входных данных для следующей.

Таким образом, предполагая, что упомянутая вами функция [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 голосов
/ 14 октября 2011

Предположительно, вы хотите передать ret в качестве окончательного ввода для следующего вызова на draw_ellipse.

0 голосов
/ 14 октября 2011

Я немного не уверен в том, что вы хотите. Вы хотите показать несколько эллипсов на одном изображении, например, построить несколько графиков, удерживая на ?

Не существует эквивалентной команды для изображений, но простое решение состоит в том, чтобы добавить эллипсы в одно изображение и показать, что одно:

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