你可以从一个2d矩阵重复设定的次数制作一个3d矩阵吗?

时间:2016-02-20 20:36:58

标签: matlab matrix

我正在尝试创建一个灰度函数。该函数采用3D矩阵,其由每个像素的RBG值组成,并返回表示3D图像的另一个3D矩阵。我让它使用这段代码

function [ gray ] = convertImageToGrayscale(orig)

    page = 0.299*orig(:,:,1) + 0.587*orig(:,:,2) + 0.114*orig(:,:,3);

    gray(:,:,1) = page;
    gray(:,:,2) = page;
    gray(:,:,3) = page;

end

每个RBG值必须相同,“page”变量保存每个像素的值。接下来的三行创建了一个具有新RGB强度的灰度图像。

是否有更快的方法来制作灰色矩阵?也许一种方法遍历灰色矩阵的每一页,并用我的“页面”变量替换它。我不应该使用循环,所以它有一种方法来矢量化这段对我有用的代码。

1 个答案:

答案 0 :(得分:1)

尝试

gray = repmat( page, [1 1 3] );