2016-03-28 108 views
0

我目前正在使用下面的函數從兩個尺寸的圖像(240x720)中去除噪點。我目前正在計算機上對此進行計算,但希望實時實施此操作。但是,在我的電腦上,該功能會導致程序明顯延遲。有沒有其他方法可以從可以實時運行的圖像中去除噪點?高斯模糊也許?替代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,過濾器變成一個盒子雙邊濾波器。

h項趨近於無窮大時,濾鏡變爲一個框模糊濾鏡。

對於任何兩個,實現是詳盡的。

一個簡單的選擇是首先嚐試兩個優化的特例:cv::boxFiltercv::bilateralBlur

+0

框雙邊過濾器似乎很好,同時保持圖像內的對象的邊緣。謝謝。 –

0

一個值得考慮的選擇可能使用的fastNIMeansDenoising CUDA的版本,因爲它提供了顯著加速假設你有一個體面的GPU(真對於一般大多數OpenCV的功能)。除此之外,它取決於你處理的是什麼類型的噪聲,但如果是鹽和胡椒噪聲,使用中值模糊函數通常會提供良好的結果。如果你的噪音更普遍,高斯模糊是另一個不錯的選擇。