我目前正在使用下面的函數從兩個尺寸的圖像(240x720)中去除噪點。我目前正在計算機上對此進行計算,但希望實時實施此操作。但是,在我的電腦上,該功能會導致程序明顯延遲。有沒有其他方法可以從可以實時運行的圖像中去除噪點?高斯模糊也許?替代OpenCV fastNlMeansDenoising實時應用程序?
fastNlMeansDenoising(ipmOfLeftLaneRobust, ipmOfLeftLaneRobust,10,7,21);
我目前正在使用下面的函數從兩個尺寸的圖像(240x720)中去除噪點。我目前正在計算機上對此進行計算,但希望實時實施此操作。但是,在我的電腦上,該功能會導致程序明顯延遲。有沒有其他方法可以從可以實時運行的圖像中去除噪點?高斯模糊也許?替代OpenCV fastNlMeansDenoising實時應用程序?
fastNlMeansDenoising(ipmOfLeftLaneRobust, ipmOfLeftLaneRobust,10,7,21);
給出一個函數
fastNlMeansDenoising(InputArray src, OutputArray dst, float h=3,
int templateWindowSize=7, int searchWindowSize=21);
當templateWindowSize
接近1,過濾器變成一個盒子雙邊濾波器。
當h
項趨近於無窮大時,濾鏡變爲一個框模糊濾鏡。
對於任何兩個,實現是詳盡的。
一個簡單的選擇是首先嚐試兩個優化的特例:cv::boxFilter
和cv::bilateralBlur
。
一個值得考慮的選擇可能使用的fastNIMeansDenoising
CUDA的版本,因爲它提供了顯著加速假設你有一個體面的GPU(真對於一般大多數OpenCV的功能)。除此之外,它取決於你處理的是什麼類型的噪聲,但如果是鹽和胡椒噪聲,使用中值模糊函數通常會提供良好的結果。如果你的噪音更普遍,高斯模糊是另一個不錯的選擇。
框雙邊過濾器似乎很好,同時保持圖像內的對象的邊緣。謝謝。 –