-1

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

4

1 回答 1

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 x n 矩阵,其中 x 坐标位于第一行,y 位于第二行。

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

于 2013-08-02T20:15:13.157 回答