Mergin itseez
authorFedor Morozov <f-morozov@ya.ru>
Wed, 18 Sep 2013 14:55:12 +0000 (18:55 +0400)
committerFedor Morozov <f-morozov@ya.ru>
Wed, 18 Sep 2013 14:55:12 +0000 (18:55 +0400)
1  2 
doc/mymath.sty
doc/tutorials/tutorials.rst
modules/highgui/CMakeLists.txt
modules/highgui/src/grfmt_tiff.cpp
modules/highgui/src/loadsave.cpp
modules/highgui/test/test_grfmt.cpp
modules/photo/src/denoising.cpp
modules/python/src2/cv2.cpp

diff --cc doc/mymath.sty
@@@ -1,0 -1,41 +1,42 @@@
+ \ProvidesPackage{mymath}
+ \newcommand{\matTT}[9]{
+ \[
+ \left|\begin{array}{ccc}
+  #1 & #2 & #3\\
+  #4 & #5 & #6\\
+  #7 & #8 & #9
+ \end{array}\right|
+ \]
+ }
+ \newcommand{\fork}[4]{
+   \left\{
+   \begin{array}{l l}
+   #1 & \mbox{#2}\\
+   #3 & \mbox{#4}\\
+   \end{array} \right.}
+ \newcommand{\forkthree}[6]{
+   \left\{
+   \begin{array}{l l}
+   #1 & \mbox{#2}\\
+   #3 & \mbox{#4}\\
+   #5 & \mbox{#6}\\
+   \end{array} \right.}
+ \newcommand{\vecthree}[3]{
+ \begin{bmatrix}
+  #1\\
+  #2\\
+  #3
+ \end{bmatrix}
+ }
+ \newcommand{\vecthreethree}[9]{
+ \begin{bmatrix}
+  #1 & #2 & #3\\
+  #4 & #5 & #6\\
+  #7 & #8 & #9
+ \end{bmatrix}
+ }
++
@@@ -233,8 -218,7 +233,8 @@@ As always, we would be happy to hear yo
     video/table_of_content_video/table_of_content_video
     objdetect/table_of_content_objdetect/table_of_content_objdetect
     ml/table_of_content_ml/table_of_content_ml
 +   photo/table_of_content_photo/table_of_content_photo
     gpu/table_of_content_gpu/table_of_content_gpu
-    contrib/table_of_content_contrib/table_of_content_contrib
+    bioinspired/table_of_content_bioinspired/table_of_content_bioinspired
     ios/table_of_content_ios/table_of_content_ios
     general/table_of_content_general/table_of_content_general
Simple merge
Simple merge
@@@ -59,37 -58,35 +59,42 @@@ struct ImageCodecInitialize
  {
      ImageCodecInitializer()
      {
++<<<<<<< HEAD
 +        decoders.push_back( new BmpDecoder );
 +        encoders.push_back( new BmpEncoder );
 +              decoders.push_back( new HdrDecoder );
 +        encoders.push_back( new HdrEncoder );
++=======
+         decoders.push_back( makePtr<BmpDecoder>() );
+         encoders.push_back( makePtr<BmpEncoder>() );
++>>>>>>> 99a43257d5912ff215016e1cf5f4e0c2a934b72f
      #ifdef HAVE_JPEG
-         decoders.push_back( new JpegDecoder );
-         encoders.push_back( new JpegEncoder );
+         decoders.push_back( makePtr<JpegDecoder>() );
+         encoders.push_back( makePtr<JpegEncoder>() );
      #endif
      #ifdef HAVE_WEBP
-         decoders.push_back( new WebPDecoder );
-         encoders.push_back( new WebPEncoder );
+         decoders.push_back( makePtr<WebPDecoder>() );
+         encoders.push_back( makePtr<WebPEncoder>() );
      #endif
-         decoders.push_back( new SunRasterDecoder );
-         encoders.push_back( new SunRasterEncoder );
-         decoders.push_back( new PxMDecoder );
-         encoders.push_back( new PxMEncoder );
+         decoders.push_back( makePtr<SunRasterDecoder>() );
+         encoders.push_back( makePtr<SunRasterEncoder>() );
+         decoders.push_back( makePtr<PxMDecoder>() );
+         encoders.push_back( makePtr<PxMEncoder>() );
      #ifdef HAVE_TIFF
-         decoders.push_back( new TiffDecoder );
+         decoders.push_back( makePtr<TiffDecoder>() );
      #endif
-         encoders.push_back( new TiffEncoder );
+         encoders.push_back( makePtr<TiffEncoder>() );
      #ifdef HAVE_PNG
-         decoders.push_back( new PngDecoder );
-         encoders.push_back( new PngEncoder );
+         decoders.push_back( makePtr<PngDecoder>() );
+         encoders.push_back( makePtr<PngEncoder>() );
      #endif
      #ifdef HAVE_JASPER
-         decoders.push_back( new Jpeg2KDecoder );
-         encoders.push_back( new Jpeg2KEncoder );
+         decoders.push_back( makePtr<Jpeg2KDecoder>() );
+         encoders.push_back( makePtr<Jpeg2KEncoder>() );
      #endif
      #ifdef HAVE_OPENEXR
-         decoders.push_back( new ExrDecoder );
-         encoders.push_back( new ExrEncoder );
+         decoders.push_back( makePtr<ExrDecoder>() );
+         encoders.push_back( makePtr<ExrEncoder>() );
      #endif
      }
  
@@@ -271,8 -269,9 +276,8 @@@ static bool imwrite_( const String& fil
      CV_Assert( image.channels() == 1 || image.channels() == 3 || image.channels() == 4 );
  
      ImageEncoder encoder = findEncoder( filename );
-     if( encoder.empty() )
+     if( !encoder )
          CV_Error( CV_StsError, "could not find a writer for the specified extension" );
 -
      if( !encoder->isFormatSupported(image.depth()) )
      {
          CV_Assert( encoder->isFormatSupported(CV_8U) );
@@@ -387,7 -479,7 +479,11 @@@ TEST(Highgui_WebP, encode_decode_lossle
  TEST(Highgui_WebP, encode_decode_lossy_webp)
  {
      cvtest::TS& ts = *cvtest::TS::ptr();
++<<<<<<< HEAD
 +    string input = string(ts.get_data_path()) + "/../cv/shared/lena.png";
++=======
+     std::string input = std::string(ts.get_data_path()) + "../cv/shared/lena.png";
++>>>>>>> 99a43257d5912ff215016e1cf5f4e0c2a934b72f
      cv::Mat img = cv::imread(input);
      ASSERT_FALSE(img.empty());
  
      }
  }
  
+ TEST(Highgui_WebP, encode_decode_with_alpha_webp)
+ {
+     cvtest::TS& ts = *cvtest::TS::ptr();
+     std::string input = std::string(ts.get_data_path()) + "../cv/shared/lena.png";
+     cv::Mat img = cv::imread(input);
+     ASSERT_FALSE(img.empty());
+     std::vector<cv::Mat> imgs;
+     cv::split(img, imgs);
+     imgs.push_back(cv::Mat(imgs[0]));
+     imgs[imgs.size() - 1] = cv::Scalar::all(128);
+     cv::merge(imgs, img);
+     string output = cv::tempfile(".webp");
+     EXPECT_NO_THROW(cv::imwrite(output, img));
+     cv::Mat img_webp = cv::imread(output);
+     remove(output.c_str());
+     EXPECT_FALSE(img_webp.empty());
+     EXPECT_EQ(4,   img_webp.channels());
+     EXPECT_EQ(512, img_webp.cols);
+     EXPECT_EQ(512, img_webp.rows);
+ }
  #endif
 +
 +TEST(Highgui_Hdr, regression)
 +{
 +    string folder = string(cvtest::TS::ptr()->get_data_path()) + "/readwrite/";
 +      string name_rle = folder + "rle.hdr";
 +      string name_no_rle = folder + "no_rle.hdr";
 +      Mat img_rle = imread(name_rle, -1);
 +      ASSERT_FALSE(img_rle.empty()) << "Could not open " << name_rle;
 +      Mat img_no_rle = imread(name_no_rle, -1);
 +      ASSERT_FALSE(img_no_rle.empty()) << "Could not open " << name_no_rle;
 +
 +      double min = 0.0, max = 1.0;
 +      minMaxLoc(abs(img_rle - img_no_rle), &min, &max);
 +    ASSERT_FALSE(max > DBL_EPSILON);
 +      string tmp_file_name = tempfile(".hdr");
 +      vector<int>param(1); 
 +      for(int i = 0; i < 2; i++) {
 +              param[0] = i;
 +              imwrite(tmp_file_name, img_rle, param);
 +              Mat written_img = imread(tmp_file_name, -1);
 +              ASSERT_FALSE(written_img.empty()) << "Could not open " << tmp_file_name;
 +              minMaxLoc(abs(img_rle - written_img), &min, &max);
 +        ASSERT_FALSE(max > DBL_EPSILON);
 +      }
 +}
Simple merge
@@@ -131,18 -135,8 +135,19 @@@ typedef Ptr<StereoMatcher> Ptr_StereoMa
  typedef Ptr<StereoBM> Ptr_StereoBM;
  typedef Ptr<StereoSGBM> Ptr_StereoSGBM;
  
 +typedef Ptr<Tonemap> Ptr_Tonemap;
 +typedef Ptr<TonemapDrago> Ptr_TonemapDrago;
 +typedef Ptr<TonemapReinhardDevlin> Ptr_TonemapReinhardDevlin;
 +typedef Ptr<TonemapDurand> Ptr_TonemapDurand;
 +typedef Ptr<TonemapMantiuk> Ptr_TonemapMantiuk;
 +typedef Ptr<AlignMTB> Ptr_AlignMTB;
 +typedef Ptr<CalibrateDebevec> Ptr_CalibrateDebevec;
 +typedef Ptr<CalibrateRobertson> Ptr_CalibrateRobertson;
 +typedef Ptr<MergeDebevec> Ptr_MergeDebevec;
 +typedef Ptr<MergeMertens> Ptr_MergeMertens;
 +
  typedef Ptr<cv::softcascade::ChannelFeatureBuilder> Ptr_ChannelFeatureBuilder;
+ typedef Ptr<CLAHE> Ptr_CLAHE;
  
  typedef SimpleBlobDetector::Params SimpleBlobDetector_Params;