@ -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) |
@ -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> |
@ -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/imgproc.hpp" |
||||||
#include "opencv2/highgui.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() ); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -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 ); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -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" |
#include "test_precomp.hpp" |
||||||
|
|
||||||
CV_TEST_MAIN("colorbalance") |
CV_TEST_MAIN("xphoto") |
After Width: | Height: | Size: 375 KiB |
After Width: | Height: | Size: 471 KiB |
After Width: | Height: | Size: 520 KiB |
After Width: | Height: | Size: 393 KiB |
After Width: | Height: | Size: 154 KiB |
After Width: | Height: | Size: 309 KiB |
After Width: | Height: | Size: 257 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 425 KiB |
After Width: | Height: | Size: 181 KiB |
After Width: | Height: | Size: 505 KiB |
After Width: | Height: | Size: 502 KiB |
After Width: | Height: | Size: 607 KiB |
After Width: | Height: | Size: 652 KiB |
After Width: | Height: | Size: 652 KiB |
After Width: | Height: | Size: 625 KiB |
After Width: | Height: | Size: 583 KiB |
After Width: | Height: | Size: 577 KiB |
After Width: | Height: | Size: 570 KiB |
After Width: | Height: | Size: 146 KiB |
After Width: | Height: | Size: 624 KiB |
After Width: | Height: | Size: 562 KiB |
After Width: | Height: | Size: 639 KiB |
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 |