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

Системные требования

Recommended Posts

Здраствуйте!

Нужно собрать компьютер для анализа видеопотока в реальном времени.

Хотелось бы узнать, какая минимальная конфигурация для этого требуется? Ибо на оффсайте про это ничего не написано. :)

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


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

Это очень сильно зависит от самой системы, насколько она требовательна. Так может хватить как старенького пенька, так может и не хватить самого современного многоядерного компьютера.:)

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


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

смотря какие задачи вы собираетесь решать...и какими методами

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


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

Про систему не совсем понял.

Задача на первый взгляд тривиальная: есть чёрная (зашумлённая) картинка, на ней могут появляться яркие белые пятна. Надо определять их координаты.

Кстати, буду очень признателен, если подскажете, как её решить. HoughCircles не помогают даже с правильным круглым пятном, поиск контуров тоже, видимо, из-за того что края размыты и есть шум. Я прям в тупик зашёл. :)

UPD. Насчёт конфигурации. Поставим вопрос немного иначе: про старый пенёк всё ясно, а если из продающегося сейчас железа собрать что-нибудь посредственное или середнячка, этого хватит с запасом?)

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


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

Задача на первый взгляд тривиальная: есть чёрная (зашумлённая) картинка, на ней могут появляться яркие белые пятна. Надо определять их координаты.

Кстати, буду очень признателен, если подскажете, как её решить. HoughCircles не помогают даже с правильным круглым пятном, поиск контуров тоже, видимо, из-за того что края размыты и есть шум. Я прям в тупик зашёл. :)

UPD. Насчёт конфигурации. Поставим вопрос немного иначе: про старый пенёк всё ясно, а если из продающегося сейчас железа собрать что-нибудь посредственное или середнячка, этого хватит с запасом?)

От шума можно почистить так:

1) размыть картинку

2) шум будет иметь меньшую яркость чем сплошное белое пятно.

3) бинаризация по порогу, отсеивающему шум.

4) Определяем контуры

Конфигурации среднего компа должно хватить. У меня AMD Athlon 64х2 5000 (как он точно записывается не помню), покупал давно, большинство приложений, включая детектор хаара идут не меньше 15 кадров в секунду, а большинство реалтайм.

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


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

Спасибо, уже пробую)

UPD.Отлично, получил белое пятнышко на чёрном фоне.

А можно ли без контуров обойтись, а как-нибудь пошустрее?

Например, как можно вытащить координаты всех белых точек из изображения? Точнее, как получить значение яркости пикселя определённой координаты в одноканальном IplImage?)

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


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

img->imageData[x + y * img->widthStep]

Можно реализовать простую сегментацию на основе связности (восьми- или четырёхсвязности). Я, правда, не в курсе, есть ли она в OpenCV.

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


Ссылка на сообщение
Поделиться на других сайтах
img->imageData[x + y * img->widthStep]

брр, что-то я запутался, как из этого значение цвета (0-255) получить :) Тип этой штуковины почему-то char*

Если присвоить вот этот символ переменной типа int, получаю "0" для черных и "-1" для белых пикселей. Вроде совпадает, но как-то некрасиво получается :huh:

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


Ссылка на сообщение
Поделиться на других сайтах
брр, что-то я запутался, как из этого значение цвета (0-255) получить :) Тип этой штуковины почему-то char*

Если присвоить вот этот символ переменной типа int, получаю "0" для черных и "-1" для белых пикселей. Вроде совпадает, но как-то некрасиво получается :huh:

-1 = 255 :) для unsigned char ;)

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


Ссылка на сообщение
Поделиться на других сайтах
брр, что-то я запутался, как из этого значение цвета (0-255) получить :) Тип этой штуковины почему-то char*

Если присвоить вот этот символ переменной типа int, получаю "0" для черных и "-1" для белых пикселей. Вроде совпадает, но как-то некрасиво получается :huh:

Обычно сначала делают приведение к unsigned char:

unsigned char *img_data = (unsigned char *)img->imageData;

//А после уже

img_data[x + y * img->widthStep]

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


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

а не проще ли, если необходимо определять лишь координаты пятна, всего лишь найти его центр тяжести по маске?

обратите внимание на функцию cvMoments

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×