跳至內容
測試伺服器
開發伺服器

Configuring Camera Parameters#

本主題提供部分最常用參數的說明。

Exposure Time#

Exposure Time 定義了每張畫格中相機感光元件曝光於光線下的時間長度。它是影像擷取中最重要的參數之一,因為它會直接影響影像亮度、動態模糊和 Quality。

Exposure Time 的影響#

在曝光期間,感光元件會收集光子並將其轉換為電訊號。Exposure Time 越長,累積的光線就越多。以下視覺化圖表總結了此過程:

Short exposure → less light → darker image
Long exposure  → more light → brighter image

Exposure Time 的長度會產生以下影響:

  • 亮度
    • 較長的曝光會增加亮度。
    • 較短的曝光會降低亮度。
  • 動態模糊
    • 長時間曝光會導致移動中的物件顯得模糊。
    • 短時間曝光會導致移動中的物件顯得靜止。
  • 影像雜訊
    • 極短的曝光可能會導致影像產生雜訊(訊號較弱)。
    • 較長的曝光可改善訊號 Quality,但可能會引入動態模糊。

根據您的應用,在指定 Exposure Time 時必須決定優先考量哪種影響。下表可作為參考依據。

目標 建議曝光時間
凍結高速移動 短曝光
最大化亮度 長曝光
穩定測量 平衡曝光

設定範例#

camera.ExposureAuto.Value = "Off"
camera.ExposureTime.Value = 3000  # Value, usually in microseconds
  • ExposureAuto = Off 確保手動控制。
  • ExposureTime 指定於 微秒 (µs).

重點摘要#

選擇 Exposure Time 時必須隨時考量以下因素:

  • 景物亮度
  • 移動速度
  • 影格率需求

指定正確的 Exposure Time 是建構可靠視覺系統的基本步驟。

camera.ExposureAuto.Value = "Off"
camera.ExposureTime.Value = 3000  # Value is in microseconds. Check ValueRange for valid values.
#alternatively:
camera.ExposureTimeAbs.SetValue(3000, pylon.FloatValueCorrection_ClipToRange)

Gain#

gain 控制感光元件信號在曝光後的電子放大效果。與 Exposure Time 不同,gain 不會增加擷取的光線量,而是放大現有的信號。此視覺化圖表總結了這一點:

Low gain  → weak amplification → darker but cleaner image
High gain → strong amplification → brighter but noisier image

Gain 的影響#

  • 亮度
    • 提高 gain 會使影像變得更亮。
    • 不會增加實際的信號強度,只會放大已經擷取的內容。
  • 影像雜訊
    • 較高的 gain 會同時放大信號與雜訊。
    • 過高的 gain 會導致影像出現顆粒感。
  • 細節 Quality
    • 高 gain 可能會降低對比度以及細節的可見度。

設定範例#

camera.GainAuto.Value = "Off"
camera.Gain.Value = 5

重點摘要#

  • 當您無法增加 Exposure Time 時(例如為了避免產生動態模糊),請使用 gain。
  • 當影像 Quality 與信號雜訊比至關重要時,請避免過高的 gain。

一般原則:只要可能,請盡量優先選擇較長的 Exposure Time,而非較高的 gain。

ROI#

region of interest (ROI) 定義了每個影格實際讀出並傳輸的感光元件部分。依預設,ROI 的大小與感光元件相同(完整解析度)。透過更改其寬度和高度,您只需專注於場景中相關的部分。此視覺化圖表總結了這一點:

Full sensor → large image → more data
Part of the sensor → cropped image → less data

如果您縮減 ROI,指定區域以外的任何像素將不會被讀出或傳輸。

您可以使用以下工具調整 ROI: Width, Height, OffsetX 進行明確的生命週期管理即呼叫 OffsetY 參數。 Width + OffsetX 受限於 MaxWidth 進行明確的生命週期管理即呼叫 Height + OffsetY 受限於 MaxHeight.

資訊

  • ROI 尺寸受硬體限制(增量、對齊)。
  • 最大 ROI 等於完整感光元件解析度。
  • 若要變更 ROI,必須停止影像擷取。

ROI 變更的影響#

  • 增加影格率: 每個影格的資料較少,代表讀出速度更快且影格率 (fps) 更高。
  • 降低頻寬: 這對於 GigE 相機而言尤為重要。
  • 降低處理負載:較小的影像可實現更快的影像處理(OpenCV/AI)。
  • 聚焦於相關區域:允許您忽略場景中不相關的部分。

下表可作為較小的 ROI 如何讓您的應用受益的指引。

使用情境 較小 ROI 的優勢
追蹤小型物件 更快的處理速度與更少的雜訊
高速檢測 提高幀率
區域內的邊緣檢測 減少運算量

設定範例#

camera.StopGrabbing()

camera.Width.Value = 640
camera.Height.Value = 480

camera.StartGrabbing()

重點摘要#

縮小 ROI 是機器視覺系統中最有效的效能提升工具之一。透過從源頭減少資料量,您可以改善以下方面:

  • 傳輸量
  • 延遲
  • 系統擴充性

與軟體影像裁切不同,縮小 ROI 會在資料進入管線之前消除不必要的資料。

Static Defect Pixel Correction#

Defect Pixel Correction 可讓您將感測器個別像素靈敏度差異的影響降至最低。此功能並非適用於所有相機。因此,務必針對目前裝置可能不支援此功能的情況預先做好準備。

資訊

  • 使用 pylon.StaticDefectPixelCorrection 與 camera.NodeMap.
  • 使用 ListType_Factory 以讀取原廠提供的缺陷像素。
  • 使用 ListType_User 以讀取/更新使用者專屬的缺陷像素。
  • 擷取 pylon.RuntimeException 進行明確的生命週期管理即呼叫 pylon.InvalidArgumentException 適用於不支援的型號。

設定範例#

from pypylon import pylon

with pylon.InstantCamera(pylon.FirstFound) as camera:
    # Read the factory defect pixel list.
    factory_ok, factory_pixels = pylon.StaticDefectPixelCorrection.GetDefectPixelList(
        camera.NodeMap,
        [],
        pylon.StaticDefectPixelCorrection.ListType_Factory,
    )

    # Build/update the user list as (x, y) or (x, y, type) tuples.
    user_pixels = [(100, 200), (300, 400, 0)]

    try:
        normalize_ok, normalized_pixels = pylon.StaticDefectPixelCorrection.NormalizePixelList(
            camera.NodeMap,
            user_pixels,
        )

        set_ok, written_pixels = pylon.StaticDefectPixelCorrection.SetDefectPixelList(
            camera.NodeMap,
            normalized_pixels,
            pylon.StaticDefectPixelCorrection.ListType_User,
        )

        get_ok, read_back_pixels = pylon.StaticDefectPixelCorrection.GetDefectPixelList(
            camera.NodeMap,
            [],
            pylon.StaticDefectPixelCorrection.ListType_User,
        )
    except (pylon.RuntimeException, pylon.InvalidArgumentException):
        # Camera does not provide this feature.
        pass

重點摘要#

將靜態缺陷像素校正視為裝置相依功能:在可用時使用,在不可用時平穩降級。