gpt4 book ai didi

c++ - OpenCV图像阵列,4D矩阵

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:33:49 26 4
gpt4 key购买 nike

我正在尝试将一个 IPL_DEPTH_8U 的 3 channel 图像存储到一个数组中,这样我就可以在内存中存储 100 个图像。

为了初始化我的 4D 数组,我使用了以下代码(行、列、 channel 、存储):

int size[] = { 324, 576, 3, 100 };
CvMatND* cvImageBucket; = cvCreateMatND(3, size, CV_8U);

然后我创建了一个矩阵并将图像转换为矩阵

CvMat *matImage = cvCreateMat(Image->height,Image->width,CV_8UC3 );
cvConvert(Image, matImage );

我将如何/访问 CvMatND 以将 CvMat 复制到它存储的位置?

例如cvImageBucket(:,:,:,0) = matImage;//将第一张图片复制到数组中

最佳答案

您已将其标记为 C 和 C++。如果你想在 C++ 中工作,你可以使用(在我看来)更简单的 cv::Mat structure存储每个图像,然后使用它们填充 vector包含所有图像。

例如:

std::vector<cv::Mat> imageVector;
cv::Mat newImage;

newImage = getImage(); // where getImage() returns the next image,
// or an empty cv::Mat() if there are no more images
while (!newImage.empty())
{
// Add image to vector
imageVector.push_back(image);

// get next image
newImage = getImage();
}

关于c++ - OpenCV图像阵列,4D矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8386278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com