通过套接字将 Mat 对象从 Java 发送到 Java



我理解通过Java的套接字并通过它发送Int,String,bytes等。

我只想知道的是,有没有办法将 Mat 对象解码为字节数组,然后通过 java 套接字发送它,然后从收到的字节中检索回 Mat 对象?

到目前为止,这就是我所做的

用于通过插座发送垫

//Sending Mat over Socket
Mat socketmat;      
long  nbytes = socketmat.total() * socketmat.elemSize();
byte[] bytes = new byte[ (int) nbytes ];
socketmat.get(0, 0,bytes);
mybytearray = bytes;
dos = new DataOutputStream(os);
dos.writeLong(nbytes);
dos.write(mybytearray, 0, mybytearray.length);  
dos.flush(); 

用于通过插座接收垫

//Receiving Mat over Socket
long len = clientData.readLong();  
byte[] data = new byte[ (int) len];
if (len > 0) {
    clientData.readFully(data);
}            
byte[] bytes_ = data;
result_mat.get(0, 0, bytes_ );

我认为是使用 JNI FileStorage类来拯救垫子。

以下代码可用于将 Mat 另存为文件存储

FileStorage storage("image.xml", FileStorage::WRITE);
storage << "img" << mat;
storage.release();
然后

使用套接字发送文件,然后从文件中检索 Mat 回来。

FileStorage fs("image.xml", FileStorage::READ);
Mat img;
fs >> img;

相关内容

  • 没有找到相关文章

最新更新