我有兩個單獨的圖像:第一個圖像只包含黑色的圓形物體,而第二個圖像只包含綠色的圓形物體。我正在嘗試製作一個代碼,用於確定黑色物體中有多少綠色。如下圖所示,將圖像1(僅限黑色對象的圖像)和圖像2(僅限綠色對象的圖像)疊加時,可能會出現三種不同的情況。如何找到重疊的連接組件
我試圖提取使用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