此函數的文件完全無用或沒有幫助。「Sharpen」、「Contrast」和「Midpoint」不是參數的名稱,它們被稱為「alpha」和「beta」。
Imagemagick 手冊條目
對於那些感興趣的人,修正後的「Sigmoidal 非線性對比度控制」公式為...
(1/(1+exp(β*(α-u))) - 1/(1+exp(β))) / (1/(1+exp(β*(α-1))) - 1/(1+exp(β*α)))
其中 α 是閾值級別,β 是要套用的對比度因子。
該公式實際上是非常簡單的指數曲線,上述公式的大部分旨在確保 0 保持為零,1 保持為一。也就是說,圖形始終經過點 0,0 和 1,1。並且最大的變化梯度位於給定的閾值處。
來源:https://imagemagick.dev.org.tw/Usage/color_mods/#sigmoidal
在 Imagick 擴充功能來源中,函數呼叫為
status = MagickSigmoidalContrastImageChannel(intern->magick_wand, channel, sharpen, alpha, beta);
來源:https://github.com/mkoppanen/imagick/
回顧二進位 API 呼叫,得到
foreign import ccall "MagickSigmoidalContrastImageChannel" magickSigmoidalContrastImageChannel
:: Ptr MagickWand
-> ChannelType -- ^ 識別要調整的通道:`redChannel`、`greenChannel`
-> MagickBooleanType -- ^ 增加或減少影像對比度
-> CDouble -- ^ 對比度的強度,數字越大,越像「閾值」
-> CDouble -- ^ 函數的中點,作為顏色值 0 到 `quantumRange`
-> IO MagickBooleanType
來源:http://hackage.haskell.org/package/imagemagick-0.0.2/docs/src/Graphics-ImageMagick-MagickWand-FFI-WandImage.html
因此,參數應顯然被解釋為
Sharpen:0/1 (增加/減少對比度)
Alpha:對比度的強度(通常為 3-20)
Beta:對比度的中點(通常為 50)