Socket通信でサーバ(Python)からクライアント(C#)に画像を転送してOpenCvSharpで扱う
クライアント側
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Drawing;
using OpenCvSharp;
using OpenCvSharp.Extensions;
namespace http_opencv_test
{
class Program
{
static void Main(string[] args)
{
// IPアドレスとポートを設定
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
IPEndPoint remoteEP = new IPEndPoint(ipAddress, 12345);
// ソケット生成
Socket socket = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
// 接続
socket.Connect(remoteEP);
// 送信
byte[] msg = Encoding.UTF8.GetBytes("a" + "<EOF>");
socket.Send(msg);
// 受信
byte[] bytes = new byte[1000000000];
int bytesRec = socket.Receive(bytes);
Stream stream = new MemoryStream(bytes);
// 画像(Mat)化
var img = Bitmap.FromStream(stream);
// img.Save(@"test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
var img_mat = BitmapConverter.ToMat((Bitmap)img);
// テスト表示
Cv2.ImShow("img", img_mat);
Cv2.WaitKey(0);
//ソケット終了
socket.Shutdown(SocketShutdown.Both);
socket.Close();
}
}
}
ディスカッション
コメント一覧
まだ、コメントがありません