我有一个灰度图像add1
,但它只有两个像素强度(0表示黑色,255表示白色)。我能够跟踪我的考虑像素的坐标,即add1(i,j)
。现在我想显示这个像素所属的连通分量。我已使用regionprop
使用'PixelIdxList'
和'PixelList'
无效地尝试了它
请有人帮帮忙。谢谢。
答案 0 :(得分:2)
据我所知,你想要这个:
clc
clear all
close all
im = imread('labelProb.png');
im = im2bw(im);
labelIm = bwlabel(im);
rg = regionprops(im,'PixelIdxList','Centroid');
figure,imshow(labelIm,[]),hold on
for i = 1:length(rg)
cc = rg(i).Centroid;
text(cc(1),cc(2),['label: ',num2str(i)],'Color','b','FontSize',9)
end
f = getframe();
lab = frame2im(f);
hold off
% suppose you want label number 3 only.
cc = rg(3).Centroid; % this is your pixel index;
% Extract label number through this index.
cc = round(cc);
labelNumber = labelIm(cc(2),cc(1));
% create a new blank image.
blankImage = false(size(im));
for i = 1:length(rg)
if i == labelNumber
blankImage(rg(i).PixelIdxList) = true;
end
end
figure,imshow(blankImage,[])
以上执行的结果是:
答案 1 :(得分:1)
如果我理解你的问题,你想要的是:给定一个特定的坐标(i,j)
什么是标签,以及(i,j)
所属的连接组件的掩码。
add = bwlabel( add1 ); %// convert to label mask
lij = add(i,j); %// get the label to which i,j belongs to
figure;
imshow( add == lij, [] ); %// select only the relevant label