问题描述
- Socket+opencv发送图片问题
-
客户端:
IplImage src = cvLoadImage("2.jpg");
IpImage Send=*src;
send(sockClient, (char)&Send, sizeof(Send)+1, 0);服务端:
char tempBuf[10000];
recv(sockConn, tempBuf, 10000, 0);
IpImage recv;
memcpy(&recv, tempBuf, sizeof(tempBuf));
cvShowImage("result", &recv);客户端没错,服务端到显示图片那里就出错了。总是显示内存错误。
大家有没有好的解决办法呢?
解决方案
客户端那里是*src
解决方案二:
单步调试一下,看看收过来的数据正确不?或者你申请的char 数组不够放
解决方案三:
那估计就是内存申请小了,你先把大小发送过来,完后再new啊
解决方案四:
不是大小的问题,我一张特别特别小的图片也不行。
cvShowImage()就显示内存异常.
但是如果我用cvSaveImage(),得到的图片尺寸是对的,但是完全不对,基本是黑和灰色。
解决方案五:
那你打开图片,完后先show一下,看看打开的图片show出来,对不对?
时间: 2024-11-02 06:50:26