2013-03-07 3 views
0

На стороне клиента я создаю IplImage с помощью openCV и отправляю его как двоичные данные через TCP-сокет.Чтение и отображение openCV IplImage

IplImage *img = cvCreateImage(cvSize(480, 360), IPL_DEPTH_8U, 4); 

После получения данных на сервере, как это прочитать и отобразить?

IplImage *img = ??? 
cvNamedWindow("image", CV_WINDOW_AUTOSIZE); 
cvShowImage("image", img); 
cvWaitKey(); 
cvDestroyWindow("image"); 

ответ

0

Отправьте размер, глубину и nChannels изображения через сокет. Вы можете создать сервер изображений и использовать memcpy() или просто установить указатель вашего img на указатель на полученные двоичные данные.

+0

Я отправляю только размер, поскольку я уже знаю глубину (8U) и nChannels (4). как мне восстановить изображение? – askingtoomuch

+0

Почему бы вам не попробовать следующее: приведите полученные данные на сервере к IplImage * и посмотрите, можете ли вы его отобразить. –

+0

Я пробовал это, но он не появился. сокет должен быть в порядке, поскольку я могу отправлять, получать и отображать другие форматы изображений. – askingtoomuch

Смежные вопросы