Конвертировать IplImage в QByteArray - PullRequest
0 голосов
/ 01 декабря 2011

Мне нужно отправить IplImages с камеры с UDP-сокетом. Я использую Qt. Приложение состоит из двух частей. Сервер должен извлекать изображения с цифровой камеры и отправлять их на определенный порт через Upd (Broadcast). Клиенты являются приложениями с графическим интерфейсом. Они получат изображения и отобразят их на QLabel.

Я использую OpenCV для изображений, поэтому мой ввод камеры IplImage. Я знаю, как преобразовать его в QImage / QPixmap и отобразить его на этикетке. Но не могу найти способ отправить IplImage через сокет udp ... QUdpSocet::writeDatagram принимает только QByteArray, поэтому я не хочу преобразовывать IplImage в QByteArray, и это должно быть очень быстро конвертировать изображения на сервере).

1 Ответ

1 голос
/ 01 декабря 2011

Я вижу, вы можете создать 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);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...