2012-10-14 94 views
1

循環緩衝區我在與matlab編程的新嘗試做以下:創建圖像採集

我汽車無拿着相機拍攝的圖像(1024×1024尺寸)使用的GetData功能有實時圖像。 要進行測量,我想使用循環緩衝區只存儲100個圖像 - 更準確地說,我正在考慮存儲100個圖像,並在採集新數據時擦除最舊的圖像,並對最後100張圖像進行測量。

希望我的關注是可以理解的...

感謝您的回答!

回答

0

你所謂的「循環緩衝器」被稱爲一個隊列FIFO(先入先出)。通常這將被存儲在一個鏈接列表數據結構中,其中每個對象(在你的情況下,矩陣)指向下一個對象。然而在Matlab中,沒有內置的鏈表結構,但是在操縱它們時,Matlab數組(向量/矩陣)非常靈活和高效。

因此,您可以將每個圖像作爲矩陣存儲在長度爲100的數組中,爲您提供尺寸爲100x1024x1024的3維矩陣。然後,當您獲取新數據時,只需從數組中移除最後一個矩陣,並在數組的開頭插入一個新矩陣。希望這對你來說足夠快。

祝你好運!

0

您可以創建一個100個1024位矩陣的數組。並參考以下鏈接來維護讀寫位置。 logic of circular buffer

+0

這似乎是一個良好的開端,但是你會考慮用一些簡要的描述和源代碼示例來擴展你的答案嗎? – bytebuster