非標設備多相機流水線模式緩存圖片(C/S客戶端,c 開發語言) 本文所說流水線方式下存儲圖像是在軟體測量周期慢於圖片周期前提下講解的,如果軟體一直在等待圖片數據,邏輯就沒有那麼複雜。 1、非標設備項目,常規模式測量流程 常規模式下,相機採集圖像信號由上位機控制(無論軟觸發、硬觸發)。每個周期內的 ...
非標設備多相機流水線模式緩存圖片(C/S客戶端,c#開發語言)
本文所說流水線方式下存儲圖像是在軟體測量周期慢於圖片周期前提下講解的,如果軟體一直在等待圖片數據,邏輯就沒有那麼複雜。
1、非標設備項目,常規模式測量流程
graph TD T[常規模式] A[開始] -->B(採集圖像) B --> C(演算法處理) C --> D(得出結果) D --> E(結束)常規模式下,相機採集圖像信號由上位機控制(無論軟觸發、硬觸發)。每個周期內的圖像數據只對應一個產品,產品圖像數據不會提前到來,這種情況下軟體內部開闢一段連續地址空間用來存儲相機數據,重覆使用即可滿足需求。
2、然而對於類似產線流水線方式來料的且相機採集圖像信號由外部控制,軟體沒有去監聽觸發信號。這個時候就需要提前定義好每個產品對應多少張圖片數據,軟體內部從第一片產品開始計數,自動判斷圖像數據對應第幾個產品。常規模式下的儲存方式就沒法滿足需求。由此引出我們今天講解的內容,流水線模式流程圖如下:
相機存儲模塊不僅需要存儲相機的數據還需要區分產品。不然不同產品圖像數據錯亂,測量結果就一直錯下去了。
1、假如把產品編號順序,以1,2,...,n為編號。那麼噹噹前軟體需要用的產品序號與圖像數據所屬產品序號之差≤X時(X是一個固定值),圖像數據存放在記憶體(記憶體緩存1)中;如果>X不存放在記憶體(記憶體緩存1)中。
2、定義一個生產者-消費者類,用來把圖像數據寫到磁碟中。
3、定義一個定時器,用來載入圖像數據。判斷產品序號與當前使用產品序號之差≤X且圖像數據在記憶體(記憶體緩存1)中的找不到,就載入對應磁碟圖片數據到記憶體中(記憶體緩存2)