雙邊過濾
在影象處理應用中,雙邊濾波器是一種特殊型別的非線性濾波器。
在失去結構和去除噪聲之間存在折衷,因為最流行的去除噪聲的方法是高斯模糊,它不瞭解影象的結構; 因此,它也刪除了邊緣。大多數情況下,edge 包含有關場景的有價值資訊,我們不想放鬆它。該雙邊濾波器是意識到了場面的結構,它往往像當它是沒有邊緣的區域經典模糊過濾器; 然而,當它看到邊緣時,它會改變它的行為; 因此,模糊不會在邊緣上起作用,但它沿邊緣起作用,這意味著它們是邊緣保留濾鏡。
#include <opencv2/opencv.hpp>
#include <iostream>
void main(int argc, char* argv[]) {
if(argc==1) {
std::cout << argv[0] << " <image>" << endl;
return;
}
cv::Mat image, output;
image = cv::imread(argv[1]);
if(image.empty()) {
std::cout << "Unable to load the image: " << argv[1] << endl;
return;
}
cv::bilateralFilter(image, output, 3, 5, 3);
}