2012-02-17 2 views
1

私は白の上半分の背景と灰色の下半分の背景を持つビデオを持っています。ビデオが進むにつれて、煙があり、背景の視認性が低下する。手ぶれがあり、黒の背景が白に変わる点が変化し続けます(上下に動く)。私の目的は、黒い背景が灰色になる垂直位置を追跡することによって、各フレームの手ぶれを数値化することです。MATLABを使用して画像内の背景の色の変化を見つける方法は?

背景が黒から灰色に変化する垂直座標(Y)をトラッキングしたいと思います。この点に関して、私は以下の質問をしています:

1)色の変化を確認するには? MATLABの連続するピクセル間に色の変化(勾配)を見つける方法はありますか?

2)背景の視認性を上げるにはどうすればよいですか?背景の可視性を高めるフィルタはありますか?

答えて

0

カメラが十分に静止していて、背景が十分に一定であれば、後続の画像を減算することができます。あなたのイメージのスモーキー部分と背景の差が十分大きい場合、前のフレームにスモークがなく、新しいフレームにある領域は、イメージの残りの部分とはるかに大きな差を示します。これにより、「新しい」煙の場所がわかります。煙がどれだけ進んでいるかを把握するために使用することができます。

+0

返信いただきありがとうございます。以前の私の目的では明確ではなかった。私は私の目的を含むように質問を修正しました。私は静的なオブジェクトを追跡することによってカメラの揺れを数値化する必要があります。この場合は背景です。ビデオのすべてのフォアグラウンド機能が動いています。 – Sulla

+0

縦振れのみ検出しますか?横振れは問題ではないのですか?シェイクを検出するための簡単なオプティカルフローアルゴリズム(https://en.wikipedia.org/wiki/Optical_flow)を試しましたか? –

0

あなたが使用することができ、あなたのイメージをクリアするには: -

im=imread('C:\Users\khaled\Documents\MATLAB\image.jpg'); 
clear_image= histeq(im); 

は、次のコードを黒とグレーの利用の変化を検出するために: -

im=rgb2gray(image); 
BW = edge(I,'canny'); 
[B,L] = bwboundaries(BW,'noholes'); 
boundary = B{1}; 
plot(boundary(:,2), boundary(:,1), 'r', 'LineWidth', 2); 
0

は、コンピュータビジョンシステムツールボックスからvision.ForegroundDetectorをお試しください。

関連する問題