1

如何,我可以使用 OpenCV 获得一个缓冲区或图像数组“Mat”吗?

我的意思是:有一组图像,想要拿起并放入一个数组中

我怎样才能做到这一点?就像 C++ 普通数组样式一样?

 Mat images[2];

    images[0] = imread(...);
    images[1] = imread(..);

提前致谢。

4

2 回答 2

7

只需将 cvMat 对象数组声明为-

Mat image_array[10];      // array of 10 images

现在根据数组的索引将图像读入其中

image_array[0]=imread("/home/me/Pictures/img1.png",1);
image_array[1]=imread("/home/me/Pictures/img2.png",1);
......
......
image_array[9]=imread("/home/me/Pictures/img9.png",1);
于 2013-05-05T12:38:41.850 回答
2

我必须实现类似的东西,我不需要查看图像,我只想从中提取一些数据,但我还是要添加 imread。这是代码:

Mat mat[10];enter code here
char c[n]; //n is the size of chars in the directory of images

for(int i=1;i<=10;i++)
{
 sprintf(c,"/directory to images/%d.jpg",i);
 mat[i] = imread(c);
 imshow("mat",mat[i]);
 waitKey(0);
}

这将显示数组中的第一个图像,您必须按任意键才能转到下一个图像。希望这可以帮助

于 2019-05-26T23:11:55.950 回答