36 #include <visp3/core/vpConfig.h>
44 #if defined(VISP_HAVE_SIMDLIB) && defined(VISP_HAVE_CATCH2) && (VISP_HAVE_DATASET_VERSION >= 0x030400)
45 #define CATCH_CONFIG_RUNNER
47 #include <visp3/core/vpGaussianFilter.h>
48 #include <visp3/core/vpImageTools.h>
49 #include <visp3/core/vpIoTools.h>
50 #include <visp3/io/vpImageIo.h>
52 TEST_CASE(
"Test vpGaussianFilter (unsigned char)")
58 std::vector<float> sigmas = { 0.5f, 2.0f, 5.0f, 7.0f };
59 for (
auto sigma : sigmas) {
63 gaussianFilter.apply(I, I_blurred);
68 char buffer[FILENAME_MAX];
69 snprintf(buffer, FILENAME_MAX, filepath_ref.c_str(), sigma);
70 const std::string filename = buffer;
77 std::cout <<
"sigma: " << sigma <<
" ; I_diff_dbl: " << I_diff_dbl.
getMeanValue() << std::endl;
78 const double threshold = 1.5;
83 TEST_CASE(
"Test vpGaussianFilter (vpRGBa)")
89 std::vector<float> sigmas = { 0.5f, 2.0f, 5.0f, 7.0f };
90 for (
auto sigma : sigmas) {
94 gaussianFilter.apply(I, I_blurred);
99 char buffer[FILENAME_MAX];
100 snprintf(buffer, FILENAME_MAX, filepath_ref.c_str(), sigma);
101 const std::string filename = buffer;
114 std::cout <<
"sigma: " << sigma <<
" ; I_diff_R_dbl: " << I_diff_R_dbl.
getMeanValue()
116 <<
" ; I_diff_B_dbl: " << I_diff_B_dbl.
getMeanValue() << std::endl;
117 const double threshold = 1.5;
124 TEST_CASE(
"Test vpGaussianFilter (vpRGBa + deinterleave)")
130 std::vector<float> sigmas = { 0.5f, 2.0f, 5.0f, 7.0f };
131 for (
auto sigma : sigmas) {
132 const bool deinterleave =
true;
136 gaussianFilter.apply(I, I_blurred);
141 char buffer[FILENAME_MAX];
142 snprintf(buffer, FILENAME_MAX, filepath_ref.c_str(), sigma);
143 const std::string filename = buffer;
156 std::cout <<
"sigma: " << sigma <<
" ; I_diff_R_dbl: " << I_diff_R_dbl.
getMeanValue()
158 <<
" ; I_diff_B_dbl: " << I_diff_B_dbl.
getMeanValue() << std::endl;
159 const double threshold = 1.5;
166 int main(
int argc,
char *argv[])
168 Catch::Session session;
171 session.applyCommandLine(argc, argv);
173 int numFailed = session.run();
181 int main() {
return EXIT_SUCCESS; }
static void split(const vpImage< vpRGBa > &src, vpImage< unsigned char > *pR, vpImage< unsigned char > *pG, vpImage< unsigned char > *pB, vpImage< unsigned char > *pa=nullptr)
static void convert(const vpImage< unsigned char > &src, vpImage< vpRGBa > &dest)
static void read(vpImage< unsigned char > &I, const std::string &filename, int backend=IO_DEFAULT_BACKEND)
unsigned int getWidth() const
unsigned int getHeight() const
double getMeanValue(const vpImage< bool > *p_mask=nullptr, unsigned int *nbValidPoints=nullptr) const
Return the mean value of the bitmap.