2016-03-28 4 views
0

私は現在、以下の機能を使用して、サイズの2つの画像(240x720)からノイズを除去しています。私は現在、自分のコンピュータでこれを計算していますが、これをリアルタイムで実装したいと考えています。しかし、私のコンピュータ上では、この機能はプログラムに大きな遅延をもたらします。リアルタイムで動作する画像からノイズを除去する方法はありますか?おそらくガウスのぼかし?それはあなたが(一般的にはほとんどのOpenCVの機能のための真の)まともなGPUを持っていると仮定すると大幅な高速化を提供していますように考慮すべきリアルタイムアプリケーションのためのOpenCV fastNlMeansDenoisingの代わりに?

fastNlMeansDenoising(ipmOfLeftLaneRobust, ipmOfLeftLaneRobust,10,7,21); 

答えて

0

機能

fastNlMeansDenoising(InputArray src, OutputArray dst, float h=3, 
    int templateWindowSize=7, int searchWindowSize=21); 

templateWindowSizeが1に近づく考えると、フィルタボックスバイラテラルフィルタとなります。

用語が無限に近づくと、フィルタはボックスブラーフィルタになります。

いずれの場合も、実装は網羅的です。

2つの最適化された特殊ケースを先に試してみてください:cv::boxFiltercv::bilateralBlur

+0

ボックスのバイラテラルフィルタは、画像内のオブジェクトのエッジを維持しながら大きく動作しているようです。ありがとうございました。 –

0

1つのオプションは、fastNIMeansDenoisingのCUDAのバージョンを使用している場合があります。しかし、それはあなたが扱っているノイズの種類によって異なりますが、塩と胡椒のノイズの場合、中央ぼかし関数を使用すると一般的に良い結果が得られます。あなたのノイズがより一般的である場合、ガウスのぼかしは別の良いオプションです。

関連する問題