雙邊過濾

在影象處理應用中,雙邊濾波器是一種特殊型別的非線性濾波器

在失去結構和去除噪聲之間存在折衷,因為最流行的去除噪聲的方法是高斯模糊,它不瞭解影象的結構; 因此,它也刪除了邊緣。大多數情況下,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);
}