OpenCV:在while循环中填充mat?

时间:2014-07-09 21:28:11

标签: c++ opencv image-processing

我正在使用OpenCV,而我正在尝试填充大小的垫子

cv::Mat Mat = cv::Mat(DEPTH_HEIGHT, DEPTH_WIDTH, CV_16U);

并在此while循环中填入depth值:

        while (curr < dataEnd) {
        // Get depth in millimeters
        USHORT depth = NuiDepthPixelToDepth(*curr++);
        cv::Mat Mat++ = depth;
        }

有没有办法迭代到Mat,这样每个深度值都存储在HeightxWidth Mat索引中?

1 个答案:

答案 0 :(得分:2)

for (i=0;i<mat.rows;i++)
{
 uint16_t* ptr = mat.ptr<uint16_t>(i);
 for (j=0;j<mat.cols;j++)
 {
   *ptr++ = value for pixel (i,j)
 }     
}

请注意,您应该使用ptr(row#),因为每行像素的起点可能与地址边界对齐。