非標設備多相機流水線模式緩存圖片

非標設備多相機流水線模式緩存圖片(C/S客戶端,c#開發語言)

​ 本文所說流水線方式下存儲圖像是在軟件測量週期慢於圖片週期前提下講解的,若是軟件一直在等待圖片數據,邏輯就沒有那麼複雜。算法

一、非標設備項目,常規模式測量流程c#

graph TD T[常規模式] A[開始] -->B(採集圖像) B --> C(算法處理) C --> D(得出結果) D --> E(結束)

常規模式下,相機採集圖像信號由上位機控制(不管軟觸發、硬觸發)。每一個週期內的圖像數據只對應一個產品,產品圖像數據不會提早到來,這種狀況下軟件內部開闢一段連續地址空間用來存儲相機數據,重複使用便可知足需求。緩存

二、然而對於相似產線流水線方式來料的且相機採集圖像信號由外部控制,軟件沒有去監聽觸發信號。這個時候就須要提早定義好每一個產品對應多少張圖片數據,軟件內部從第一片產品開始計數,自動判斷圖像數據對應第幾個產品。常規模式下的儲存方式就無法知足需求。由此引出咱們今天講解的內容,流水線模式流程圖以下:blog

相機存儲模塊不只須要存儲相機的數據還須要區分產品。否則不一樣產品圖像數據錯亂,測量結果就一直錯下去了。圖片

一、假如把產品編號順序,以1,2,...,n爲編號。那麼噹噹前軟件須要用的產品序號與圖像數據所屬產品序號之差≤X時(X是一個固定值),圖像數據存放在內存(內存緩存1)中;若是>X不存放在內存(內存緩存1)中。內存

二、定義一個生產者-消費者類,用來把圖像數據寫到磁盤中。開發

三、定義一個定時器,用來加載圖像數據。判斷產品序號與當前使用產品序號之差≤X且圖像數據在內存(內存緩存1)中的找不到,就加載對應磁盤圖片數據到內存中(內存緩存2)產品

相關文章
相關標籤/搜索