我需要发送从UDP套接字摄像头获取的IplImages。我正在使用Qt。该应用程序有两个部分。服务器应该从数码相机获取图像并通过更新(广播)将它们发送到特定端口。客户端是GUI应用程序。他们将收到图像并在QLabel上显示。
我正在使用OpenCV进行图像处理,因此我的相机输入为IplImage
。我知道如何将其转换为QImage
/ QPixmap
并将其显示在标签上。但找不到通过udp套接字发送IplImage
的方法... QUdpSocet::writeDatagram
只接受QByteArray
,因此我需要将IplImage
转换为QByteArray
并且这应该非常快(在服务器上转换图像是不合适的。)
答案 0 :(得分:1)
我看到你可以创建一个QByteArray:
QByteArray ( const char * data, int size )
在IplImage部分你有:
int imageSize
Image data size in bytes. For interleaved data, this equals image->height * image->widthStep
char* imageData
A pointer to the aligned image data. Do not assign imageData directly. Use SetData().
所以它应该很简单,如QByteArray(image-> imageData,image-> imageSize);