c++ - OpenCV:在while循环中填充Mat?

标签 c++ opencv image-processing

我正在使用 OpenCV,并且我正在尝试填充尺寸的垫子

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

并在此 while 循环中用深度值填充它:

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

是否有某种方法可以迭代 Mat,以便将每个深度值存储在 HeightxWidth Mat 索引中?

最佳答案

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#),因为每行像素的开头可能与地址边界对齐。

关于c++ - OpenCV:在while循环中填充Mat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24664090/

相关文章:

python - 检测图像中线的起点和终点(numpy 数组)

python - 如何仅从对象边界获取对象质心?

C++ 禁止声明没有类型的 'binaryTreeType'

opencv - 如何使用 OpenCV 有选择地应用膨胀?

python - 如何在 Python OpenCV 中保存视频

matlab - 文档图像二值化

Android裁剪图像质量问题

javascript - 将 unsigned char 数组转换为 base64 字符串

C++: std::move with rvalue reference 不 move 内容

java - 是否有任何工具/软件可以从 C++ 移植到 Java