Linux下IplImage的正确保存方法(C++,opencv2)

xdnvmnnf  于 2023-02-13  发布在  Linux
关注(0)|答案(1)|浏览(246)

我正在尝试从IplImage*类型的指针变量保存图像。我在32位Raspberry Pi OS上使用带有opencv的C++。我在终端上通过sudo apt-get install libopencv-dev命令安装了opencv库。
首先,我的理解是,从opencv2开始,图像保存功能发生了变化,cvSaveImage功能在opencv3及以后版本中被imwrite功能取代。
我使用的是opencv2,因此我应该能够使用所需图像文件路径的参数和IplImage*指针调用cvSaveImage函数,但是每当我尝试使用cvSaveImage函数构建程序时,它提示我一个错误,说明函数没有在作用域中声明...我调用的所有其他opencv函数都成功找到了。
我对opencv没有任何经验,因此我查看了库中包含的实际文件。
我包含了opencv2/highgui/highgui_c.h头文件来访问我所有的函数。在搜索了那个头文件之后,我在任何地方都找不到cvSaveImage函数。
哪个文件实际上包含了我正在寻找的cvSaveImage函数?它是在另一个文件中吗?
感谢阅读我的帖子,任何指导都是赞赏.

4dbbbstv

4dbbbstv1#

多亏了Micka和Chrostoph拉克维茨的评论,我找到了一个变通办法;
如果有指针变量IplImage* imagePtr形式的图像数据,可以通过cv::imwrite命令将其保存到文件中,在我的例子中,我使用了沿着内容:

cv::imwrite("test.jpg", cv::Mat(height, width, type, imagePtr->imageData));

相关问题