companding_mu_law — 2D gray op

• 資料種類:image → image

• 呼叫:fullseye.apply(img, "companding_mu_law", a=0.5, b=0.5)(2-D 的模型是一張圖 + 兩個純量旋鈕 a,b∈[0,1])

companding_mu_law: input → output

*圖為在 128×128 合成輸入上實際執行的輸出。左為輸入,右為輸出。點雲以俯視散點顯示(亮度 = z),一維序列為折線,體資料為沿 z 的最大值投影,影片為中間影格,複數影像為振幅;無法成像的回傳值直接顯示數值。*

掃描旋鈕 a(0.1 / 0.5 / 0.9,另一旋鈕取預設):

▸ companding_mu_law: 旋鈕 a 掃描 (文件網站)

掃描旋鈕 b(0.1 / 0.5 / 0.9,另一旋鈕取預設):

▸ companding_mu_law: 旋鈕 b 掃描 (文件網站)

換別的影像(合成場景 / 照片 / 硬幣。上排為輸入,下排為對應輸出。旋鈕取預設):

▸ companding_mu_law: 其他輸入影像 (文件網站)

*第 4 欄是彩色 (H,W,3) 輸入。此運算子能正確處理顏色而不跨通道(不把顏色通道當作第三個空間軸摺積)。*

用法

μ 律壓擴(compand = compress + expand)。a 為 μ,b 為位元數。

以 F(x) = ln(1 + mu*x) / ln(1 + mu) 拉伸暗部後再量化,然後以逆轉換還原。結果是步長在暗部變細、在亮部變粗 —— 人眼和成像系統都對暗部的差異敏感,因此在相同位元數下觀感上的劣化較小。與電話語音編碼(G.711)原理相同,在影像中相當於對數式的灰階分配。

a 給出 mu = 1 + 254*a(1〜255,a=0 時實際上保持原樣),b 是位元數 1〜8。

與 Lloyd–Max 的差別:那個 op 配合該影像的分布,因此碼表隨影像而變。此 op 是固定的曲線,因此可以與其他影像、其他裝置的值直接比較。若「分布呈對數式偏斜」的假定成立,效能接近;若不成立,則 Lloyd–Max 較好。

適用條件(附實測):輸入在 [0,1] 內,且像素集中在 0 附近時。在指數分布的合成影像上與均勻量化比較,暗部集中時平方誤差降到 0.57 倍(3 bit)、0.51 倍(5 bit)。亮部集中時反而惡化為 7.7 倍(3 bit)、18 倍(5 bit) —— 白底上的暗刮痕這類檢測影像正好屬於這種情況,此時應先通過 1 - x 再套用。階數非常少時(2 bit),曲線過強,即使分布有偏也會輸給均勻量化(實測 1.17 倍)。

詳細使用指南

• gallery2d_gray_arith 族使用指南

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

在 Studio 中試試

下面的程式已確認可以執行(與圖相同的輸入)。在 Studio 說明中,此區塊會變成按鈕,可當場載入並執行。

companding_mu_law 0.50 0.50

▸ 載入此管線  ·  載入並執行

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• gallery2d_gray_arith — py -3.11 examples/gallery2d_gray_arith.py

型別可銜接的下一個運算子(可接受 image 作為輸入)

identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter

同類別(gray)

gamma · quantize_uniform · quantize_lloyd_max · quantization_error · dither_ordered · dither_floyd_steinberg · banding_map · invert


*Provenance: ops.py — 2D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.