色付きの図形で塗りつぶされた画像を分析し、画像内の青い円を強調表示する必要があるタスクがあります。これを行うために、画像を RGB チャネルに分割し、青色のピクセルのみのバイナリ画像を作成しました。ブロブ検出を使用して、画像を分割し、各形状の丸みを見つけることができました。ただし、丸い形状に境界線を配置しようとすると、円だけでなくすべての形状の周りに境界線が配置されます。コードの関連セクションを以下に示します。
imshow(BBinEro)
for cnt = 1:length(BlueProps)
%disp(score);
if score(cnt) >= 0.98 %
text(BlueProps(cnt).Centroid(1),BlueProps(cnt).Centroid(2),num2str(score(cnt)),'color','red');
boundaries = bwboundaries(BBinEro);
numberOfBoundaries = size(boundaries);
hold on
for k = 1 : numberOfBoundaries
thisBoundary = boundaries{k};
if score(cnt) >= 0.98 %Only showing for circles
plot(thisBoundary(:,2), thisBoundary(:,1), 'g', 'LineWidth', 2);
end
end
hold off
end
end
「スコア」は、ブロブの円形度の尺度です。スコア 1 は、ブロブが完全に丸いことを意味します。プログラムは、重心で円形の形状の真円度を表示します。同じifステートメントを使用して、それらの周りに境界線を挿入することを組み込んでみました. 円の境界のみを表示するようにこのコードを修正する方法についての提案や観察は大歓迎です。
添付の画像は、プログラムが現在行っていることを示しています。三角形と正方形の周りの緑の境界を取り除きたいです。