这个例子展示了如何在GPU上执行基于像素的操作,通过使用函数将数据和操作发送给GPU进行处理。这种方法对于需要两个或多个数据集的元素操作最为有效。
读取并显示图像。
我= imread (“concordaerial.png”);imshow(我)
通过创建图形处理器,将数据从CPU转移到GPUgpuArray
(并行计算工具箱)对象。
Igpu = gpuArray(我);
对GPU进行操作。这个例子定义了一个被调用的自定义函数rgb2gray_custom
它通过使用红色、绿色和蓝色通道的自定义权重将RGB图像转换为灰度。这个函数在示例的最后定义。将句柄传递给自定义函数,并将数据传递给GPU进行评估arrayfun
(并行计算工具箱)函数。
Igray_gpu = arrayfun (@rgb2gray_custom,...Igpu (:,: 1), Igpu (:,: 2), Igpu (:,:, 3));
捕获前端用户异常:MATLAB:m_illegal_character
将数据从GPU移回CPU收集
(并行计算工具箱)函数。
I_gpuresult =收集(Igray_gpu);
显示结果。
imshow (I_gpuresult)
的rgb2gray_custom
辅助函数采用三个通道的线性组合,并返回单个通道输出图像。
函数rgb2gray_custom(r,g,b) = 0.5*r + 0.25*g + 0.25*b结束
gpuArray
(并行计算工具箱)|收集
(并行计算工具箱)|arrayfun
(并行计算工具箱)