dct image denoising added

pull/25/head
Bellaktris 11 years ago
parent a200e8ab16
commit 444abe8207
  1. 3
      modules/colorbalance/CMakeLists.txt
  2. 8
      modules/colorbalance/doc/colorbalance.rst
  3. 3
      modules/xphoto/CMakeLists.txt
  4. 4
      modules/xphoto/doc/colorbalance/whitebalance.rst
  5. 20
      modules/xphoto/doc/denoising/denoising.rst
  6. 9
      modules/xphoto/doc/xphoto.rst
  7. 5
      modules/xphoto/include/opencv2/xphoto.hpp
  8. 71
      modules/xphoto/include/opencv2/xphoto/dct_image_denoising.hpp
  9. 0
      modules/xphoto/include/opencv2/xphoto/simple_color_balance.hpp
  10. 70
      modules/xphoto/samples/dct_image_denoising.cpp
  11. 2
      modules/xphoto/samples/simple_color_balance.cpp
  12. 147
      modules/xphoto/src/dct_image_denoising.cpp
  13. 8
      modules/xphoto/src/simple_color_balance.cpp
  14. 33
      modules/xphoto/test/dct_image_denoising.cpp
  15. 4
      modules/xphoto/test/simple_color_balance.cpp
  16. 38
      modules/xphoto/test/simple_color_balance.cpp.PVS-Studio.cfg
  17. 2
      modules/xphoto/test/test_main.cpp
  18. 2
      modules/xphoto/test/test_precomp.hpp
  19. BIN
      modules/xphoto/testdata/dct_image_denoising/results/01.png
  20. BIN
      modules/xphoto/testdata/dct_image_denoising/results/02.png
  21. BIN
      modules/xphoto/testdata/dct_image_denoising/results/03.png
  22. BIN
      modules/xphoto/testdata/dct_image_denoising/results/04.png
  23. BIN
      modules/xphoto/testdata/dct_image_denoising/results/05.png
  24. BIN
      modules/xphoto/testdata/dct_image_denoising/results/06.png
  25. BIN
      modules/xphoto/testdata/dct_image_denoising/results/07.png
  26. BIN
      modules/xphoto/testdata/dct_image_denoising/results/08.png
  27. BIN
      modules/xphoto/testdata/dct_image_denoising/results/09.png
  28. BIN
      modules/xphoto/testdata/dct_image_denoising/results/10.png
  29. BIN
      modules/xphoto/testdata/dct_image_denoising/results/11.png
  30. BIN
      modules/xphoto/testdata/dct_image_denoising/results/12.png
  31. BIN
      modules/xphoto/testdata/dct_image_denoising/sources/01.png
  32. BIN
      modules/xphoto/testdata/dct_image_denoising/sources/02.png
  33. BIN
      modules/xphoto/testdata/dct_image_denoising/sources/03.png
  34. BIN
      modules/xphoto/testdata/dct_image_denoising/sources/04.png
  35. BIN
      modules/xphoto/testdata/dct_image_denoising/sources/05.png
  36. BIN
      modules/xphoto/testdata/dct_image_denoising/sources/06.png
  37. BIN
      modules/xphoto/testdata/dct_image_denoising/sources/07.png
  38. BIN
      modules/xphoto/testdata/dct_image_denoising/sources/08.png
  39. BIN
      modules/xphoto/testdata/dct_image_denoising/sources/09.png
  40. BIN
      modules/xphoto/testdata/dct_image_denoising/sources/10.png
  41. BIN
      modules/xphoto/testdata/dct_image_denoising/sources/11.png
  42. BIN
      modules/xphoto/testdata/dct_image_denoising/sources/12.png
  43. 0
      modules/xphoto/testdata/simple_white_balance/results/01.png
  44. 0
      modules/xphoto/testdata/simple_white_balance/results/02.png
  45. 0
      modules/xphoto/testdata/simple_white_balance/results/03.png
  46. 0
      modules/xphoto/testdata/simple_white_balance/results/04.png
  47. 0
      modules/xphoto/testdata/simple_white_balance/results/05.png
  48. 0
      modules/xphoto/testdata/simple_white_balance/results/06.png
  49. 0
      modules/xphoto/testdata/simple_white_balance/results/07.png
  50. 0
      modules/xphoto/testdata/simple_white_balance/results/08.png
  51. 0
      modules/xphoto/testdata/simple_white_balance/results/09.png
  52. 0
      modules/xphoto/testdata/simple_white_balance/results/10.png
  53. 0
      modules/xphoto/testdata/simple_white_balance/results/11.png
  54. 0
      modules/xphoto/testdata/simple_white_balance/results/12.png
  55. 0
      modules/xphoto/testdata/simple_white_balance/results/13.png
  56. 0
      modules/xphoto/testdata/simple_white_balance/results/14.png
  57. 0
      modules/xphoto/testdata/simple_white_balance/sources/01.png
  58. 0
      modules/xphoto/testdata/simple_white_balance/sources/02.png
  59. 0
      modules/xphoto/testdata/simple_white_balance/sources/03.png
  60. 0
      modules/xphoto/testdata/simple_white_balance/sources/04.png
  61. 0
      modules/xphoto/testdata/simple_white_balance/sources/05.png
  62. 0
      modules/xphoto/testdata/simple_white_balance/sources/06.png
  63. 0
      modules/xphoto/testdata/simple_white_balance/sources/07.png
  64. 0
      modules/xphoto/testdata/simple_white_balance/sources/08.png
  65. 0
      modules/xphoto/testdata/simple_white_balance/sources/09.png
  66. 0
      modules/xphoto/testdata/simple_white_balance/sources/10.png
  67. 0
      modules/xphoto/testdata/simple_white_balance/sources/11.png
  68. 0
      modules/xphoto/testdata/simple_white_balance/sources/12.png
  69. 0
      modules/xphoto/testdata/simple_white_balance/sources/13.png
  70. 0
      modules/xphoto/testdata/simple_white_balance/sources/14.png

