-1

私はMatlabと画像処理も初めてです。画像が次の場合、次の式で画像の明るさを変更できることを知っていますI

newImg=imadjust(I, [low_in high_in], [low_out,high_out]);

画像のすべてのピクセル値を調整しますが、画像内の顔を検出したように、画像の一部でそれを行うにはどうすればよいですかimadjust?

編集

バイナリ マスクで領域を検出しました。

回答と回答の参照をご覧ください。

4

2 に答える 2

2

私はそれをしました、

画像の一部の領域の明るさを変更したかったのですが、必要な領域はバイナリマスクによって計算されたmaskので、最初に入力 Image の明るさを変更し、結果を次のようIに保存しましたnewImg

newImg = imadjust(I, [low_in high_in], [low_out,high_out]);

次に、元の画像にマスクを適用し、newImgこのようなマスクされた領域の値を保存します

I(mask) = newImg (mask);

参照

有益であり、誰も退屈しないと思います。質問をしていたという理由だけで人々が私のスレッドを閉じたので、皆さんが私をやる気にさせないなら、私は学ぶことができません。私はさまざまな種類のプロジェクトに同じ画像データベースを使用しています。

于 2013-01-22T17:29:43.417 に答える
1
%Suppose these are the coordinates of the rectangle in which the face is detected%
%You can do the following to adjust the brightness of that region

topLeft = 10;
topRight = 50;
bottomLeft = 50;

newImg = I;
newImg(topLeft:bottomLeft,topLeft:topRight) = imadjust(newImg(topLeft:bottomLeft,topLeft:topRight), [low_in high_in], [low_out,high_out]);
于 2013-01-20T19:00:25.000 に答える