2

色付きの図形で塗りつぶされた画像を分析し、画像内の青い円を強調表示する必要があるタスクがあります。これを行うために、画像を 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ステートメントを使用して、それらの周りに境界線を挿入することを組み込んでみました. 円の境界のみを表示するようにこのコードを修正する方法についての提案や観察は大歓迎です。

添付の画像は、プログラムが現在行っていることを示しています。三角形と正方形の周りの緑の境界を取り除きたいです。 ここに画像の説明を入力

4

1 に答える 1