@ -1,3 +0,0 @@
set(the_description "Color balance algorithms")
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef)
ocv_define_module(colorbalance opencv_core opencv_imgproc OPTIONAL opencv_highgui)

@ -1,8 +0,0 @@
********************************************
colorbalance. Color balance
********************************************
.. toctree::
:maxdepth: 2
Color balance <colorbalance/whitebalance>

@ -0,0 +1,3 @@
set(the_description "Addon to basic photo module")
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef)
ocv_define_module(xphoto opencv_core opencv_imgproc OPTIONAL opencv_highgui)

@ -27,5 +27,5 @@ due to specific illumination or camera settings).
.. seealso::
:ocv:class:`cvtColor`,
:ocv:class:`equalizeHist`
:ocv:function:`cvtColor`,
:ocv:function:`equalizeHist`

@ -0,0 +1,20 @@
Image denoising techniques
**************************
.. highlight:: cpp
dctDenoising
------------
.. ocv:function:: (const Mat &src, Mat &dst, const float sigma);
The function implements simple dct-based denoising,
link: http://www.ipol.im/pub/art/2011/ys-dct/.
:param src : source image
:param dst : destination image
:param sigma : expected noise standard deviation
:param psize : size of block side where dct is computed
.. seealso::
:ocv:function:`fastNLMeansDenoising`

@ -0,0 +1,9 @@
**********************************
xphoto. Addon to basic photo modul
**********************************
.. toctree::
:maxdepth: 2
Color balance <colorbalance/whitebalance>
Denoising <denoising/denoising>

@ -43,6 +43,7 @@
#ifndef __OPENCV_EDGEDETECTION_HPP__
#define __OPENCV_EDGEDETECTION_HPP__
#include "opencv2/core.hpp"
#include "opencv2/colorbalance/simple_color_balance.hpp"
#include "opencv2/xphoto.hpp"
#include "opencv2/xphoto/simple_color_balance.hpp"
#include "opencv2/xphoto/dct_image_denoising.hpp"
#endif

