c_cpp 垫_

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 垫_相关的知识,希望对你有一定的参考价值。

/* first method */
cv::Mat_<double> myMat_ = ( cv::Mat_<double>(3, 3) << 
    1.0, 2.0, 3.0,
    4.0, 5.0, 6.0,
    7.0, 8.0, 9.0);

cv::Mat_<double> myMat_ = cv::Mat_<double>::zeros(3, 3); // others: eyes, diag, ones

/* second method */
cv::Mat_<double> myMat_(3, 1, 0.0); 
// -> cv::Mat image(3, 1, CV_64FC1, cv::Scalar(0.0));

// create a 100x100 color image and fill it with green(in RGB space)
cv::Mat_<cv::Vec3b> image( 100, 100, cv::Vec3b(0, 255, 0) );

/* third method */
cv::Mat myMat( 100, 100, CV_64F1, cv::Scalar(0) );
cv::Mat_<double>& myMat_ = (cv::Mat_<double>&)myMat; 
/* 
    Note that Mat::at<_Tp>(int y, int x) and 
    Mat_<_Tp>::operator ()(int y, int x) do 
    absolutely the same and run at the same speed
*/ 
int rows = myMat_.rows;
int cols = myMat_.cols;

/* first method */ 
for ( int i=0; i<rows; i++ )
{
    for ( int j=0; j<cols; j++ )
    {
        std::cout << myMat_(i, j) << std::endl;
    }
}

// for multi-channel images/matrices:
for ( int i = 0; i < rows; i++ )
{
    for( int j = 0; j < cols; j++ )
    {
        // scramble the 2nd (red) channel of each pixel
        image(i, j)[2] ^= (uchar)(i ^ j); // ^: exclusive or operation
    }
}

/* second method */
int matCount = rows * cols;
for ( int idx=0; idx < matCount; idx++ )
{
    std::cout << myMat_(idx) <<std::endl;
}

以上是关于c_cpp 垫_的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 填充垫,与 VideoWriter 一起使用

无法访问16UC类型的6通道垫

如何在 OpenCV 中使用高斯过滤单列垫

OpenCv c++ 为基本打印垫功能创建一个 C 包装器?

如何使用角材料在具有可扩展行的表中创建嵌套垫表

Java中自定义注解