本站提供正體中文版。切換到正體中文This site is available in English.View in Englishこのサイトには日本語版があります。日本語で表示이 사이트는 한국어로도 제공됩니다.한국어로 보기Diese Website ist auch auf Deutsch verfügbar.Auf Deutsch ansehenEste sitio web también está disponible en español.Ver en españolQuesto sito è disponibile anche in italiano.Visualizza in italianoCe site est également disponible en français.Afficher en françaisEste site também está disponível em português.Ver em portuguêsDeze website is ook beschikbaar in het Nederlands.In het Nederlands bekijkenЭтот сайт также доступен на русском языке.Смотреть на русскомयह वेबसाइट हिन्दी में भी उपलब्ध है।हिन्दी में देखेंهذا الموقع متاح أيضًا باللغة العربية.عرض بالعربيةSitus ini juga tersedia dalam bahasa Indonesia.Lihat dalam bahasa IndonesiaBu site Türkçe olarak da mevcut.Türkçe görüntüleTa strona jest dostępna także po polsku.Wyświetl po polskuTrang web này cũng có phiên bản tiếng Việt.Xem bằng tiếng Việtاین وب‌سایت به فارسی هم در دسترس است.مشاهده به فارسی

认识图像的线性与非线性状态

拉伸与非线性2021.02

天文后期常听到“这个进程要在线性状态下做”“那个要等非线性之后”,但到底什么是线性、什么是非线性?这曾经是我很难跟别人讲清楚的观念。后来我找到一个比较好的解释方式——用 MTF 曲线来看。这篇就用 MTF 与 Histogram Transformation(HT)工具,把两者的分界说明白。

用 MTF 曲线来定义线性与非线性

关键在于一个动作:只要你改变了 midtone(中间调)的位置,图像就不再是线性输出了。

原因是,调整 midtone 会改变“不同亮度像素之间的间距比例”。原本各像素亮度彼此的相对关系是等比例的(线性),一旦 midtone 被移动,这个比例就被扭曲了,输出自然变成非线性(可以对照 HT 工具输出部分的曲线变化)。

未调整前的原始图像,处于线性状态

调整 midtone 之后,图像进入非线性状态

换个角度想会更直观:传统上一张天文照片刚叠完是漆黑一片、什么都看不到(线性状态),而我们要把它拉到能清楚看见目标——这个动作必然是大幅度的非线性拉伸。例如在 APP 中叠完图后,除了会产生一张什么都看不见的线性文件外,如果你点右边拉伸下方的保存,就会再存一张经过拉伸的非线性照片。

(也有一说认为,幅度很小的调整仍可视为线性;本文采比较严格的定义——只要动了 midtone,就当作进入非线性状态。)

只调 shadow 或 highlight,不会破坏线性

不是所有调整都会让图像变成非线性。如果你只动 shadow(暗部端点)或 highlight(亮部端点),并不会改变像素间的线性关系,只是在做端点的缩放或裁切:

  • shadow 往右调:扩张暗部(把暗部拉开)。

shadow 往右调,扩张暗部

  • shadow 往上调:把暗部逐渐输出成灰色。

shadow 往上调,暗部逐渐输出成灰色

  • highlight 往左调:扩张亮部。
  • highlight 往下调:把亮部逐渐输出成灰色。

highlight 相关调整对亮部的影响

补充一点工具上的细节:由于 PixInsight 的 HT 工具已经拿掉了 Low 与 High Ranges 选项,上面“往上调/往下调”(输出成灰色)的示范,我改用 Curves 工具来呈现。

为什么要在意这个分界

搞懂线性/非线性的意义很实际——许多图像处理程序(例如色彩校正、反卷积这类)必须在线性状态下运行才正确;一旦你做了拉伸、动了 midtone,图像就进入非线性,某些进程的结果就会失准。因此在创建工作流程时,先想清楚“这一步该在拉伸前还是拉伸后做”,往往比记住每个按钮更重要。