@ -0,0 +1,71 @@
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of the copyright holders may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#ifndef __OPENCV_DCT_IMAGE_DENOISING_HPP__
#define __OPENCV_DCT_IMAGE_DENOISING_HPP__
/*
* dct_image_denoising.hpp
*
* Created on: Jun 26, 2014
* Author: Yury Gitman
*/
#include <opencv2/core.hpp>
/*! \namespace cv
Namespace where all the C++ OpenCV functionality resides
*/
namespace cv
{
/*! This function implements simple dct-based image denoising,
* link: http://www.ipol.im/pub/art/2011/ys-dct/
*
* \param src : source image
* \param dst : destination image
* \param sigma : expected noise standard deviation
* \param psize : size of block side where dct is computed
*/
CV_EXPORTS_W void dctDenoising(const Mat &src, Mat &dst, const double sigma, const int psize = 16);
}
#endif // __OPENCV_DCT_IMAGE_DENOISING_HPP__

@ -0,0 +1,70 @@
#include "opencv2/xphoto.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/core/utility.hpp"
#include "opencv2/imgproc/types_c.h"
const char* keys =
{
"{i || input image name}"
"{o || output image name}"
"{sigma || expected noise standard deviation}"
"{psize |16| expected noise standard deviation}"
};
int main( int argc, const char** argv )
{
bool printHelp = ( argc == 1 );
printHelp = printHelp || ( argc == 2 && std::string(argv[1]) == "--help" );
printHelp = printHelp || ( argc == 2 && std::string(argv[1]) == "-h" );
if ( printHelp )
{
printf("\nThis sample demonstrates dct-based image denoising\n"
"Call:\n"
" dct_image_denoising -i=<string> -sigma=<double> -psize=<int> [-o=<string>]\n\n");
return 0;
}
cv::CommandLineParser parser(argc, argv, keys);
if ( !parser.check() )
{
parser.printErrors();
return -1;
}
std::string inFilename = parser.get<std::string>("i");
std::string outFilename = parser.get<std::string>("o");
cv::Mat src = cv::imread(inFilename, 1);
if ( src.empty() )
{
printf("Cannot read image file: %s\n", inFilename.c_str());
return -1;
}
double sigma = parser.get<double>("sigma");
if (sigma == 0.0)
sigma = 15.0;
int psize = parser.get<int>("psize");
if (psize == 0)
psize = 16;
cv::Mat res(src.size(), src.type());
cv::dctDenoising(src, res, sigma, psize);
if ( outFilename == "" )
{
cv::namedWindow("denoising result", 1);
cv::imshow("denoising result", res);
cv::waitKey(0);
}
else
cv::imwrite(outFilename, res);
return 0;
}

@ -1,4 +1,4 @@
#include "opencv2/colorbalance.hpp"
#include "opencv2/xphoto.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"

