【发布时间】:2010-12-24 01:31:24
【问题描述】:
我在 MATLAB 中有一张图片:
im = rgb2gray(imread('some_image.jpg');
% normalize the image to be between 0 and 1
im = im/max(max(im));
我已经进行了一些处理,得出了一些我想强调的要点:
points = some_processing(im);
其中points 是一个与im 大小相同的矩阵,其中有趣的点为矩阵。
现在我想在图片上所有points为1的地方画一个圆圈。
MATLAB 中是否有任何函数可以做到这一点?我能想到的最好的是:
[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)
这似乎有点不雅。有没有类似于line函数的画圆的方法?
【问题讨论】:
标签: image matlab plot geometry