2 qq328691560 qq328691560 于 2015.06.13 19:51 提问

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);

客户端没错,服务端到显示图片那里就出错了。总是显示内存错误。
大家有没有好的解决办法呢?

5个回答

qq328691560
qq328691560   2015.06.13 19:52

客户端那里是*src

wangyaninglm
wangyaninglm   Ds   Rxr 2015.06.13 20:59

单步调试一下,看看收过来的数据正确不?或者你申请的char 数组不够放

qq328691560
qq328691560 1万个字节,就是10kb.确实小了,我试试,
2 年多之前 回复
qq328691560
qq328691560 收到的数据正确。 通道,宽度,高度都正确。就是显示内存错误。
2 年多之前 回复
wangyaninglm
wangyaninglm   Ds   Rxr 2015.06.14 17:26

那估计就是内存申请小了,你先把大小发送过来,完后再new啊

qq328691560
qq328691560 不是大小的问题,我一张特别特别小的图片也不行。 cvShowImage()就显示内存异常. 但是如果我用cvSaveImage(),得到的图片尺寸是对的,但是完全不对,基本是黑和灰色。
2 年多之前 回复
qq328691560
qq328691560   2015.06.15 11:12

不是大小的问题,我一张特别特别小的图片也不行。
cvShowImage()就显示内存异常.

但是如果我用cvSaveImage(),得到的图片尺寸是对的,但是完全不对,基本是黑和灰色。

wangyaninglm
wangyaninglm   Ds   Rxr 2015.06.15 12:59

那你打开图片,完后先show一下,看看打开的图片show出来,对不对?

Csdn user default icon
上传中...
上传图片
插入图片