Перейти к содержимому
Compvision.ru
milaman

cvClearSeq

Recommended Posts

Что есть:

CvMemStorage* stor;

CvSeq* cont;

stor = cvCreateMemStorage(0);

cont = cvCreateSeq(CV_SEQ_ELTYPE_POINT, sizeof(CvSeq), sizeof(CvPoint) , stor);

Хочу освободить блоки памяти и удалить элементы из последовательности

Компиляция происходит успешно

cvClearSeq( cont ); // но вот тут призапуске приложения на меня сильно ругаются...

cvReleaseMemStorage( &stor );

Для чего мне это надо? Ищу объекты, потом в цикле просматриваю cont. И проверяю определеннные условия. Если объекты не удовлетворяют условиям, то немного правлю изображение и запускаю поиск заново. Вот пред поиском и хочу освободить память и последовательность, чтобы использовать их повторно. Естесвенно после удаления делаю заново cvCreateMemStorage и cvCreateSeq. Может как-то можно это проще сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Что есть:

CvMemStorage* stor;

CvSeq* cont;

stor = cvCreateMemStorage(0);

cont = cvCreateSeq(CV_SEQ_ELTYPE_POINT, sizeof(CvSeq), sizeof(CvPoint) , stor);

Хочу освободить блоки памяти и удалить элементы из последовательности

Компиляция происходит успешно

cvClearSeq( cont ); // но вот тут призапуске приложения на меня сильно ругаются...

cvReleaseMemStorage( &stor );

Для чего мне это надо? Ищу объекты, потом в цикле просматриваю cont. И проверяю определеннные условия. Если объекты не удовлетворяют условиям, то немного правлю изображение и запускаю поиск заново. Вот пред поиском и хочу освободить память и последовательность, чтобы использовать их повторно. Естесвенно после удаления делаю заново cvCreateMemStorage и cvCreateSeq. Может как-то можно это проще сделать?

Видимо что то освобождается дважды :). Попробуйте убрать очистку stor.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
пробовал, менял местами :) глухо...

А на какой строке выкидывает ошибку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

при запуске приложения пишет null pointer () in function cvClerSeq, C:\....путь к файлу... (1825)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
при запуске приложения пишет null pointer () in function cvClerSeq, C:\....путь к файлу... (1825)

Ну тогда надо поставить так:

if(cont!=NULL) {cvClearSeq( cont );}

И ошибка должна исчезнуть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хм... ошибка-то исчезла, но не заработало так как надо. Идея такая, чтобы не плодить лишних структур для нескольких поисков хотел использовать одни и теже предварительно очистив их...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×