0

remove/changeMatlabで画像の背景色が欲しいです。

誰でもこれを行う方法を知っていますか?

これが画像の例です。緑色の背景色を削除したいと思います。


(ソース: frip.in )

4

1 に答える 1

4

最も簡単な答えは、

c = [70 100 70];
thresh = 50;
A = imread('image.jpg');
B = zeros(size(A));
Ar = A(:,:,1);
Ag = A(:,:,2);
Ab = A(:,:,3);
Br = B(:,:,1);
Bg = B(:,:,2);
Bb = B(:,:,3);
logmap = (Ar > (c(1) - thresh)).*(Ar < (c(1) + thresh)).*...
         (Ag > (c(2) - thresh)).*(Ag < (c(2) + thresh)).*...
         (Ab > (c(3) - thresh)).*(Ab < (c(3) + thresh));
Ar(logmap == 1) = Br(logmap == 1);
Ag(logmap == 1) = Bg(logmap == 1); 
Ab(logmap == 1) = Bb(logmap == 1);
A = cat(3 ,Ar,Ag,Ab);
imshow(A);

ここに画像の説明を入力

c(背景色) とthresh(のしきい値) を変更cして、背景に最適なものを見つける必要があります。

B新しい背景画像として定義できます。Fr の例を追加Bb(:,:) = 255;すると、青色の背景が表示されます。

ここに画像の説明を入力

Bイメージとして定義することもできます。

背景を検出するために、画像で最も使用されている色を見つけることができますが、それは必ずしも背景ではないと思います.

于 2014-11-20T07:32:29.870 に答える