@ -0,0 +1,147 @@
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
// Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
// Third party copyrights are property of their respective owners.
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of Intel Corporation may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#include <vector>
#include <algorithm>
#include <iterator>
#include <iostream>
#include "opencv2/xphoto.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/core.hpp"
#include "opencv2/core/core_c.h"
#include "opencv2/core/types.hpp"
#include "opencv2/core/types_c.h"
namespace cv
{
void grayDctDenoising(const Mat_<float> &src, Mat_<float> &dst, const double sigma, const int psize)
{
CV_Assert( src.channels() == 1 );
Mat_<float> res( src.size(), 0.0f ),
num( src.size(), 0.0f );
for (int i = 0; i <= src.rows - psize; ++i)
for (int j = 0; j <= src.cols - psize; ++j)
{
Mat_<float> patch = src( Rect(j, i, psize, psize) ).clone();
dct(patch, patch);
float * ptr = (float *) patch.data;
for (int k = 0; k < psize*psize; ++k)
if (fabs(ptr[k]) < 3.0f*sigma)
ptr[k] = 0.0f;
idct(patch, patch);
res( Rect(j, i, psize, psize) ) += patch;
num( Rect(j, i, psize, psize) ) += Mat_<float>::ones(psize, psize);
}
res /= num;
res.convertTo( dst, src.type() );
}
void rgbDctDenoising(const Mat_<Vec3f> &src, Mat_<Vec3f> &dst, const double sigma, const int psize)
{
CV_Assert( src.channels() == 3 );
float M[] = {cvInvSqrt(3), cvInvSqrt(3), cvInvSqrt(3),
cvInvSqrt(2), 0.0f, -cvInvSqrt(2),
cvInvSqrt(6), -2.0f*cvInvSqrt(6), cvInvSqrt(6)};
Mat_<Vec3f>::iterator outIt = dst.begin();
for (Mat_<Vec3f>::const_iterator it = src.begin(); it != src.end(); ++it, ++outIt)
{
Vec3f rgb = *it;
*outIt = Vec3f(M[0]*rgb[0] + M[3]*rgb[1] + M[6]*rgb[2],
M[1]*rgb[0] + M[4]*rgb[1] + M[7]*rgb[2],
M[2]*rgb[0] + M[5]*rgb[1] + M[8]*rgb[2]);
}
/*************************************/
std::vector < Mat_<float> > mv;
split(dst, mv);
for (int i = 0; i < mv.size(); ++i)
grayDctDenoising(mv[0], mv[0], sigma, psize);
merge(mv, dst);
/*************************************/
for (Mat_<Vec3f>::iterator it = dst.begin(); it != dst.end(); ++it)
{
Vec3f rgb = *it;
*it = Vec3f(M[0]*rgb[0] + M[1]*rgb[1] + M[2]*rgb[2],
M[3]*rgb[0] + M[4]*rgb[1] + M[5]*rgb[2],
M[6]*rgb[0] + M[7]*rgb[1] + M[8]*rgb[2]);
}
}
/*! This function implements simple dct-based image denoising,
* link: http://www.ipol.im/pub/art/2011/ys-dct/
*
* \param src : source image (rgb, or gray)
* \param dst : destination image
* \param sigma : expected noise standard deviation
* \param psize : size of block side where dct is computed
*/
void dctDenoising(const Mat &src, Mat &dst, const double sigma, const int psize)
{
CV_Assert( src.channels() == 3 || src.channels() == 1 );
int xtype = CV_MAKE_TYPE( CV_32F, src.channels() );
Mat img( src.size(), xtype );
src.convertTo(img, xtype);
if ( img.type() == CV_32FC3 )
rgbDctDenoising( Mat_<Vec3f>(img), Mat_<Vec3f>(img), sigma, psize );
else if ( img.type() == CV_32FC1 )
grayDctDenoising( Mat_<float>(img), Mat_<float>(img), sigma, psize );
else
CV_Assert( false );
img.convertTo( dst, src.type() );
}
}

