Visual Studio 2013 Express Visual C++( アンマネージドコード ) OpenCV 3.1 |
■243.OpenCV バイラテラルフィルタ | Prev Top Next | |
|
今回はバイラテラルフィルタを使用してノイズ除去します。詳細はイメージングソリューションを参照してください。
#include <iostream> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #pragma comment( lib, "opencv_world300d.lib" ) int main(int argc, const char* argv[]) { int hr = -1; try { cv::Mat src, dest; src = cv::imread("D:/TEMP/MaverickProj/Image/OpenCV/05/Texture.png", cv::IMREAD_COLOR); cv::bilateralFilter( src, dest, 10, // フィルタリングで利用される,各ピクセル近傍領域の直径. 100, // 色空間におけるフィルタシグマ。この値を大きくすると全体的に均一に混ぜ合わされる。 10, // 座標空間におけるフィルタシグマ。d値に依存するようである。 cv::BORDER_DEFAULT ); std::cout << "Successed" << std::endl; // 元画像のウィンドウ表示 cv::namedWindow("Source", 1); imshow("Source", src); // フィルタ適用後の画像のウィンドウ表示 cv::namedWindow("bilateralFilter", 1); imshow("bilateralFilter", dest); cv::waitKey(0); hr = 0; } catch (cv::Exception ex) { std::cout << ex.err << std::endl; } // ウィンドウの破棄 cv::destroyAllWindows(); return hr; }
d = 10 sigmaColor = 500 sigmaSpace = 10
d = 10 sigmaColor = 500 sigmaSpace = 70
d = 70 sigmaColor = 500 sigmaSpace = 10
d = 10 sigmaColor = 100 sigmaSpace = 10
d = 70 sigmaColor = 500 sigmaSpace = 70