image-processing - Python实现Gimp的亮度图层模式

标签 image-processing python-imaging-library gimp

Gimp 在图层设置中有一个“亮度”模式:

luminance

我用它在放大的低分辨率彩色图像上叠加高分辨率灰度图像,以使彩色图像更清晰。例如,给定一个灰度图像和一个彩色图像

enter image description here , enter image description here

在模糊的彩色图像上应用灰度图像作为亮度“掩模”的结果会创建清晰的彩色图像:

enter image description here

亮度滤镜如何工作,以及如何在 Python 中实现它(例如使用 Pillow)?

最佳答案

简单来说,人眼对亮度(亮度)的微小变化比对颜色的微小变化更敏感。顺便说一句,这就是 JPEG chroma-downsampling 的原因。但保留完整的亮度数据。

因此,基本上,您将低分辨率彩色图像转换为色彩空间,例如 LabHSV 或任何包含 LV 组件。然后,您可以用(高质量/高分辨率)亮度数据替换该分量并转换回 RGB。这样,您可以保留较低质量的颜色数据,但将其与较高质量的亮度数据结合起来。

现在已经很晚了,所以我可能明天再写代码,但它看起来大致是这样的:

from PIL import Image

# Load low quality colour image and convert to HSV
lowQualColour = Image.open('colour.png')
HSV = lowQualColour.convert('HSV')
# Split channels, discarding Luminance
H, S, _ = HSV.split()

# Load high quality luminance as single channel
hiQualLuminance = Image.open('luminance.png').convert('L')

# Merge with colour channels and revert to RGB
result = Image.merge('HSV', (H,S,hiQualLuminance)).convert('RGB')

关于image-processing - Python实现Gimp的亮度图层模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66282590/

相关文章:

algorithm - 将点数据的图像转换为二维 bool 数组

c++ - 获取 cv::Mat 的黑色像素列表

c++ - 如何将 Logo 作为水印添加到图像中?

python - gimp python 插件 : how to trigger another user input

graphics - Photoshop 的磁性套索如何工作?

php - 如何缩小大图像并保持质量?

python - 如何将 "textbox"中的文本添加到图像中?

python - django/python 从url获取图像并显示在网站上

python - PIL resize() 是否持有 GIL?

gimp - 在索引图像上的 Script-Fu Gimp 中调整 Canvas 大小并更改分辨率