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/io/vpImageIo.h>
44#include <visp3/core/vpIoTools.h>
45#include <visp3/core/vpImageFilter.h>
46#include <visp3/core/vpGaussianFilter.h>
51TEST_CASE(
"vpGaussianFilter",
"[benchmark]") {
52 SECTION(
"unsigned char")
57 const float sigma = 5.0f;
59 BENCHMARK(
"Benchmark vpGaussianFilter uchar") {
60 gaussianFilter.apply(I, I_blur);
70 const float sigma = 5.0f;
72 BENCHMARK(
"Benchmark vpGaussianFilter vpRGBa") {
73 gaussianFilter.apply(I, I_blur);
78 SECTION(
"vpRGBa + deinterleave")
83 const float sigma = 5.0f;
84 const bool deinterleave =
true;
86 BENCHMARK(
"Benchmark vpGaussianFilter vpRGBa") {
87 gaussianFilter.apply(I, I_blur);
93TEST_CASE(
"vpImageFilter::gaussianBlur",
"[benchmark]") {
94 SECTION(
"unsigned char")
100 const unsigned int kernelSize = 7;
101 const double sigma = 5.0;
102 BENCHMARK(
"Benchmark vpImageFilter::gaussianBlur uchar") {
113 const unsigned int kernelSize = 7;
114 const double sigma = 5.0;
115 BENCHMARK(
"Benchmark vpImageFilter::gaussianBlur vpRGBa") {
122#if (VISP_HAVE_OPENCV_VERSION >= 0x020101)
123TEST_CASE(
"Gaussian filter (OpenCV)",
"[benchmark]") {
124 SECTION(
"unsigned char")
126 cv::Mat img, img_blur;
127 img = cv::imread(imagePath, cv::IMREAD_GRAYSCALE);
129 const double sigma = 5.0;
130 BENCHMARK(
"Benchmark Gaussian filter uchar (OpenCV)") {
131 cv::GaussianBlur(img, img_blur, cv::Size(), sigma);
138 cv::Mat img, img_blur;
139 img = cv::imread(imagePath, cv::IMREAD_COLOR);
141 const double sigma = 5.0;
142 BENCHMARK(
"Benchmark Gaussian filter BGR (OpenCV)") {
143 cv::GaussianBlur(img, img_blur, cv::Size(), sigma);
150int main(
int argc,
char *argv[])
152 Catch::Session session;
154 bool runBenchmark =
false;
156 using namespace Catch::clara;
157 auto cli = session.cli()
167 session.applyCommandLine(argc, argv);
170 int numFailed = session.run();
static void gaussianBlur(const vpImage< unsigned char > &I, vpImage< double > &GI, unsigned int size=7, double sigma=0., bool normalize=true)
static void read(vpImage< unsigned char > &I, const std::string &filename, int backend=IO_DEFAULT_BACKEND)
unsigned int getWidth() const
unsigned int getHeight() const