Matlab 为图像采集创建一个循环缓冲区

Matlab 为图像采集创建一个循环缓冲区,matlab,Matlab,我是matlab编程新手,尝试做以下工作: 我用相机连续拍摄了一幅图像(大小为1024x1024),以便使用getdata函数获得实时图像。 为了进行测量,我想使用循环缓冲区仅存储100幅图像——更准确地说,我想存储100幅图像,并在获取新数据时擦除最旧的图像,然后对最后100幅图像进行测量 希望我的担心是可以理解的 谢谢你的回答 所谓的“循环缓冲区”称为队列或FIFO(先进先出)。通常这将存储在链表数据结构中,其中每个对象(在您的例子中是矩阵)都指向下一个对象。然而,在Matlab中,没有内置

我是matlab编程新手,尝试做以下工作:

我用相机连续拍摄了一幅图像(大小为1024x1024),以便使用getdata函数获得实时图像。 为了进行测量,我想使用循环缓冲区仅存储100幅图像——更准确地说,我想存储100幅图像,并在获取新数据时擦除最旧的图像,然后对最后100幅图像进行测量

希望我的担心是可以理解的

谢谢你的回答

所谓的“循环缓冲区”称为队列或FIFO(先进先出)。通常这将存储在链表数据结构中,其中每个对象(在您的例子中是矩阵)都指向下一个对象。然而,在Matlab中,没有内置的链表结构,但是Matlab数组(向量/矩阵)在操作它们时非常灵活和高效

因此,您可以简单地将每个图像存储为长度为100的数组中的矩阵,从而得到尺寸为100x1024x1024的三维矩阵。然后,当您获得新数据时,只需从数组中删除最后一个矩阵,并在数组的开头插入一个新矩阵。希望这对你来说足够快

祝你好运

所谓的“循环缓冲区”称为队列或FIFO(先进先出)。通常这将存储在链表数据结构中,其中每个对象(在您的例子中是矩阵)都指向下一个对象。然而,在Matlab中,没有内置的链表结构,但是Matlab数组(向量/矩阵)在操作它们时非常灵活和高效

因此,您可以简单地将每个图像存储为长度为100的数组中的矩阵,从而得到尺寸为100x1024x1024的三维矩阵。然后,当您获得新数据时,只需从数组中删除最后一个矩阵,并在数组的开头插入一个新矩阵。希望这对你来说足够快


祝你好运

您可以创建一个包含100个1024x1024矩阵的数组。并参考以下链接以保持读写位置。

您可以创建一个包含100个1024x1024矩阵的数组。并参考以下链接以保持读写位置。

这个问题已经由MathWorks的一名工人回答了:。(他还制作了一个视频:

守则:

buffSize = 10;
circBuff = nan(1,buffSize);
for newest = 1:1000;
   circBuff = [newest circBuff(1:end-1)]
end

检查gnovice将循环缓冲区应用于图像处理的更新。

这个问题已由MathWorks的一名工作人员回答:。(他还制作了一个视频:

守则:

buffSize = 10;
circBuff = nan(1,buffSize);
for newest = 1:1000;
   circBuff = [newest circBuff(1:end-1)]
end

检查Goovice所做的更新,将循环缓冲区应用于图像处理。

这似乎是一个很好的开始,但是你会考虑用一些简短的描述和源代码样例来扩展你的答案吗?这看起来是个好的开始,但是你会考虑用一些简短的描述和源代码示例来扩展你的答案吗?