如何把连续采集到的图像连续保存到内存中然后用opencv处理?
例如工业相机连续采集到的图像,我想暂时保存三张,即,假设现在已经保存了一二三,三张图像,当第四张图像采集的时候,第一张图像自动销毁,第五张图像采集到的时候,第二张自动销毁...
例如工业相机连续采集到的图像,我想暂时保存三张,即,假设现在已经保存了 一二三,三张图像,当第四张图像采集的时候,第一张图像自动销毁,第五张图像采集到的时候,第二张自动销毁,以此类推。听说用数组会比较麻烦,是不是要用堆栈?可否贴上具体例子和代码?谢谢。
展开
1个回答
展开全部
如果你是用C++这个问题很好解决,包含头文件#include<vector>。然后用vector<Mat>即可。
追问
请问有没有具体的代码呢?我是vc++新手,自己凭空写代码还是写不出来。^_^
追答
#include<...>
#include<vector>
using namespace std;
using namespace cv;
using namespace ...;
int main()
{
vector<Mat> images;
Mat img1=imread("...\\lena.jpg")
Mat img2=imread("...\\*.jpg");
Mat img3=imread("...\\*.jpg");
Mat img4=imread("...\\*.jpg");
images.push_back(img1);
images.push_back(img2);
images.push_back(img3);
images.push_back(img4);
return 0;
}
大概是这样吧,vector是一种模板类,相比较数组而言,优势在于可变长度,可以保存任意类型的数据类型。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询