2013-05-30 85 views
0

如何将base-64字符串转换为opencv中的Mat格式。Base-64到Mat转换opencv

我需要从jave发送图像到C++(opencv代码)。

如何在C++ uisng opencv中做到这一点?或在C + +?

+0

你需要明确地指定你。你有一个包含像素值的字符串,然后你需要将其转换为cv :: Mat? – Rasmus

+0

@Rasmus在java中,将位图转换为字节数组。然后我将这个Byte数组转换为base-64并将其发送给C++。现在在C + + DLL我需要将此base-64字符串转换为Mat。希望这现在会清楚吗? – 2vision2

回答

1

这对我来说绝对是个谜,为什么你首先使用Base64(你是否想通过莫尔斯电码传输你的照片?),但是确保你必须首先将你的字符串转换为propper字节,然后才能转换它进入cv :: Mat。所以你必须使用你用来生成Base64字符串的任何函数和字符集来展开它。只要你有一个适当的字节数组它很容易得到CV ::垫:

cv::Mat image(height,rows,CV_8UC3,array.data()); 

如果您不打算通过发送古代通信系统的形象,我想借此捷径,直接读取位图:

Mat image; 
image = imread("full/path/of/image.bmp", CV_LOAD_IMAGE_COLOR); 

而且还建议您在C++中使用或使用javaCV。我希望这是有帮助的 - 我不知道我是否得到了你想要做的。

+0

我的回答有什么问题? – Brandli