36#include <visp3/core/vpConfig.h>
38#ifdef VISP_HAVE_CATCH2
39#define CATCH_CONFIG_ENABLE_BENCHMARKING
40#define CATCH_CONFIG_RUNNER
43#include <visp3/core/vpGaussianFilter.h>
44#include <visp3/core/vpImageFilter.h>
45#include <visp3/core/vpIoTools.h>
46#include <visp3/io/vpImageIo.h>
51TEST_CASE(
"vpGaussianFilter",
"[benchmark]")
53 SECTION(
"unsigned char")
58 const float sigma = 5.0f;
60 BENCHMARK(
"Benchmark vpGaussianFilter uchar")
62 gaussianFilter.apply(I, I_blur);
72 const float sigma = 5.0f;
74 BENCHMARK(
"Benchmark vpGaussianFilter vpRGBa")
76 gaussianFilter.apply(I, I_blur);
81 SECTION(
"vpRGBa + deinterleave")
86 const float sigma = 5.0f;
87 const bool deinterleave =
true;
89 BENCHMARK(
"Benchmark vpGaussianFilter vpRGBa")
91 gaussianFilter.apply(I, I_blur);
97TEST_CASE(
"vpImageFilter::gaussianBlur",
"[benchmark]")
99 SECTION(
"unsigned char")
105 const unsigned int kernelSize = 7;
106 const double sigma = 5.0;
107 BENCHMARK(
"Benchmark vpImageFilter::gaussianBlur uchar")
119 const unsigned int kernelSize = 7;
120 const double sigma = 5.0;
121 BENCHMARK(
"Benchmark vpImageFilter::gaussianBlur vpRGBa")
129#if defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_IMGCODECS) && defined(HAVE_OPENCV_IMGPROC)
131TEST_CASE(
"Gaussian filter (OpenCV)",
"[benchmark]")
133 SECTION(
"unsigned char")
135 cv::Mat img, img_blur;
136 img = cv::imread(imagePath, cv::IMREAD_GRAYSCALE);
138 const double sigma = 5.0;
139 BENCHMARK(
"Benchmark Gaussian filter uchar (OpenCV)")
141 cv::GaussianBlur(img, img_blur, cv::Size(), sigma);
148 cv::Mat img, img_blur;
149 img = cv::imread(imagePath, cv::IMREAD_COLOR);
151 const double sigma = 5.0;
152 BENCHMARK(
"Benchmark Gaussian filter BGR (OpenCV)")
154 cv::GaussianBlur(img, img_blur, cv::Size(), sigma);
161int main(
int argc,
char *argv[])
163 Catch::Session session;
165 bool runBenchmark =
false;
167 using namespace Catch::clara;
168 auto cli = session.cli()
178 session.applyCommandLine(argc, argv);
181 int numFailed = session.run();
194int main() {
return EXIT_SUCCESS; }
static void gaussianBlur(const vpImage< unsigned char > &I, vpImage< FilterType > &GI, unsigned int size=7, FilterType sigma=0., bool normalize=true)
static void read(vpImage< unsigned char > &I, const std::string &filename, int backend=IO_DEFAULT_BACKEND)
Definition of the vpImage class member functions.
unsigned int getWidth() const
unsigned int getHeight() const