我正在实现一些方法,我正在使用OpenCv函数。OpenCV:初始化图像
我使用视频的许多帧,我需要实现最佳代码以避免内存出现问题。我有一些疑问:
疑问1:它会更好吗?
选项1:
的IplImage * image1的= NULL;
...
的IplImage * picture_sintetica(..){
... if (image1 == NULL){ image1 = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3); } ...
}
选项2:
的IplImage * image1的= NULL;
...
的IplImage * picture_sintetica(...){
... image1 = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3); ... cvReleaseImage(&image1);
}
我认为,在方案2中,在此搜索创造了许多次(每次时间调用名为picture_sintetica的方法),并与选项1它只会创建一次,但我不知道...在其他例子中,我已经看到使用选项2.
疑问2:它等价于将图像等于零(IplImage * image1 = 0;),以NULL(IplImage * image1 = NULL;)放入任何东西(IplImage * image1;)?
疑问3:何时推荐使用名为cvCloneImage的函数,何时使用cvCopy更好?
非常感谢!
谢谢!每次解码视频帧时,都会调用名为picture_sintetica的方法。该框架将成为函数的参数,并且该方法将调用OpenCV函数,并创建不同的图像。因此,我认为每次帧被解码时,image1都将在选项2中创建,并且在第二帧解码并调用picture_sintetica时使用选项1,image1不为NULL并覆盖image1中的最后一个值。 – VirMarGu