我正在尝试创建一个灰度函数。该函数采用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强度的灰度图像。
是否有更快的方法来制作灰色矩阵?也许一种方法遍历灰色矩阵的每一页,并用我的“页面”变量替换它。我不应该使用循环,所以它有一种方法来矢量化这段对我有用的代码。
答案 0 :(得分:1)
尝试
gray = repmat( page, [1 1 3] );