13.1.13. 閾值編輯器

使用 find_blobs() 進行色彩追蹤的成敗,全繫於它的閾值元組,也就是決定哪些像素算作目標的那六個 LAB 數值(或兩個灰階數值)。位於 Tools → Machine Vision → Threshold Editor 之下的閾值編輯器,將尋找這些數值的工作從猜測變成視覺化調整:拖曳滑桿、觀察哪些像素亮起,並在目標呈現純白而其餘一切皆為黑色時把元組複製出來。

閾值編輯器正在調整一個 LAB 閾值:左側為來源影像,右側為目標呈白色的二值化預覽,下方為六個 LAB 滑桿,輸出欄位中則是閾值元組

調整途中的閾值編輯器:右側的二值化預覽顯示底部的閾值元組目前所追蹤的內容。

編輯器可針對即時影格緩衝區或磁碟上的影像檔案開啟。它會並排顯示來源影像與二值化預覽,預覽中的白色像素即為目前閾值所追蹤的像素,下方則為每個通道各有一個最小值與最大值滑桿。以選擇器選擇灰階或 LAB、拖曳滑桿直到二值化預覽將目標分離出來,然後把閾值元組從輸出欄位複製到你的指令碼中。Invert 核取方塊會反轉選取範圍,而 Reset Sliders 則會從完全開放的狀態重新開始。

實務程序如下:在真實的光照下將相機對準真實的場景、執行一個指令碼使影格緩衝區保有一個具代表性的影格、針對影格緩衝區開啟編輯器,然後依序收窄每個通道,對於有色目標通常先調 A 與 B,再最後調 L 並盡可能寬鬆,因為光照對 L 的影響遠大於對 A 和 B 的影響。

13.1.13.1. 就地編輯元組

編輯器也與指令碼編輯器整合。在指令碼中選取一個既有的閾值元組((30, 100, 15, 127, 15, 127) 或一對灰階值),對它按右鍵,並從右鍵選單中選擇閾值編輯器項目。編輯器開啟時便會預先載入那些值,當你按下 OK 時,會將調整後的數值寫回覆蓋選取範圍(按 Cancel 則捨棄它們)。以這種方式為新光照重新調校已部署的指令碼是一件很快就能完成的工作。