###前提・実現したいこと
Matlabを用いて画像の特定の領域のトリミング
###発生している問題・エラーメッセージ
現在、研究でMatlabを用いて以下の花の画像の中心の黄色の花以外の部分を黒く塗りつぶした画像にしたいのですが、中心の花だけをトリミングすることができません。
PhotoShopは使わないという方針です。
clear all; close all; %%%%%%%%%%% 画像の読み込み %%%%%%%%%%% Org = imread('img/color.jpg'); % 原画像 Org = rgb2gray(Org) %% 花の検出 [~, threshold] = edge(Org, 'sobel'); fudgeFactor = .5; BWs = edge(Org,'sobel', threshold * fudgeFactor); figure, imshow(BWs), title('binary gradient mask'); %% イメージの拡張 se90 = strel('line', 3, 90); se0 = strel('line', 3, 0); BWsdil = imdilate(BWs, [se90 se0]); figure, imshow(BWsdil), title('dilated gradient mask'); %% 内部のギャップを塗りつぶす BWdfill = imfill(BWsdil, 'holes'); figure, imshow(BWdfill); title('binary image with filled holes'); %% 境界に接触するオブジェクトの削除 BWnobord = imclearborder(BWdfill, 4); figure, imshow(BWnobord), title('cleared border image'); BWnobord = imclearborder(BWdfill, 8); figure, imshow(BWnobord), title('cleared border image');
このコードを試して見ると膨張の際に、中心の花も境界に接触しているオブジェクトとして認識され消えてしまいます。
###自分の考え
色による閾値の方法や空間周波数による方法なども考えましたができないと判断しました。私的にはMatlabで中心の花の画像だけを抽出するのは不可能じゃないかな~と思っています。
研究では、この花の画像以外の画像も用いる予定なので、できれば万物画像に用いることができる方法があれば教えてください。
###補足情報(言語/FW/ツール等のバージョンなど)
Matlab2015
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。