Why doesn't bwconncomp detect each connected component as expected?
3 次查看(过去 30 天)
显示 更早的评论
Hi everyone!
I have the following binary image M
I have a problem with bwconncomp. My aim is to generate Voronoi diagrams using as input not single points but blobs/connected components. However the command bwconncomp fails to detect each connected component as expected; as you can see from the following figure, it seems to calculate the centroid of every cluster of pixels, which is not what I want because I would obtain the voronoi diagram around the yellow shapes of the first figure, not around a single centroid point. How can I solve this? I attach an extract of my code and a zip file containing the functions and the main code called codice_gvd.m. Thanks in advance
%% Pose
% Initial Pose
xs = 70; ys = 76; % valori iniziali 55 e 33
% Goal Pose
xg = 50; yg = 50; % valori iniziali 50 e 50
% Pose Matrix
pose = zeros(sz(1),sz(2));
pose(ys,xs) = 1;
pose(yg,xg) = 1;
%% Voronoi Road Map
figure('color','k');
hold on;
set(gcf, 'InvertHardCopy', 'off');
CC = bwconncomp(M);
p = CC.PixelIdxList;
m = zeros(length(p), 2);
for ii = 1:length(p)
[r, c] = ind2sub(size(M), p{ii});
m(ii,:) = [mean(c), mean(r)];
end
voronoi(m(:,1), m(:,2));
title({'Voronoi Road Map';'* - Represents Starting and Goal Position '},'color','w');
spy(pose,'*r')
2 个评论
Walter Roberson
2022-6-6
CC = bwconncomp(hit);
we need hit for testing purposes. Also if hit is derived from something else it would help to see the logic chain
回答(1 个)
Image Analyst
2022-6-6
Your binary image, hit, is a 1-D vector, not really an image. So not sure why you seem to be expecting that it's a 2-D image.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 3-D Volumetric Image Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!