Image processing 如何将通过http post接收的png图像加载到OpenCV IplImage格式

Image processing 如何将通过http post接收的png图像加载到OpenCV IplImage格式,image-processing,opencv,bytearray,iplimage,Image Processing,Opencv,Bytearray,Iplimage,我正在编写一个Web服务器,它接收图像并进行一些处理,然后用结果进行回复 图像为png格式。它通过使用PHP的POST以字节[]的形式接收。我必须将这个字节[]转换为OpenCV IplImage格式。我应该遵循哪些步骤来完成这项工作 我目前的做法是读取图像并将其保存在硬盘上,然后将文件路径解析为OpenCV cvLoadImage()函数。我相信用上面一段描述的方法比这更有效 或者有没有一种方法可以直接将byte[]解析为某个OpenCV函数,而不用自己尝试将其转换为IplImage格式 谢谢

我正在编写一个Web服务器,它接收图像并进行一些处理,然后用结果进行回复

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

我目前的做法是读取图像并将其保存在硬盘上,然后将文件路径解析为OpenCV cvLoadImage()函数。我相信用上面一段描述的方法比这更有效

或者有没有一种方法可以直接将byte[]解析为某个OpenCV函数,而不用自己尝试将其转换为IplImage格式


谢谢..

我认为这是不可能的

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

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

一旦解压缩了字节,就需要设置IplImage结构

使用cvCreateImageHeader创建具有适当大小和深度的图像,并将图像->数据指针设置为解压缩数据


请确保解压缩的数据为BGR格式。。。交错(一个蓝色字节、一个绿色字节、一个红色字节等等)。

我认为这是不可能的

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

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

一旦解压缩了字节,就需要设置IplImage结构

使用cvCreateImageHeader创建具有适当大小和深度的图像,并将图像->数据指针设置为解压缩数据


请确保解压缩的数据为BGR格式。。。交错(一个蓝色字节、一个绿色字节、一个红色字节,等等)。

谢谢,但这并没有说明如何将php中的图像解析为OpenCV函数。我认为Dani建议的问题中的答案对OP没有帮助。请注意,接受的答案使用了未记录的函数,这是应该避免的。我提出的问题也提出了类似的问题。这个问题的答案可能表明没有简单的解决办法。可能存在使用未记录函数的复杂解决方案,在考虑到风险后,您可能会选择使用,也可能不会选择使用。请查看,谢谢,但这并不能说明如何将php中的图像解析为OpenCV函数。我认为Dani建议的问题中的答案对OP没有帮助。请注意,已接受的答案使用了未记录的函数,这是应该避免的。我提出的问题也提出了类似的问题。这个问题的答案可能表明没有简单的解决办法。可能存在使用未记录函数的复杂解决方案,在考虑风险后,您可以选择使用,也可以不使用。