1

我正在编写一个网络服务器,它接收图像并进行一些处理并回复结果。

图像为 png 格式。它通过 POST 使用 PHP 作为 byte[] 接收。我必须将此字节 [] 转换为 OpenCV IplImage 格式。我应该遵循哪些步骤来完成这项工作?

我目前这样做的方式是读取图像并将其保存在硬盘驱动器上并将文件路径解析为 OpenCV cvLoadImage() 函数。我相信做上一段中描述的方式比这更有效。

或者有没有办法将 byte[] 直接解析为一些 OpenCV 函数,而无需自己尝试将其转换为 IplImage 格式?

谢谢..

4

1 回答 1

1

我相信这是不可能的。

您从 POST 请求中获得的字节是存储在文件中的实际字节。因为 PNG 是一种压缩格式,所以需要先对这些字节进行解压缩。(IplImage 存储图像的未压缩字节)

您可以自己编写 PNG 解压缩例程或使用一些库(检查 libpng)。

一旦你有解压缩的字节,你需要设置 IplImage 结构。

使用 cvCreateImageHeader 创建合适大小和深度的图像,并将 image->data 指针设置为解压后的数据。

确保解压后的数据是 BGR 格式...交错的(一个蓝色字节,一个绿色字节,一个红色字节,等等)。

于 2010-07-12T03:00:18.627 回答