用并行处理将RGB图像转换为灰色?

5次浏览(过去30天)
thanh阮
thanh阮 2021年11月4日
编辑: 焉耆刘 2021年11月4日
我有这个代码下,那是转换RGB到灰色,但我不怎么做并行处理?有人知道吗,请帮帮我
我= imread(“5. jpg”);
%0.2989 * r + 0.5870 * g + 0.1140 * b
GIm = uint8(0(大小(Im, 1),大小(Im, 2)));
抽搐
i = 1:尺寸(Im, 1)
j = 1:尺寸(Im, 2)
GIm (i, j) = 0.2989 * Im (i, j, 1) + 0.5870 * Im (i, j, 2) + 0.1140 * Im (i, j, 3);
结束
结束
toc
subplot(1,2,1), imshow(Im), title('RGB Scale image');
subplot(1,2,2), imshow(GIm), title('灰度图像');

答案(2)

KSSV
KSSV 2021年11月4日
这里不需要使用循环和并行计算。只要下面的工作。
我= imread (“5. jpg”);
%0.2989 * r + 0.5870 * g + 0.1140 * b
GIm = 0.2989 * Im (:,: 1) + 0.5870 * Im (:,: 2) + 0.1140 * Im (:,:, 3);
GIM = uint8(GIM);
1评论
thanh阮
thanh阮 2021年11月4日
但是我的老师要求我把这个改为并行处理:(

登录评论。


焉耆刘
焉耆刘 2021年11月4日
编辑:焉耆刘 2021年11月4日
clc;清晰的所有;关闭所有
我= imread (“football.jpg”);
%0.2989 * r + 0.5870 * g + 0.1140 * b
GIm = uint8(0(大小(Im, 1),大小(Im, 2)));
GIm2 = uint8(0(大小(Im, 1),大小(Im, 2)));
抽搐
i = 1:尺寸(Im, 1)
j = 1:尺寸(Im, 2)
GIm (i, j) = 0.2989 * Im (i, j, 1) + 0.5870 * Im (i, j, 2) + 0.1140 * Im (i, j, 3);
结束
结束
toc
parpool (3)
抽搐
parfori = 1:尺寸(Im, 1)
j = 1:尺寸(Im, 2)
GIm2 (i, j) = 0.2989 * Im (i, j, 1) + 0.5870 * Im (i, j, 2) + 0.1140 * Im (i, j, 3);
结束
结束
toc

类别

了解更多大数据处理帮助中心而且文件交换

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!

翻译的