我正在實現一些方法,我正在使用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