В зависимости от типа источника (камера / файл, кодек) cvQueryFrame
может использовать одну и ту же область памяти для последовательно снятых изображений.Если вы попытаетесь освободить или изменить изображение, возвращаемое cvQueryFrame
или cvRetrieveFrame
, код захвата из OpenCV может перестать работать должным образом.
Это означает, что вы не должны пытаться освободить память изображения, возвращенную этими функциямиНапример, позвонив по номеру cvReleaseImage
.Библиотека сделает это за вас при необходимости.
Также это означает, что вы не должны изменять изображение, используя функции типа cvScale
, cvSet
или напрямую изменяя данные пикселей низкого уровня.Если вы хотите изменить полученное изображение перед его использованием, используйте cvCloneImage
, чтобы создать отдельную копию для себя.