画像認識における突出​した部分の検出および​削除方法について

4 views (last 30 days)
HanaHana
HanaHana on 9 Aug 2024
Commented: HanaHana on 22 Aug 2024
下のような画像の赤斜線部のみを削除する方法はありますでしょうか?
データはバイナリイメージで2値化されています。
認識している画像は基本的には左のような図のため、bwareafiltで、最大構造を抽出することで対応できます。
しかし、ときに右のような画像が出てきます。毎回がくっついているわけではありません。
2つの物体のくっつき具合(クビレ具合)も変化するため、閾値(あまりにくっついていれば1つとして認識)できればベストです。
ご教示いただけますと幸いです。

Accepted Answer

Hiroshi Iwamura
Hiroshi Iwamura on 19 Aug 2024
Image Processing Toolbox をお持ちであれば、モルフォロジーを使って色々試してみるとできるかとは思います。
以下は例です。
中段は上記画像をそのまま使うための背景除去とかなので、なくても大丈夫かもしれません。
I = imread("https://www.mathworks.com/matlabcentral/answers/uploaded_files/1750279/image.png");
BW = rgb2gray(I);
BW = imbinarize(BW);
imshow(BW)
CC = bwconncomp(BW);
p = regionprops(CC,"Area");
[maxArea,maxIdx] = max([p.Area]); % background image area
idx = setdiff(1:CC.NumObjects,maxIdx);
BW2 = cc2bw(CC,ObjectsToKeep=idx); % clear background
imshow(BW2)
se = strel('disk',25);
BW3 = imopen(BW2, se);
imshow(BW3)
  1 Comment
HanaHana
HanaHana on 22 Aug 2024
ご回答ありがとうございます。
モルフォロジーというものがあるのですね。解決のコードまでお示しありがとうございました。

Sign in to comment.

More Answers (0)

Categories

Find more on ビッグ データの処理 in Help Center and File Exchange

Products


Release

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!