Image processing 并行计算图像的直方图

Image processing 并行计算图像的直方图,image-processing,mpi,parallel-processing,Image Processing,Mpi,Parallel Processing,如何使用并行计算计算图像的直方图?序列图像的直方图很容易,但我不知道如何并行计算 任何想法,算法,源代码或有用的链接将不胜感激 我正在使用MPI。我只能猜出您要找的是什么。让我为您简要介绍一下算法: 每个节点计算一个直方图。在最后一步中,通过将它们加在一起,可以减少它们。根据工作负载的不同,可以一次又一次地拆分最终的总和 此方法类似于。以下是想法: 首先,使用MPI_Scatterv()或MPI_Scatterv()(使用Scatterv,可以将图像分发到多个进程,这些进程不是行数/列数的整数除

如何使用并行计算计算图像的直方图?序列图像的直方图很容易,但我不知道如何并行计算

任何想法,算法,源代码或有用的链接将不胜感激

我正在使用MPI。

我只能猜出您要找的是什么。让我为您简要介绍一下算法:

每个节点计算一个直方图。在最后一步中,通过将它们加在一起,可以减少它们。根据工作负载的不同,可以一次又一次地拆分最终的总和

此方法类似于。

以下是想法:

首先,使用
MPI_Scatterv()
MPI_Scatterv()
(使用Scatterv,可以将图像分发到多个进程,这些进程不是行数/列数的整数除数)

然后,每个过程都计算图像中其部分的直方图。让直方图存储在256个元素的整数数组
local\u histogram
(我假设图像是灰度的)

在最后一步中,使用
MPI\u Reduce()
执行带求和的全局缩减:


之后,完整的全局直方图将位于进程的
直方图
数组中,秩为0。

您尝试了什么?你以前做过并行编程吗?你知道直方图吗?这不是一个教程网站,而是一个可以给出确切答案的特定问题的网站。请参阅常见问题。@phresnel您不会希望他给出任何他尝试过的东西。这可能会玷污可能的答案;人们可能会建议改进他现有的技术,而不是直接提供最佳答案。@IanBoyd:但我们应该推荐什么呢?算法?一本关于并行编程的书?并行架构?锁定模式还是其他同步技术?大整数?合适的编程语言?免费提供完整应用程序的源代码?@phresnel推荐任何东西。最佳答案将获得最多的赞成票,而且很可能被接受。@IanBoyd:那怎么办?我提到的每一件事都在这里得到了回答。
MPI_Reduce(local_histogram, histogram, 256, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);