基于LAB的黑白照片彩色化算法代码
时间: 2023-10-05 19:04:41 浏览: 141
提取彩色图片黑白线稿MATLAB代码
5星 · 资源好评率100%
以下是基于LAB的黑白照片彩色化算法的代码,使用Python实现:
```python
import cv2
import numpy as np
def colorize(img_path):
# 加载黑白图片
img = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)
# 将黑白图片转换为LAB色彩空间
lab_img = cv2.cvtColor(img, cv2.COLOR_GRAY2LAB)
# 从LAB色彩空间中提取L通道
L = lab_img[:, :, 0]
# 计算a和b通道的值
a = np.mean(lab_img[:, :, 1])
b = np.mean(lab_img[:, :, 2])
# 将a和b通道的值扩展为与L通道相同的维度
a = np.tile(a, (L.shape[0], L.shape[1]))
b = np.tile(b, (L.shape[0], L.shape[1]))
# 将L、a、b三个通道合并成彩色图像
colorized = np.dstack((L, a, b))
# 将彩色图像转换为RGB色彩空间
colorized = cv2.cvtColor(colorized, cv2.COLOR_LAB2BGR)
return colorized
```
使用方法:
```python
colorized_img = colorize('path/to/black_and_white_image.jpg')
cv2.imshow('Colorized Image', colorized_img)
cv2.waitKey(0)
```
其中,`'path/to/black_and_white_image.jpg'`为黑白图片的路径。运行后会显示彩色化后的图片。
阅读全文