下面是将cv::Mat的资源复制到IplImage中的源代码
//copy the resource of src into IplImage
void copy_mat_Ipl(cv::Mat const &src, IplImage **dst)
{
IplImage* old = *dst;
IplImage temp_src = src;
*dst = cvCloneImage(&temp_src);
cvReleaseImage(&old);
}
但我不想复制它,我想要的是从 cv::Mat 窃取资源我必须窃取它,因为 cv::Mat 可能是函数中的本地对象如果我不窃取它但是做这样的事情
void move_mat_to_Ipl(cv::Mat &src, IplImage **dst)
{
IplImage* old = *dst;
**dst = src;
cvReleaseImage(&old);
}
void some_function(IplImage **dst)
{
cv::Mat src;
//do something
move_mat_to_Ipl(src, dst);
}
src 的资源将是空闲的,然后 dst 将持有一个悬空指针 我怎么能窃取 cv::Mat 的资源?