掌握色温表实用代码,轻松调出理想色彩效果

2026-11-02 0 阅读

在摄影和视频制作中,色温是一个至关重要的概念。它决定了画面中光的颜色,从温暖的橙色到寒冷的蓝色。通过掌握色温表和相应的代码,你可以轻松调整色彩效果,以达到理想的光影氛围。本文将介绍如何使用色温表,并分享一些实用的代码示例,帮助你轻松调出理想色彩效果。

色温表简介

色温表是一个用于表示光色温度的量表,通常以开尔文(K)为单位。不同的色温对应不同的颜色:

  • 低色温(如2800K):温暖,类似黄昏或日出时的光线。
  • 中等色温(如5600K):自然光,类似白天室内外的光线。
  • 高色温(如10000K):冷色调,类似阴天或夜晚的光线。

色温调整原理

在数字图像处理中,调整色温通常涉及到改变图像的RGB(红绿蓝)值。通过调整这些值,可以改变图像的整体色调。

实用代码示例

以下是一些基于Python的代码示例,用于调整图像的色温:

1. 使用Pillow库调整色温

Pillow是一个强大的Python图像处理库,可以轻松调整图像的色温。

from PIL import Image

def adjust_color_temperature(image_path, kelvin):
    image = Image.open(image_path)
    pixels = image.load()
    width, height = image.size

    for x in range(width):
        for y in range(height):
            r, g, b = pixels[x, y]
            # 根据色温调整RGB值
            new_r = r * (100 + kelvin) // 100
            new_g = g * (100 + kelvin) // 100
            new_b = b * (100 + kelvin) // 100
            # 限制RGB值在0-255范围内
            new_r = max(0, min(255, new_r))
            new_g = max(0, min(255, new_g))
            new_b = max(0, min(255, new_b))
            pixels[x, y] = (new_r, new_g, new_b)

    adjusted_image = Image.new('RGB', image.size)
    adjusted_pixels = adjusted_image.load()
    for x in range(width):
        for y in range(height):
            adjusted_pixels[x, y] = pixels[x, y]

    adjusted_image.show()
    adjusted_image.save('adjusted_image.jpg')

# 示例:调整色温为5000K
adjust_color_temperature('image.jpg', 5000)

2. 使用OpenCV库调整色温

OpenCV是一个开源的计算机视觉库,也支持调整图像的色温。

import cv2
import numpy as np

def adjust_color_temperature_opencv(image_path, kelvin):
    image = cv2.imread(image_path)
    # 将图像转换为Lab颜色空间
    lab_image = cv2.cvtColor(image, cv2.COLOR_BGR2LAB)
    l, a, b = cv2.split(lab_image)

    # 根据色温调整b通道
    b = cv2.add(b, np.array([kelvin], dtype=np.uint8))

    # 合并通道并转换回BGR颜色空间
    adjusted_image = cv2.merge((l, a, b))
    adjusted_image = cv2.cvtColor(adjusted_image, cv2.COLOR_LAB2BGR)

    # 显示和保存调整后的图像
    cv2.imshow('Adjusted Image', adjusted_image)
    cv2.imwrite('adjusted_image.jpg', adjusted_image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

# 示例:调整色温为5000K
adjust_color_temperature_opencv('image.jpg', 5000)

总结

通过掌握色温表和相应的代码,你可以轻松调整图像的色温,以达到理想的光影氛围。以上代码示例可以帮助你快速入门,并在实际应用中发挥重要作用。希望本文对你有所帮助!

分享到: