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> 51 TEST_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);
93 TEST_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) 123 TEST_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);
150 int 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();
unsigned int getWidth() const
void apply(const vpImage< unsigned char > &I, vpImage< unsigned char > &I_blur)
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)
unsigned int getHeight() const