Reputation: 13637
I'm sorry if this may seem like a silly question... I've a doubt about cvLoadImage in OpenCV:
IplImage *frame;
for (unsigned int i = 0; i < LENGTH; i++)
{
frame = cvLoadImage(filename.c_str());
// do something...
}
For each call of cvLoadImage
is a new IplImage
stored in memory? Is the old variable pointed by frame
released from heap after the override?
Furthermore, when I try to release an image as follow...
IplImage *frame;
for (unsigned int i = 0; i < LENGTH; i++)
{
if (frame != NULL)
cvReleaseImage(&frame);
frame = cvLoadImage(filename.c_str());
// do something...
}
Why doesn't this solution work (bad memory access)? Best regards, Vi.
Upvotes: 0
Views: 125
Reputation: 10850
Yes, memory allocated by cvLoadImage. Error appears because you not initialized frame in the beginning. It must be initialized by zero, or NULL.
Upvotes: 2