我有一个图像,其每个像素的RGB值存储在二维数组中。假设我想应用一个基本的3X3平均算法来平滑图像。如何使用map-reduce范式实现这样的算法?
这花了我一段时间来思考mapreduce范式,但无论如何,这里是-
<地图任务/strong>
Input - (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)}
<减少任务/strong>
框架将根据键(x坐标,y坐标)对所有这些元组进行排序并重新排列。现在对于每个像素,你有9个相邻像素的RGB值。我们简单地在reduce任务中取其平均值并输出一个元组----> (x,y,avg_RGB)
基本上不是每个像素告诉它所有相邻像素的RGB值,它广播它自己的RGB值作为它邻居的像素值。
希望这对你有帮助