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

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

Respuesta aceptada

Hiroshi Iwamura
Hiroshi Iwamura el 19 de Ag. de 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 comentario
HanaHana
HanaHana el 22 de Ag. de 2024
ご回答ありがとうございます。
モルフォロジーというものがあるのですね。解決のコードまでお示しありがとうございました。

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Productos


Versión

R2023a

Community Treasure Hunt

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

Start Hunting!