我有一个图像,每个像素的RGB值存储在一个二维数组中。假设我想应用一个基本的3X3平均算法来平滑图像。如何使用map-reduce范例实现这样的算法。
提前致谢。
答案 0 :(得分:1)
我花了一些时间来思考地图缩小范例,但无论如何它是 -
地图任务
输入 - (x坐标,y坐标,RGB值)
输出 - 9个元组,它们是{(x,y,RGB),(x-1,y,RGB),(x-1,y-1,RGB),(x,y-1,RGB) ,(X + 1,Y-1,RGB),(X + 1,Y,RGB),(X-1,Y + 1,RGB),(X,Y + 1,RGB),(X + 1, Y + 1,RGB)}
减少任务
框架将根据键(x坐标,y坐标)对所有这些元组进行排序并重新排列它们。现在,对于每个像素,您有9个相邻像素的RGB值。我们只是在reduce任务中对它们进行平均并输出一个元组----> (X,Y,avg_RGB)
因此,基本上不是每个像素为其自身告知所有相邻像素的RGB值,而是将其自身的RGB值广播为其邻居的像素值。
希望这会有所帮助:)