gpt4 book ai didi

c++ - 在 OpenCV 中存储图像和指针

转载 作者:太空宇宙 更新时间:2023-11-03 23:04:41 25 4
gpt4 key购买 nike

我有一个循环遍历一段视频,并对图像进行一些处理/计算。我想将图像保存在处理过程中具有最高值的循环中,但我在循环完成时临时存储图像时遇到了一些困难。

图像/帧是这样初始化的

IplImage* frame = 0;
IplImage* maxframe = 0;

循环时最大帧由

发现
if( currentvalue > maxvalue ) {
maxvalue = currentvalue;
maxframe = frame;
}

我知道我在 maxframe 变量中存储的是指向帧指针中当前加载的帧的相同指针。当一个新的帧被加载到 frame 变量中时,它也将被 maxframe 指针指向。因此,当我保存 maxframe 指向的图像时,无论其计算值是多少,我都会保存循环中的最后一张图像。

我尝试了很多不同的解决方案,但我似乎无法解决这个问题。谁能帮我? :)

最佳答案

可能 IplImage* 帧被 OpenCv 内部引用系统回收。您是否尝试过使用 IplImage* cvCloneImage(const IplImage* image) 对图像进行深度复制? 顺便说一下,对于 openCv 2.0 及更高版本,最好使用 cvMat(或 cv::Mat)来保存图像...然后使用 cv::Mat 图像,然后使用 image.clone();

关于c++ - 在 OpenCV 中存储图像和指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2763932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com