如何通过特定的像素坐标显示连通分量
How to display the connected component through a specific pixel coordinate
我有一个灰度图像 add1
,但是其中只有两个像素强度(黑色为 0,白色为 255)。我能够跟踪我考虑的像素的坐标,即 add1(i,j)
。现在我想显示这个像素所属的连接组件。我已经尝试使用 regionprop
使用 'PixelIdxList'
和 'PixelList'
失败了。
谁能提前帮忙please.Thanks
据我所知,您想要这个:
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,[])
以上执行结果为:
如果我理解你的问题,你想要的是:给定一个特定的坐标 (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
我有一个灰度图像 add1
,但是其中只有两个像素强度(黑色为 0,白色为 255)。我能够跟踪我考虑的像素的坐标,即 add1(i,j)
。现在我想显示这个像素所属的连接组件。我已经尝试使用 regionprop
使用 'PixelIdxList'
和 'PixelList'
失败了。
谁能提前帮忙please.Thanks
据我所知,您想要这个:
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,[])
以上执行结果为:
如果我理解你的问题,你想要的是:给定一个特定的坐标 (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