gpt4 book ai didi

matlab - 矢量化循环

转载 作者:行者123 更新时间:2023-12-02 05:44:40 24 4
gpt4 key购买 nike

我想优化以下代码,它只是一个矩阵乘法 - 我确信这可以在不使用循环的情况下完成 - 但我似乎不太正确。

k = [ 76    150    29; ...
-44 -85 128; ...
128 -108 -21];

for i = 1:size(rgb,1)
for j = 1:size(rgb,2)
triplet(1:3) = rgb(i,j,:);
yuv(i,j,:) = single(triplet) * single(k');
yuv(i,j,:) = fix(yuv(i,j,:) ./ 256);
end
end

有什么想法或建议吗?

顺便说一句,对于具有图像处理背景的人来说,您会意识到上面的代码只是简单的 RGB 到 YUV 转换 - 您可能会问为什么我不使用内置的 rgb2ycbcr函数 - 但是这次我想使用上面概述的 8 位转换系数。

最佳答案

您可以 reshape

rgbR = reshape( rgb, [], 3 );
yuvR = single(rgbR) * single( k' );
yuv = reshape( fix( yuvR./ 256 ), size(rgb,1), size(rgb,2), [] );

附注,
最好not to use i and j as variable names in Matlab .

关于matlab - 矢量化循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17021598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com