denoise program sample
// g++ -o a.out hoge.cc -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_photo -lopencv_imgproc -lopencv_core
#include <cstdio>
#include <vector>
#include <opencv2/opencv.hpp>
int main(int argc, char *argv[])
{
cv::Mat src = cv::imread(argv[1], cv::IMREAD_COLOR);
const int NoiseSigma = 15;
cv::Mat nlMeansColored, adaptiveBilateral;
// (5) Nonlocal means filter (Colored)
{
cv::fastNlMeansDenoisingColored(src, nlMeansColored);
}
/*
// (6) Adaptive bilateral filter
{
cv::adaptiveBilateralFilter(src, adaptiveBilateral, cv::Size(7, 7), 5, 35);
}
*/
// cv::imshow("src", src);
// cv::imshow("Non-local Means Filter (Colored)", nlMeansColored);
// cv::imshow("Adaptive Bilateral Filter", adaptiveBilateral);
// cv::waitKey();
cv::imwrite(argv[2], nlMeansColored);
return 0;
}
実行手順例
cd /tmp for i in hoge-*.png; do echo $i /tmp/a.out $i `basename $i .png`-out.png done