您的位置:首页 > 编程语言 > C#

C#MPI 第三课 MPI 发送图像数据

2013-01-12 10:00 204 查看
using System;
using Emgu.CV;
using Emgu.CV.Structure;
using MPI;

namespace MPIHello
{
/// <summary>
/// 测试发送图像数据
/// </summary>
class TestSendImageProgram : IProgram
{
#region Implementation of IProgram

/// <summary>
/// 应用程序入口点
/// </summary>
/// <param name="args">入口参数</param>
public void Entrance(string[] args)
{
//初始化MPI运行环境
using (new MPI.Environment(ref args))
{
//获取Communicator
var comm = Communicator.world;

if (0 == comm.Rank)
{
var obj = new YFrame
{
Image = new Image<Bgr, byte>("1.jpg")
};
//令0进程发送数据然后接收数据
comm.Send(obj, 1, 0);

// receive the final message
var msg = comm.Receive<YFrame>(Communicator.anySource, 0);

//输出收到的信息
Console.WriteLine("Rank " + comm.Rank + " received message \"" + msg + "\".");
}
else
{
//令n程序接收上一进程发送的数据然后发给下一进程
var msg = comm.Receive<YFrame>(comm.Rank - 1, 0);
if (msg.Image != null) msg.Image.Save("recv"+comm.Rank + ".jpg");
//增加
//输入收到的消息
Console.WriteLine("Rank " + comm.Rank + " received message \"" + msg + "\".");

//发送给下一个进程
comm.Send(msg, (comm.Rank + 1) % comm.Size, 0);
}
Console.WriteLine(Communicator.world.Rank);
}
}

#endregion
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