バナナのエッジ処理(輪郭摘出)がうまくできない。

1 vue (au cours des 30 derniers jours)
METACORN
METACORN le 16 Fév 2023
Commenté : METACORN le 20 Fév 2023
現在Sobelを利用したエッジ検出をしているのですが、シュガースポットが3割のバナナの輪郭は表示ができるのですが、シュガースポットが5~7割のバナナの輪郭がうまくできず、バナナの中心部がくりぬかれてまともに輪郭が取れません、何かいい案や原因などあれば教えてほしいです。
  2 commentaires
Tohru Kikawada
Tohru Kikawada le 16 Fév 2023
元の画像添付することは可能でしょうか。よりよいアイディアが集まるかもしれません。
METACORN
METACORN le 19 Fév 2023
元の画像はこちらです

Connectez-vous pour commenter.

Réponse acceptée

Tohru Kikawada
Tohru Kikawada le 20 Fév 2023
色のしきい値アプリを活用することで様々な色空間でしきい値を決めることができます。
下記の例では2つのマスクを作って共通部分を抽出することでバナナのみを取り出したりすることが可能です。
RGB = imread("https://www.mathworks.com/matlabcentral/answers/uploaded_files/1300400/image.jpeg");
% RGBからHSV色空間に変換
I = rgb2hsv(RGB);
はじめにバナナの影の部分だけを抽出するマスクを生成
% 色相
channel1Min = 0.040;
channel1Max = 0.098;
% 彩度
channel2Min = 0.086;
channel2Max = 0.443;
% 明度
channel3Min = 0.671;
channel3Max = 0.871;
% 上記範囲のを満たすマスクを作成
sliderBW = ( (I(:,:,1) >= channel1Min) | (I(:,:,1) <= channel1Max) ) & ...
(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...
(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);
BW1 = sliderBW;
次に、バナナ+影の部分を抽出するマスクを生成
% 色相
channel1Min = 0.925;
channel1Max = 0.173;
% 彩度
channel2Min = 0.218;
channel2Max = 1.000;
% 明度
channel3Min = 0.000;
channel3Max = 1.000;
% 上記範囲のを満たすマスクを作成
sliderBW = ( (I(:,:,1) >= channel1Min) | (I(:,:,1) <= channel1Max) ) & ...
(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...
(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);
BW2 = sliderBW;
影とバナナ+影のマスクの共通部分を抽出
% 2つのマスクのANDをとる
BW = ~BW1 & BW2;
モルフォロジー処理による後処理
% 1番大きい面積の部分だけを残す
BW = bwareafilt(BW,1);
% クローズ処理で輪郭の凸凹をならす
BW = imclose(BW,strel("disk",10));
% 黒いところを穴埋め
BW = imfill(BW,"holes");
処理後のマスクを可視化
figure
imshow(im2single(RGB) .* single(BW))
  1 commentaire
METACORN
METACORN le 20 Fév 2023
迅速にご対応いただきありがとうございます。
きちんとほかの画像でも輪郭の抽出が行えました。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Material Sciences dans Help Center et File Exchange

Produits


Version

R2017b

Community Treasure Hunt

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

Start Hunting!