实现思路
- 遍历图像的每个像素。
- 对于每个像素的RGB值,将其与给定的色彩转换矩阵进行矩阵乘法运算。
- 确保运算后的RGB值在0到255的范围内,对超出范围的值进行截断处理。
- 返回经过色彩校正后的图像。
JavaScript代码
function colorCorrection(image, matrix) {
const newImage = [];
for (let i = 0; i < image.length; i++) {
newImage[i] = [];
for (let j = 0; j < image[i].length; j++) {
const [r, g, b] = image[i][j];
const newR = Math.min(255, Math.max(0, r * matrix[0][0] + g * matrix[0][1] + b * matrix[0][2]));
const newG = Math.min(255, Math.max(0, r * matrix[1][0] + g * matrix[1][1] + b * matrix[1][2]));
const newB = Math.min(255, Math.max(0, r * matrix[2][0] + g * matrix[2][1] + b * matrix[2][2]));
newImage[i][j] = [newR, newG, newB];
}
}
return newImage;
}