crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Заполнение ОЗУ
RazrFalcon
  опции профиля:
сообщение 6.12.2010, 16:26
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Во время работы проги, по 20-30Мб в секунду забиваться оперативка, а потом вешается система.
Идет обработка сотен изображений.
Вот кусок кода:
Раскрывающийся текст
int main()  
{
IplImage *img1, *img2;
IpVec ipts1, ipts2;
IpPairVec matches;
int img_num1=1, img_num2=1, num=10, bmax=0;
QString temps,temps2;
for (int i=0; i<252; i++)
  {
      temps = "../image_compare/img/after/images"+QString::number(img_num1).rightJustified(4, '0')+".png";
      img1 = cvLoadImage(QString(temps).toAscii());
      surfDetDes(img1,ipts1,false,4,4,2,0.0001f);
      for (int j=0; j<359; j++)
      {
          gettimeofday(&start, NULL);
          temps = "../image_compare/img/before/images"+QString::number(img_num2).rightJustified(4, '0')+".png";
          img2 = cvLoadImage(QString(temps).toAscii());
          surfDetDes(img2,ipts2,false,4,4,2,0.0001f);
          getMatches(ipts1,ipts2,matches);
          if (matches.size() >= bmax)
          {
              bmax=matches.size();
              temps2=QString::number(img_num2);
              qDebug()<<img_num2;
          }
          img_num2++;
          ipts2.clear();
          matches.clear();
          gettimeofday(&stop, NULL);
          qDebug()<<"Afterimage:"<<img_num1<<"&"<<"Beforeimage:"<<img_num2<<"="<<matches.size()<<"time="<< ((double)stop.tv_sec + (double)stop.tv_usec/(1000*1000)) - ((double)start.tv_sec + (double)start.tv_usec/(1000*1000));
      }
      qDebug()<<temps2;
      ipts1.clear();
      matches.clear();
      img_num1++;
      img_num2=1;
  }


Сообщение отредактировал RazrFalcon - 6.12.2010, 16:27
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xls
  опции профиля:
сообщение 6.12.2010, 16:46
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 6.9.2010
Пользователь №: 2013

Спасибо сказали: 7 раз(а)




Репутация:   2  


А где в систему возвращается память , выделенная в cvLoadImage ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 6.12.2010, 17:17
Сообщение #3


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Цитата(xls @ 6.12.2010, 15:46) *
А где в систему возвращается память , выделенная в cvLoadImage ?

:blink:
без понятия :mellow:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
xls
  опции профиля:
сообщение 6.12.2010, 17:21
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 6.9.2010
Пользователь №: 2013

Спасибо сказали: 7 раз(а)




Репутация:   2  


Так вот эту память надо бы вернуть системе после использования. Эту функцию писали сами или она из какого-то инструментария. Обычно либо есть парная функция unloadImage, либо функция освобождения памяти либо указано, что можно освободить память стандартным delete.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 6.12.2010, 17:45
Сообщение #5


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Цитата(xls @ 6.12.2010, 16:21) *
Так вот эту память надо бы вернуть системе после использования. Эту функцию писали сами или она из какого-то инструментария. Обычно либо есть парная функция unloadImage, либо функция освобождения памяти либо указано, что можно освободить память стандартным delete.

Чет не подумал, посмотрел api reference, а там есть cvReleaseImage(&img);. Все, теперь оперативка стабильна. Спасибо.
PS инструментарий opencv

Сообщение отредактировал RazrFalcon - 6.12.2010, 17:46
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 5.10.2022, 11:57