美文网首页
OpenCV笔记(1)Mat - The Basic Image

OpenCV笔记(1)Mat - The Basic Image

作者: ToddMa | 来源:发表于2018-08-07 09:40 被阅读0次

    https://docs.opencv.org/master/d6/d6d/tutorial_mat_the_basic_image_container.html
    cv::Mat::copyTo
    cv::Mat::clone

    Mat A, C;                         // creates just the header parts
    A=imread(argv[1], [IMREAD_COLOR]);//here we'll know the method used (allocate matrix)
    Mat B(A);                         // Use the copy constructor
    C = A;                            // Assignment operator
    
    Mat D (A, Rect(10, 10, 100, 100) ); // using a rectangle
    Mat E = A(Range::all(), Range(1,3)); // using row and column boundaries
    
    Mat F = A.clone();
    Mat G;
    A.copyTo(G);
    
    Mat M(2,2, CV_8UC3, Scalar(0,0,255));
    cout << "M = " << endl << " " << M << endl << endl;
    
    image.png
    M.create(4,4, CV_8UC(2));
    cout << "M = "<< endl << " " << M << endl << endl;
    
    image.png
    Mat E = Mat::eye(4, 4, CV_64F);
    cout << "E = " << endl << " " << E << endl << endl;
    
    Mat O = Mat::ones(2, 2, CV_32F);
    cout << "O = " << endl << " " << O << endl << endl;
    
    Mat Z = Mat::zeros(3,3, CV_8UC1);
    cout << "Z = " << endl << " " << Z << endl << endl;
    
    image.png
    Mat C = (Mat_<double>(3,3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
    cout << "C = " << endl << " " << C << endl << endl;
    
    C = (Mat_<double>({0, -1, 0, -1, 5, -1, 0, -1, 0})).reshape(3);
    cout << "C = " << endl << " " << C << endl << endl;
    
    Mat RowClone = C.row(1).clone();
    cout << "RowClone = " << endl << " " << RowClone << endl << endl;
    
    image.png
    image.png
    Mat R = Mat(3, 2, CV_8UC3);
    randu(R, Scalar::all(0), Scalar::all(255));
    cout << "R (default) = " << endl <<        R           << endl << endl;
    cout << "R (python)  = " << endl << format(R, Formatter::FMT_PYTHON) << endl << endl;
    cout << "R (csv)     = " << endl << format(R, Formatter::FMT_CSV   ) << endl << endl;
    cout << "R (numpy)   = " << endl << format(R, Formatter::FMT_NUMPY ) << endl << endl;
    cout << "R (c)       = " << endl << format(R, Formatter::FMT_C     ) << endl << endl;
    
    Point2f P(5, 1);
    cout << "Point (2D) = " << P << endl << endl;
    
    Point3f P3f(2, 6, 7);
    cout << "Point (3D) = " << P3f << endl << endl;
    
    vector<float> v;
    v.push_back( (float)CV_PI); 
    v.push_back(2);
    v.push_back(3.01f);
    cout << "Vector of floats via Mat = " << Mat(v) << endl << endl;
    
    vector<Point2f> vPoints(20);
    for (size_t i = 0; i < vPoints.size(); ++i)
      vPoints[i] = Point2f((float)(i * 5), (float)(i % 7));
    cout << "A vector of 2D Points = " << vPoints << endl << endl;
    
    image.png
    image.png
    image.png
    image.png

    相关文章

      网友评论

          本文标题:OpenCV笔记(1)Mat - The Basic Image

          本文链接:https://www.haomeiwen.com/subject/cxigvftx.html