OpenCV:将char *转换为cv :: Mat

时间:2013-04-08 19:42:03

标签: android opencv android-ndk

我想开发一个服务器 - 客户端面部识别应用程序。 我的问题是当我尝试将作为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);

您是否知道如何解决此错误?

0 个答案:

没有答案