#include "opencv2/core.hpp" #include using namespace cv; void core__mat_the_basic_image_container() { QTextStream cout(stdout); Mat M(2,2, CV_8UC3, Scalar(0,0,255)); // qDebug() << "M = " << endl << " " << M << endl << endl; //! [constructor] // create by using the create function() //! [create] M.create(4,4, CV_8UC(2)); // qDebug() << "M = "<< endl << " " << M << endl << endl; //! [create] // create multidimensional matrices //! [init] int sz[3] = {2,2,2}; Mat L(3,sz, CV_8UC(1), Scalar::all(0)); //! [init] // Cannot print via operator << // Create using MATLAB style eye, ones or zero matrix //! [matlab] Mat E = Mat::eye(4, 4, CV_64F); // qDebug() << "E = " << endl << " " << E << endl << endl; Mat O = Mat::ones(2, 2, CV_32F); // qDebug() << "O = " << endl << " " << O << endl << endl; Mat Z = Mat::zeros(3,3, CV_8UC1); // qDebug() << "Z = " << endl << " " << Z << endl << endl; //! [matlab] // create a 3x3 double-precision identity matrix //! [comma] Mat C = (Mat_(3,3) << 0, -1, 0, -1, 5, -1, 0, -1, 0); // qDebug() << "C = " << endl << " " << C << endl << endl; //! [comma] // do the same with initializer_list #ifdef CV_CXX11 //! [list] C = (Mat_({0, -1, 0, -1, 5, -1, 0, -1, 0})).reshape(3); // qDebug() << "C = " << endl << " " << C << endl << endl; //! [list] #endif //! [clone] Mat RowClone = C.row(1).clone(); // qDebug() << "RowClone = " << endl << " " << RowClone << endl << endl; //! [clone] // Fill a matrix with random values //! [random] Mat R = Mat(3, 2, CV_8UC3); randu(R, Scalar::all(0), Scalar::all(255)); //! [random] // Demonstrate the output formatting options //! [out-default] // qDebug() << "R (default) = " << endl << R << endl << endl; //! [out-default] //! [out-python] qDebug() << "R (python) = " << endl << format(R, Formatter::FMT_PYTHON) << endl << endl; //! [out-python] //! [out-numpy] qDebug() << "R (numpy) = " << endl << format(R, Formatter::FMT_NUMPY ) << endl << endl; //! [out-numpy] //! [out-csv] qDebug() << "R (csv) = " << endl << format(R, Formatter::FMT_CSV ) << endl << endl; //! [out-csv] //! [out-c] qDebug() << "R (c) = " << endl << format(R, Formatter::FMT_C ) << endl << endl; //! [out-c] //! [out-point2] Point2f P(5, 1); // qDebug() << "Point (2D) = " << P << endl << endl; //! [out-point2] //! [out-point3] Point3f P3f(2, 6, 7); // qDebug() << "Point (3D) = " << P3f << endl << endl; //! [out-point3] //! [out-vector] std::vector v; v.push_back( (float)CV_PI); v.push_back(2); v.push_back(3.01f); // qDebug() << "Vector of floats via Mat = " << Mat(v) << endl << endl; //! [out-vector] //! [out-vector-points] std::vector vPoints(20); for (size_t i = 0; i < vPoints.size(); ++i) vPoints[i] = Point2f((float)(i * 5), (float)(i % 7)); // qDebug() << "A vector of 2D Points = " << vPoints << endl << endl; //! [out-vector-points] }