简单地说,人眼对亮度(亮度)的微小变化比对颜色的微小变化更敏感。顺便说一下,这就是为什么JPEG做了 色度降低的采样 ,但保留了完整的亮度数据。
因此,基本上,你把你的低分辨率彩色图像转换成一个色彩空间,如
Lab
或
HSV
或任何包含
L
或
V
的组件。然后用你的(高质量/高分辨率)亮度数据替换该分量,再转换回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')