2つの別々のイメージがあります。最初のイメージには黒丸オブジェクトのみが含まれ、2番目のイメージには緑色の丸いオブジェクトのみが含まれています。私は黒のオブジェクトの中にどれくらいの緑色があるか把握するコードを作ろうとしています。下の図に示すように、画像1(黒い物体のみの画像)と画像2(緑の物体のみの画像)を重ね合わせると、3つのシナリオが発生する可能性があります。重複している接続コンポーネントを見つける方法
Iはregionprops
を使用して黒と緑のオブジェクトのピクセルインデックスを抽出しismember
を使用して、任意の重複するピクセルがあるかどうかどうかを確認しようとしています。各セルには、単一のオブジェクトのピクセルインデックスが含まれます。私はコード内で間違っていることがあると感じますが、正確に何かを把握できないようです。私はこれを行う簡単な方法があると確信しています。
blackProperties = regionprops(logical(blackImage),'all');
greenProperties = regionprops(logical(greenImage),'all');
numBlackObjects = length(blackProperties);
numGreenObjects = length(greenProperties);
blackPixels = cell(1,numBlackObjects);
greenPixels = cell(1,numGreenObjects);
for j = 1:numBlackObjects
blackPixels{j} = blackProperties(j).PixelIdxList;
end
for j = 1:numGreenObjects
greenPixels{j} = greenProperties(j).PixelIdxList;
end
matchMem = zeros(100,2);
for j = 1:numel(blackPixels)
blackPix = blackPixels{j};
for i = 1:numel(greenPixels)
greenPix = greenPixels{i};
match = ismember(blackPix,greenPix);
matchMem(match,1) = find(match);
matchMem(match,2) = i;
end
end
'regionprops'を使用して' blackPixels'と 'greenPixels'を取得するコードを表示できますか?これはブール論理で簡単に解決できます。 – Suever
あなたの画像は同じサイズですか? – obchardon
@Suever、私は質問 – Senyokbalgul