在matlab上,我如何在rgb图像上绘制质心点?

时间:2013-08-02 20:05:33

标签: matlab

我有一个大约300个质心点的列表。这些点是我拥有的BW图像的conncomps的质心。有没有办法在原始rgb图像上绘制质心点?

1 个答案:

答案 0 :(得分:0)

没问题。有这个简短的脚本:

img = imread('rice.png');
bg = imopen(img,strel('disk',15));
img2 = img - bg;

mask = im2bw(img2, 0.19);
mask = bwareaopen(mask, 40);

cc = bwconncomp(mask, 4);
positionArray = regionprops(cc, {'Centroid'});
positionArray = struct2cell(positionArray);
positionArray = cellfun(@transpose, positionArray, 'UniformOutput',false);
positionArray = cell2mat(positionArray);

imshow(img);
hold on;
scatter(positionArray(1, :), positionArray(2, :), 200, 'g+');

您可以根据需要改变标记尺寸和形状。这种情况下的点存储为2×n矩阵,第一行中的x坐标和第二行中的y坐标。

首先,使用imshow绘制图像本身。然后,调用scatter()。要将两个项目放在同一组轴上,您必须调用保持。