Comment puis-je dessiner un cercle sur une image sous MATLAB?

J'ai une image dans MATLAB:

im = rgb2gray(imread('some_image.jpg');
% normalize the image to be between 0 and 1
im = im/max(max(im));

Et j'ai fait de la transformation qui a abouti à un certain nombre de points que je voudrais souligner:

points = some_processing(im);

points est une matrice de même taille que im avec d'autres points intéressants.

Maintenant je veux dessiner un cercle sur l'image dans tous les lieux où points est 1.

Est-il de toute fonction dans MATLAB qui fait cela? Le mieux que je puisse vous arriver, c'est:

[x_p, y_p] = find (points);

[x, y] = meshgrid(1:size(im,1), 1:size(im,2))
r = 5;

circles = zeros(size(im));

for k = 1:length(x_p)
    circles = circles + (floor((x - x_p(k)).^2 + (y - y_p(k)).^2) == r);
end

% normalize circles
circles = circles/max(max(circles));

output = im + circles;

imshow(output)

Cela semble plus qu'un peu inélégant. Est-il possible de dessiner des cercles similaire à la line fonction?

OriginalL'auteur Nathan Fellman | 2009-12-07