将图像数据存储在磁盘中的标准(推荐)方法是将像素放入图像容器(jpg/png/bmp/tiff/...)并将其保存到文件中。OpenCV 很容易处理这个过程,因为你已经有了img
,IplImage*
你需要做的就是调用cvSaveImage()
并给出文件名:
if (!cvSaveImage("output.png", img))
{
// print cvSaveImage failed and deal with error
}
然后,要从磁盘读取此文件,请使用cvLoadImage()
您可能已经使用过的 can use 。
如果出于某种神秘的原因,您实际上只是将像素存储在文件中,那么您希望将它们读回IplImage
结构是完全可以理解的。为此,您正在寻找的功能是cvCreateImage()
:
IplImage* new_img = cvCreateImage(cvSize(width, height), /*img depth*/, /* nChannels*/);
创建后,new_image
您需要mempcy()
将像素读取到new_image->imageData
.
但是,您需要事先知道图像的实际大小才能使用这种方法。如果您只是将图像的像素存储在文件中,那么我建议您将图像的大小存储为文件名的一部分。
使用 OpenCV 函数处理图像的一个好处是您的系统将能够识别和显示它们(这对于调试目的非常重要)。