循環緩衝區我在與matlab編程的新嘗試做以下:創建圖像採集
我汽車無拿着相機拍攝的圖像(1024×1024尺寸)使用的GetData功能有實時圖像。 要進行測量,我想使用循環緩衝區只存儲100個圖像 - 更準確地說,我正在考慮存儲100個圖像,並在採集新數據時擦除最舊的圖像,並對最後100張圖像進行測量。
希望我的關注是可以理解的...
感謝您的回答!
循環緩衝區我在與matlab編程的新嘗試做以下:創建圖像採集
我汽車無拿着相機拍攝的圖像(1024×1024尺寸)使用的GetData功能有實時圖像。 要進行測量,我想使用循環緩衝區只存儲100個圖像 - 更準確地說,我正在考慮存儲100個圖像,並在採集新數據時擦除最舊的圖像,並對最後100張圖像進行測量。
希望我的關注是可以理解的...
感謝您的回答!
你所謂的「循環緩衝器」被稱爲一個隊列或FIFO(先入先出)。通常這將被存儲在一個鏈接列表數據結構中,其中每個對象(在你的情況下,矩陣)指向下一個對象。然而在Matlab中,沒有內置的鏈表結構,但是在操縱它們時,Matlab數組(向量/矩陣)非常靈活和高效。
因此,您可以將每個圖像作爲矩陣存儲在長度爲100的數組中,爲您提供尺寸爲100x1024x1024的3維矩陣。然後,當您獲取新數據時,只需從數組中移除最後一個矩陣,並在數組的開頭插入一個新矩陣。希望這對你來說足夠快。
祝你好運!
您可以創建一個100個1024位矩陣的數組。並參考以下鏈接來維護讀寫位置。 logic of circular buffer
此問題已由MathWorks的工作人員回答:Create a buffer matrix for continuous measurements。 (他也做了它的視頻:http://blogs.mathworks.com/videos/2009/05/08/implementing-a-simple-circular-buffer/
代碼:
buffSize = 10;
circBuff = nan(1,buffSize);
for newest = 1:1000;
circBuff = [newest circBuff(1:end-1)]
end
檢查哪些應用循環緩衝區圖像處理由gnovice所做的更新
這似乎是一個良好的開端,但是你會考慮用一些簡要的描述和源代碼示例來擴展你的答案嗎? – bytebuster