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

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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Tohru Kikawada
Tohru Kikawada am 20 Feb. 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 Kommentar
METACORN
METACORN am 20 Feb. 2023
迅速にご対応いただきありがとうございます。
きちんとほかの画像でも輪郭の抽出が行えました。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu イメージのセグメンテーションと解析 finden Sie in Help Center und File Exchange

Produkte


Version

R2017b

Community Treasure Hunt

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

Start Hunting!