MST

星途 面试题库

面试题:JavaScript多维数组在复杂算法场景中的应用

假设你正在开发一个图像渲染算法,图像数据以三维数组表示,每个元素代表一个像素的RGB值(例如:[[[255, 0, 0], [0, 255, 0]], [[0, 0, 255], [255, 255, 255]]])。现在需要实现一个函数,该函数可以根据给定的色彩转换矩阵对整个图像进行色彩校正,详细描述实现思路并编写JavaScript代码。
25.4万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 遍历图像的每个像素。
  2. 对于每个像素的RGB值,将其与给定的色彩转换矩阵进行矩阵乘法运算。
  3. 确保运算后的RGB值在0到255的范围内,对超出范围的值进行截断处理。
  4. 返回经过色彩校正后的图像。

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;
}