MATLAB:在二进制图像中找到按像素位置连接的分量

时间:2016-06-05 16:50:59

标签: matlab binary components line

我有一个二进制图像,我用bwconncomp和regionprops来划分成感兴趣的区域。我有一行像素,我想在二进制图像上放置...并找到感兴趣的区域/连接的组件中的线像素最多。所以在附图中我在bwimage上使用bwconncomp,我得到组件1,2,3。然后我有一个与蓝线对应的像素列表。我想找到哪个连通组件中有大部分蓝线(#1)。

我想象它的......

ph

1 个答案:

答案 0 :(得分:0)

您可以使用ismember来确定PixelList中有多少项出现在该行的像素列表中。然后,您可以使用max来识别具有最多的组件。

% Indices of pixels that are along the line of interest
linePixels = [1, 2, 3, 4, ...]  

% Determine the number of pixels within each component that are on this line
nPerComponent = cellfun(@(inds)sum(ismember(inds, linePixels)), {cc.PixelIdxList});

% Find the component with the most points on this line
[~, answer] = max(nPerComponent);