3 points gray correction

3 points gray correction

上一回的工具開發成功的以單點修正來修正PDF的版調,那幾行簡短的程式碼在實際生產上會是非常有效的工具,但如果是在要取得印刷認證的場合(如Fogra PSO 或 idealiiancd G7),這個簡捷的單點控制不一定能取得全面符合的數據。

我之前的工具發展有一個3點灰平衡修正(25%、50%、75%)。可以很快地取得G7 Grayscale成果,配合Beer’s Law 工具,可以很快的達成G7 targeted規格。  

上面提到的語法是經由ghostscript 帶動 Postscript 去改變PDF 的版調,以單一50%處用exponential 函式曲綫去帶動整個版調修正。如果要用三點修正的方法,單一exponential 是帶不出來的,估計polynominal regression 或 spline interpolation 都做得到,我不好估計是polynominal regression比較好,或是spline interpretation會比較好。不過可以確定 spline interpolation在曲綫的分布會經過我標示的5個點(0%、25%、50%、75%、100%),所以我試著要用 Spline interpolation的方式來達成3點灰平衡修正的功能。


Fig.  3點灰平衡修正案例

Fig. 同一組版調修正數據,左邊為polynominal regression,右邊為spline interpolation,可以看出spline interpolation 會經過數據標示的5個點。

Spline interpolation 是我以前沒做過的題目,自然又是找上ChatGPT了。

ChatGPT這次很快的就回應出可執行的程式碼,以python套用 scipy.interpolate library 裏的CubicSpline 功能,依據我給的3點修正數據(加上0%及100% 總共5組數據)很快就能取得Spline 版調修正曲線。

Fig. 以python套用 scipy.interpolate library 裏的CubicSpline 功能,依據3點修正數據(加上0%及100% 總共5組數據)很快就能取得Spline 版調修正曲線。

Fig. 由scipy.interpolate library 裏的CubicSpline導出的版調修正表。

接下來就是將這個修正曲線套用到影像檔裡面。上回提到用ghostscript以單一50%處用postscript exponential 函式曲綫去帶動整個版調修正,這裏要用到整個Spline transfer curve 套用到整個版調,經過很長一段時間在ChatGPT的各種努力,目前還是駕馭不了postscript的語法。退而求其次,還是先直接在影像檔(像素檔)做版調修正,而不在PDF用postscript做版調修正。

同樣的,ChatGPT很快的就提出了工作方法。一樣是python,使用PIL library可以處理到影像中每一個pixel的內容。

下面是ChatGPT回應的一段程式碼,裡面的tone_curve就是來自之前的spline interpolation curve。PIL 的putpixel function可以將轉換過的CMYK資料寫入原本pixel的位置。如此就可以完成像素檔的版調轉換。

Fig. ChatGPT回應的一段程式碼,裡面的tone_curve就是來自之前的spline interpolation curve。PIL 的putpixel function可以將轉換過的CMYK資料寫入原本pixel的位置。

照說到了這裡就已經完成CMYK檔的版調轉換,但是一個一個pixel寫進去實在是太沒有效率了。

把問題反映給ChatGPT,也很快得到有效的回應。

用numpy library 將圖像中的像素用陣列的方式來處理,速度就能快上許多。

Fig. 用numpy library 將圖像中的像素用陣列的方式來處理,速度就能快上許多。

Fig. 修正過的圖檔,確實有照3點修正的數據來改變版調。

以上,經由ChatGPT的回應,成功的對影像檔做3點灰平衡修正。我已經用3點修正配合Beer’s Law成功拿過幾次G7 Targeted。這一次又多了一個可以運用的工具。

Be the first to like.
pixelstats trackingpixel

無迴響

rssComments RSS   transmitTrackBack Identifier URI

No comments. Be the first.

addLeave a comment