gpt4 book ai didi

c - 用于图像直方图的串行和并行(使用 mpi)代码

转载 作者:行者123 更新时间:2023-11-30 17:43:56 25 4
gpt4 key购买 nike

谁能帮我用c语言编写生成图像直方图的代码吗?我知道基本逻辑,但无法编写代码。我想要一个相同的并行程序。

 for(i=0; i<256;i++)
histogram[i]=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
color=image[i][j];
histogram[color]++;
}

最佳答案

我想我会使用线程(相对于进程)来并行化这个任务(Unix 上的 pthreads)。这样做时,所有线程都可以共享相同的数据池(而不必跨进程边界复制大量图像数据)。

一种方法是查询系统调用以确定系统有多少个 CPU 线程 (n)。然后,分配 (n) 个单独的直方图数组。将图像划分为 (n) 个水平切片。然后,创建 (n) 个线程并向每个线程传递不同的数字 (1..n)。每个线程都会处理不同切片的直方图数据,并将结果放入不同的直方图数组中。

主线程等待(n)个工作线程完成,然后将(n)个直方图数组添加到一起形成最终的直方图数组。

这是解决问题的一种方法。

关于c - 用于图像直方图的串行和并行(使用 mpi)代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20151129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com