Scaling#
「Scaling 」功能與 Pixel Beyond 功能,該功能僅適用於 ace 2 相機。
使用功能#
運作原理#
在縮放過程中,會透過插值將影像尺寸按比例縮小。系統會根據需要對像素值進行加總與平均運算,以便將其映射至縮放後影像的像素上。此舉可提高信噪比。
Scaling 由您選擇的縮放係數所控制。此係數在水平與垂直方向均適用。若係數為 1.0,圖片尺寸將保持不變;若係數小於 1.0,則圖片的寬度與高度都會縮減。
設定Scaling#
要設定縮放功能:
- 請確保相機處於閒置狀態,也就是未擷取影像。
- 停用 Decimation 並 Binning 透過將分桶係數與降採樣係數設定為 1 來達成。
- 將相機中的
ScalingHorizontal參數設為所需的 縮放值.
資訊
- 變更
ScalingHorizontal參數值會自動調整ScalingVertical參數值。這可維持原始的高度與寬度比例。 - 當使用「Scaling 」功能時, Binning 且 Decimation 均不可用。
Scaling 價值觀#
您可以選擇0.125至1 之間的縮放係數。然而,系統僅提供 112 個離散值。若您輸入的數值不在可用範圍內,浮動選控項會自動向上或向下捨入至最接近的可用數值。
要計算有效值,請使用以下公式:16/x,其中 x 為 16 至 128 之間的任何自然數。
| 範例 | 所得的Scaling 因子 | 後果 |
|---|---|---|
| 16 / 16 | 1.0 | 預設設定。Scaling 已停用。原始圖片尺寸不會變更。 、Binning 以及 Decimation 皆可使用。 |
| 16 / 17 | 0.941 | |
| 16 / 18 | 0.888 | |
| 等等 | … | |
| 16 / 32 | 0.5 | 影像大小減少了一半(比例為 2)。 |
| 16 / 64 | 0.25 | 影像大小縮減了 4 倍。 |
| 等等 | … | |
| 16 / 128 | 0.125 | 影像大小縮小了 8 倍(最大縮減幅度)。 |
使用時的注意事項Scaling#
對 ROI 設定的影響#
當您使用縮放功能時,「影像 ROI」和「自動功能 ROI」的設定所指的,是經縮放後之修改影像的行與列,而非感測器的實際行與列。
舉例來說,假設您使用的是配備 3 840 × 2 748 感測器的相機。系統會將全解析度套用 0.5 的縮放係數。在此情況下,ROI 的最大寬度為 1918,最大高度為 1372。ROI 的寬度和高度參數會自動調整。同樣地,您在啟用縮放功能之前所定義的任何偏移量,也會自動進行調整。
當縮放功能被停用時,ROI 會再次擴大,但可能比原始的 ROI 還要小。
資訊
Basler 建議您在停用縮放功能後,務必檢查影像 ROI 的設定,並在必要時手動將影像 ROI 恢復至所需的尺寸與位置。
降低解析度#
有效運用縮放功能會降低攝影機影像感測器的解析度。例如,若您將具備 3 840 x 2 748 感測器的攝影機設定為縮放係數 0.25,則該攝影機的有效解析度將降至 954 x 682。
四捨五入造成的損失#
在縮放過程中,影像尺寸經常會被四捨五入。若反覆變更縮放係數,四捨五入的影響便會累積。當恢復至先前的影像尺寸時,因四捨五入而遺失的尺寸將無法恢復。
為避免累積的四捨五入損失,請手動恢復先前影像的尺寸。或者,可恢復至「參考」影像尺寸(例如全解析度),並手動指定影像尺寸,以避免四捨五入錯誤。
範例程式碼#
ace Classic/U/L GigE 相機#
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* Set horizontal scaling to 0.5 */
errRes = PylonDeviceSetFloatFeature(hdev, "ScalingHorizontalAbs", 0.5);
CHECK(errRes);
/* Disable scaling */
errRes = PylonDeviceSetIntegerFeature(hdev, "ScalingHorizontalAbs", 1);
CHECK(errRes);
其他相機#
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* Set horizontal scaling to 0.5 */
errRes = PylonDeviceSetFloatFeature(hdev, "ScalingHorizontal", 0.5);
CHECK(errRes);
/* Disable scaling */
errRes = PylonDeviceSetIntegerFeature(hdev, "ScalingHorizontal", 1);
CHECK(errRes);
您也可以 use the pylon Viewer 來輕鬆設定參數。