我想开发一个服务器 - 客户端面部识别应用程序。 我的问题是当我尝试将作为char *收到的图片转换为cv :: Mat时,我收到以下错误: “0x61ed3ea0(opencv_highgui249d.dll)中的未处理异常... exe:0xC0000005:访问冲突读取位置0x00431000。”
这是我的cliend应用程序代码(将Mat图像作为字符串发送):
matCameraBitmap = new Mat();
//...
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
out.write(matCameraBitmap.toString());
out.flush();
和代码服务器应用程序(以char *形式接收图像):
char buffer[1024];
memset(buffer, 0, buffer_len);
if((bytecount = recv(new_sock, buffer, buffer_len, 0)) == SOCKET_ERROR)
{
fprintf(stderr, "Error receiving data %d\n", WSAGetLastError());
goto END;
}
TempMat = cv::Mat(100, 100, CV_8UC1, buffer); //all images are 100x100
imshow("this is a test", TempMat);
您是否知道如何解决此错误?