影像在 LabVIEW Image Display 中顯示會有很多雜訊

更新 Dec 12, 2022

產品資訊

硬件

  • Camera

軟體

  • Vision Development Module
  • Vision Assistant

驅動程式

  • NI-IMAQdx

問題敘述

我嘗試以一個位元深度 10-bit 的單色相機在 LabVIEW 擷取影像。當我在 Measurement & Automation Explorer (MAX) 連續擷取時,影像看起來都很正常,即使是擷取全黑或幾乎全黑的畫面時也是。但當我在 LabVIEW 中擷取影像並呈現在 Image Display 上時,影像會呈現灰色且看起來非常多雜訊,是什麼地方出錯了?

解決方案

您在 LabVIEW 中看到的現象與 Image Display 本身有關。 LabVIEW 中的 Image Display 只能夠呈現位元深度 8-bit 的影像資訊。以這樣的概念為基礎,當提供一個 16-bit 的影像時,LabVIEW 則會映射到 8-bit,同理也會將 10-bit 以及 12-bit 的影像強制映射。

LabVIEW Image Display 預設會將全部的值作動態調整,其演算法是將影像中的最大值與最小值,自動的映射到 0~255 之間。如果是一張 16-bit 的全黑影像但卻顯示灰色且很多雜訊,這是因為顯示的區間被調整過了。

為了改變這樣的顯示現象,則必須要改變 16-bit image mapping conversion mode。改變的方式可以透過以下方式完成,在 Block Diagram 右鍵點擊 Image Display indicator 並選擇 Create»Property Node,選擇屬性為 16-bit Display Mapping»Conversion Method,並且右鍵點擊屬性節點改為寫入。這裡有許多選項可以改變顯示。

上圖顯示了如何透過屬性節點去實現不做動態調整去顯示 10-bit 的單色影像。為了完成這樣的事情,必須設定 Conversion MethodGiven Range,且設定最小值與最大值為 0 及 1023。這樣的設定方式適用於各種位元深度以及各種相機。

你也可以透過以下方式去做到相同效果:右鍵點選 Front Panel 中的 Image Display,並選擇 16-Bit Display Mapping,接著會跳出一個視窗讓您將 Conversion Method 設定為 Given Range,同時也可以設定最小值與最大值。

這樣的作法應該可以消除您在幾乎全白或全黑的影像中所看到的雜訊。再次提醒,這只是顯示上的問題,實際影像數值是不會有任何改變的。