@ -42,7 +42,7 @@
#include <iterator>
#include <iostream>
#include "opencv2/colorbalance.hpp"
#include "opencv2/xphoto.hpp"
#include "opencv2/imgproc.hpp"
@ -79,10 +79,10 @@ namespace cv
{
std::vector <int> hist(nElements, 0);
Mat_<T>::iterator beginIt = src[i].begin();
Mat_<T>::iterator endIt = src[i].end();
typename Mat_<T>::iterator beginIt = src[i].begin();
typename Mat_<T>::iterator endIt = src[i].end();
for (Mat_<T>::iterator it = beginIt; it != endIt; ++it)
for (typename Mat_<T>::iterator it = beginIt; it != endIt; ++it)
// histogram filling
{
int pos = 0;

@ -0,0 +1,33 @@
#include "test_precomp.hpp"
namespace cvtest
{
TEST(xphoto_simplecolorbalance, regression)
{
cv::String dir = cvtest::TS::ptr()->get_data_path() + "dct_image_denoising/";
int nTests = 12;
int psize = 3.0;
float psnrThreshold = 40.0;
float sigma = 15.0;
for (int i = 0; i < nTests; ++i)
{
cv::String srcName = dir + cv::format( "sources/%02d.png", i + 1);
cv::Mat src = cv::imread( srcName );
cv::String previousResultName = dir + cv::format( "results/%02d.png", i + 1 );
cv::Mat previousResult = cv::imread( previousResultName, 1 );
cv::Mat currentResult;
cv::dctDenoising(src, currentResult, sigma, psize);
cv::Mat sqrError = ( currentResult - previousResult )
.mul( currentResult - previousResult );
cv::Scalar mse = cv::sum(sqrError) / cv::Scalar::all( sqrError.total()*sqrError.channels() );
double psnr = 10*log10(3*255*255/(mse[0] + mse[1] + mse[2]));
EXPECT_GE( psnr, psnrThreshold );
}
}
}

@ -2,9 +2,9 @@
namespace cvtest
{
TEST(colorbalance_SimpleColorBalance, regression)
TEST(xphoto_simplecolorbalance, regression)
{
cv::String dir = cvtest::TS::ptr()->get_data_path();
cv::String dir = cvtest::TS::ptr()->get_data_path() + "simple_white_balance/";
int nTests = 12;
float threshold = 0.005;

@ -0,0 +1,38 @@
source-file = C:\Users\Yury\Projects\opencv\sources\opencv_contrib\modules\xphoto\test\simple_color_balance.cpp
new-output-format=yes
exclude-path = *\boost\*
exclude-path = *\zlib\*
exclude-path = *\png\*
exclude-path = *\libpng\*
exclude-path = *\pnglib\*
exclude-path = *\freetype\*
exclude-path = *\ImageMagick\*
exclude-path = *\jpeglib\*
exclude-path = *\libxml\*
exclude-path = *\libxslt\*
exclude-path = *\tifflib\*
exclude-path = *\wxWidgets\*
exclude-path = *\libtiff\*
exclude-path = C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include
exclude-path = C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include
exclude-path = C:\Program Files (x86)\Windows Kits\8.0\Include\um
exclude-path = C:\Program Files (x86)\Windows Kits\8.0\Include\shared
exclude-path = C:\Program Files (x86)\Windows Kits\8.0\Include\winrt
exclude-path = C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\amd64
exclude-path = C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\lib\amd64
exclude-path = C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x64
openmp-disabled=yes
analysis-mode=0
independent=no
timeout=600
vcprojectdir=C:\Users\Yury\Projects\opencv\build\modules\xphoto
vcinstalldir=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\
platform=x64
cl-params="C:\Users\Yury\Projects\opencv\sources\opencv_contrib\modules\xphoto\test\simple_color_balance.cpp" /D"PVS_STUDIO" /I"C:/Users/Yury/Projects/opencv/sources/opencv_main/modules/highgui/include/" /I"C:/Users/Yury/Projects/opencv/sources/opencv_main/modules/imgproc/include/" /I"C:/Users/Yury/Projects/opencv/sources/opencv_main/modules/core/include/" /I"C:/Users/Yury/Projects/opencv/sources/opencv_main/modules/cudev/include/" /I"C:/Users/Yury/Projects/opencv/sources/opencv_main/modules/ts/include/" /I"C:/Users/Yury/Projects/opencv/build/modules/xphoto/" /I"C:/Users/Yury/Projects/opencv/sources/opencv_main/3rdparty/ippicv/unpack/ippicv_win/include/" /I"C:/Users/Yury/Projects/opencv/build/" /I"C:/Users/Yury/Projects/opencv/sources/opencv_contrib/modules/xphoto/include/" /I"C:/Users/Yury/Projects/opencv/sources/opencv_contrib/modules/xphoto/src/" /I"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v5.5/include/" /I"C:/Users/Yury/Projects/opencv/sources/opencv_contrib/modules/xphoto/test/" /WX- /D"WIN32" /D"_WINDOWS" /D"_CRT_SECURE_NO_DEPRECATE" /D"_CRT_NONSTDC_NO_DEPRECATE" /D"_SCL_SECURE_NO_WARNINGS" /D"NDEBUG" /D"_VARIADIC_MAX=10" /D"__OPENCV_BUILD=1" /D"CMAKE_INTDIR=\"Release\"" /D"_MBCS" /FI"C:/Users/Yury/Projects/opencv/sources/opencv_contrib/modules/xphoto/test/test_precomp.hpp" /Gm- /EHa /MD /GR /Yu"C:/Users/Yury/Projects/opencv/sources/opencv_contrib/modules/xphoto/test/test_precomp.hpp" /TP /fp:precise /I"C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/include/" /I"C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/atlmfc/include/" /I"C:/Program Files (x86)/Windows Kits/8.0/Include/um/" /I"C:/Program Files (x86)/Windows Kits/8.0/Include/shared/" /I"C:/Program Files (x86)/Windows Kits/8.0/Include/winrt/" /I"C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/lib/amd64/" /I"C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/atlmfc/lib/amd64/" /I"C:/Program Files (x86)/Windows Kits/8.0/lib/win8/um/x64/" /nologo /Od /P /c /bigobj /W0
language = C++11
analyzer-db-file= C:\Users\Yury\AppData\Local\Temp\tmp2E30.tmp
stage=inprogress
remove-intermediate-files=yes
preprocessor= visualcpp

@ -1,3 +1,3 @@
#include "test_precomp.hpp"
CV_TEST_MAIN("colorbalance")
CV_TEST_MAIN("xphoto")

@ -13,7 +13,7 @@
#include "opencv2/imgproc.hpp"
#include "opencv2/imgproc/types_c.h"
#include "opencv2/highgui.hpp"
#include "opencv2/colorbalance.hpp"
#include "opencv2/xphoto.hpp"
#include "opencv2/ts.hpp"
#include <iostream>

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 393 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 KiB

Before

Width:  |  Height:  |  Size: 478 KiB

After

Width:  |  Height:  |  Size: 478 KiB

Before

Width:  |  Height:  |  Size: 558 KiB

After

Width:  |  Height:  |  Size: 558 KiB

Before

Width:  |  Height:  |  Size: 548 KiB

After

Width:  |  Height:  |  Size: 548 KiB

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Before

Width:  |  Height:  |  Size: 275 KiB

After

Width:  |  Height:  |  Size: 275 KiB

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Before

Width:  |  Height:  |  Size: 565 KiB

After

Width:  |  Height:  |  Size: 565 KiB

Before

Width:  |  Height:  |  Size: 565 KiB

After

Width:  |  Height:  |  Size: 565 KiB

Before

Width:  |  Height:  |  Size: 367 KiB

After

Width:  |  Height:  |  Size: 367 KiB

Before

Width:  |  Height:  |  Size: 693 KiB

After

Width:  |  Height:  |  Size: 693 KiB

Before

Width:  |  Height:  |  Size: 374 KiB

After

Width:  |  Height:  |  Size: 374 KiB

Before

Width:  |  Height:  |  Size: 294 KiB

After

Width:  |  Height:  |  Size: 294 KiB

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 252 KiB

Before

Width:  |  Height:  |  Size: 312 KiB

After

Width:  |  Height:  |  Size: 312 KiB

Before

Width:  |  Height:  |  Size: 356 KiB

After

Width:  |  Height:  |  Size: 356 KiB

Before

Width:  |  Height:  |  Size: 461 KiB

After

Width:  |  Height:  |  Size: 461 KiB

Before

Width:  |  Height:  |  Size: 856 KiB

After

Width:  |  Height:  |  Size: 856 KiB

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Before

Width:  |  Height:  |  Size: 250 KiB

After

Width:  |  Height:  |  Size: 250 KiB

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 139 KiB

Before

Width:  |  Height:  |  Size: 473 KiB

After

Width:  |  Height:  |  Size: 473 KiB

Before

Width:  |  Height:  |  Size: 473 KiB

After

Width:  |  Height:  |  Size: 473 KiB

Before

Width:  |  Height:  |  Size: 316 KiB

After

Width:  |  Height:  |  Size: 316 KiB

Before

Width:  |  Height:  |  Size: 511 KiB

After

Width:  |  Height:  |  Size: 511 KiB

Before

Width:  |  Height:  |  Size: 297 KiB

After

Width:  |  Height:  |  Size: 297 KiB

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Before

Width:  |  Height:  |  Size: 198 KiB

After

Width:  |  Height:  |  Size: 198 KiB

Loading…
Cancel
Save