+ \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}
+ }
++
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
{
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
}
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) );
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);
+ }
+}
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;