ProgerX
-
Количество публикаций
47 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем ProgerX
-
-
Спасибо за туториал!
Я думаю для кроссплатформенной работы со звуком PortAudio подойдёт.. хотя не работал с ним ещё. Только выполнил пару примеров снятия микрофонного звука и проигрывания его.. работает
-
Накопал в GIMP'е такой интересный эффект "постеризации" изображения (Colors->Posterise).
Сразу прикинул, что это можно неплохо заюзать в удалении шумов
А какой алгоритм может быть у такой штуки?
Насколько я понимаю, это сведение цветов изображения к меньшему числу цветов..
-
В джаббере фигово единственное то, что почему-то там не удаётся зарегистрировать ник в пределах одной комнаты.. В последствии чего, любой может пользоваться твоим ником, заходить под ним, оставлять от твоего имени сообщения.. Может кто-то нашёл решение этой проблемы?
-
Ещё, кстати, недавно читал, что фильтр Калмана используют для слежения за объектами..
-
Лучшее изображение всегда к худшему привести можно, а дальше как обычноТоже верно, конечно
Ну там ведь разные цветовые настройки, освещение, линзы даже наверное отличаются у разных камер (мегапикселями и прочими параметрами)..
-
mmsystem.h - это виндовый заголовок (часть winAPI), отвечающий за мультимедиа. Звуки воспроизводить он умеет тем же способом (через API). Класс нашел в инете, подробно не изучил, еще.А непосредственно захват звука что производит? OpenCV или WinAPI?
-
Поправлю опечатку гугл находит "Loquendo".Скачать пощупать можно здесь (торрент): http://torrents.ru/forum/viewtopic.php?t=1177463
ёёёмоё... послушал демо - это просто нечто! Последний раз когда я игрался с разными Speech API от майкрософта... Ну в общем, это просто несравнимо.
Это они изначально слоги записывают, а дальше комбинируют и получают вот такую вот речь или там принципиально иная технология порождения речи?
-
Кстати, а когда работают с "бинокулярным зрением" (когда используют две и более камеры), обязательно ли нужно, чтобы эти камеры были идентичными моделями или нет? Просто я так представил человека с разными глазами.. но с другой стороны, разное зрение у глаз одного человека - бывает
-
Погоди, а в OpenCV даже аудиозахват есть? Фигасе.. пошёл срочно изучать эту тему!
А "mmsystem.h" для чего используется? (подключено, по крайней мере ). А воспроизводить и генерировать звуки оно не умеет случаем?
-
Либо рисовать можно, в принципе, там куда выводишь изображение (с отрисовкой).
А участок окружности можно через полярные координаты отрисовать..
-
А MeanShift это что?
Читал описание функции "GoodFeaturesToTrack", по-моему на этом сайте скачанном..
GoodFeaturesToTrackОпределяет на изображении «сильные»(с относительно большими собственными числами) угловые точки.
А что понимается под сильными угловыми точками и вообще собственными числами?
-
Под такими системами слежения за объектами я понимаю что-то типа такого:
Причём, "изображение" людей тут пересекаются, при этом система продолжает отлично функционировать и следить.
Вот ещё понравилось такое видео:
Система следит за машиной, а когда из неё выходит человек, система следит за обеими объектами
Не очень тут понял, почему система следила именно за этой машиной, когда были и остальные.. походу она следит за всем, что движется или двигалось
Вот ещё наглядное видео с какими-то отмеченными точками на объектах:
А какими способами достигается подобное?
Могу предположить, что здесь задействованы оптические потоки. После чего локализуются места где этих "потоков" больше всего - там движется объект. Там где нет потоков (ниже какого-то порога наверное, а то зная качество своей вебки, могу представить, что двигаются там все без исключения пиксели ) - соответственно там фон, не движущийся объект..
-
Есть ли вообще какие-то среды разработки для распознавания речи?
Может даже OpenCV что-то умеет в подобном направлении?
В принципе распознавание образов, наверное, одно для всех, а основа здесь - это предобработка полученных данных. А дальше уже кластеризировать образы - кто во что горазд
-
А ещё сходу придумать можно такое:
если точку предполагается искать одну, то исходить из того факта, что чаще всего она бывает ближе к центру.. Соответственно раскручиваем Архимедову спираль и по ней ищем попадение в лазер.
В качестве оптимизации - чтобы постоянно не расчитывать точки спирали (они ведь одни и те же всегда) - кэшим их в массив точек и считываем отсюда. Во сколько решений разных
-
А результаты работы такого алгоритма где-то можно посмотреть? Интересно насколько хорошо он может текст от изображения отделять.. честно говоря, в такое даже вериться с трудом..
-
Я вот могу предложить некоторый алгоритм поиска подобной точки (непосредственно поиска центра).
Строим решётку по всей плоскости. Расстояния между точками должны быть такими, меньше которого точка у нас не поместилась бы.. Таким образом мы быстро натыкаемся на нашу точку (определяем например по порогу). После того как мы определили любую точку нашего лазера - в разные стороны запускаемся попиксельно (проверяя где пятно==цвет ещё существует). После мы получаем минимум по Х, по У и их максимумы. Делим пополам - получаем центр.
Интересно, в OpenCV алгоритм оптимальнее?
В качестве развития идеи, в алгоритме можно двигаться не попиксельно, а тоже перепрыгивая через некоторое расстояние. А как хватнули лишнего - так назад на один шаг и попиксельно смотрим где там границу потеряли.
-
А под crust'ом там что имеют ввиду?
-
Клёво оптимизировали, не задев особенностей архитектуры
-
А.. ну тогда понятно. Хотя я почему-то так и думал
Кстати, а скомпиленные проги с использованием OpenCV работают под любыми процессорами?
-
По заливке сложно представить как я буду угадывать - фон это или тело..
По поводу cvAbsDiff - да это тоже самое, наверное, в принципе.. Только его надо разово применить, а далее обрабатывать полученный массив разниц. В чём отличие этих cv* функций, они быстрее? Я просто смотрю, что много в OpenCV есть таких функций, которые есть, в принципе, везде И зачем они их только наделали может они быстрее работают, чем возможные мои реализации подобных функций..
Кстати, сейчас запустил эту программу. Подрегулировал баланс белого - и почти отлично стало!
Баланс я как регулировал.. Поднял saturation до потолка - так отлично видно как пиксели скачут. И далее поймал такой баланс, где амплитуда скачков минимальна.. ну и вот - уже смотрибельно Дырки некоторые есть, но для начала сойдёт!
Тем более что никакую цель я не преследую сейчас. Исключительно научиться работать с камерой и OpenCV. Да и плюс к тому - я ещё ни HSV не использовал, ни видеоаккумулятор, поэтому всё ещё впереди! А для начала - вполне!
-
Кстати, попробовал сделать вот так:
c1 = cvGetAt( bgWithoutFace, i, j );
c2 = cvGetAt( currentFrame, i, j );
int dSum = abs( c1.val[ 0 ] - c2.val[ 0 ] ) + abs( c1.val[ 1 ] - c2.val[ 1 ] ) + abs( c1.val[ 2 ] - c2.val[ 2 ] );
if ( dSum < 30 ) {
....
}
чё.. весело Хотя бы уже что-то. Получаем вырезание себя и вклеивание на фон, только у "себя" дырки в теле частенько появляются внушительных размеров
-
>> Рубить надо как раз разницу (отсечь то что меньше порога)
Т.е. мы фоновое изображение и текущий кадр разбиваем на 3 отдельные компоненты и сравниваем их между собой.
При этом разницу мы ищем так? "компонента1 - компонента2" => разница. Но если разница получится отрицательной.. Возьмём её по модулю, получим: Abs( comp1 - comp2 )
так? А потом именно такую разницу мы срезаем по порогу?
Если разница больше порога => принимаем разницу (ставим в маску еденицу), иначе за разницу это не считаем (т.к. незначительно ) - ставим ноль на текущую позицию пикселя в маске.
Соответственно мы получаем 3 маски (для трёх компонент своя).
Потом 3 компоненты мы объединяем через логический операнд OR и получаем одну финальную маску.
И потом уже эту финальную "парсим" и там где еденицы - заменяем на соответствующие точки текущего кадра, иначе - ставим точку с фона...
Правильно ли я пока что понимаю процесс?
Кстати, маску хранить где удобнее всего? В двумерном массиве?
-
Я, действительно, чистую разницу и смотрел, поэтому ничего и не получил положительного..
Не понял с "обрубить маску по порогу". А как же обрубить её?
Честно говоря, не уловил ещё общий ход алгоритма..
Маска, насколько я понимаю, это разница между фоном и текущим кадром (у которого выровнена гистограма). Маска у нас должна получиться бинарной, правильно? (нули там где разницы нет, еденицы там где она есть).
А на основе чего же рубить маску? Среди бинарной инфы мы ведь не выберем где шум, а где не очень..
-
А что такое "выровнять гистограмму"? Бинаризировать после вычитания? Вот тут не понял идеи.. По началу я подумал, что изначально оба фрейма бинаризировать (по определённому порогу), а потом сравнивать их. Правда.. рискованная операция
Попробую поработать с видеоаккумулятором.
PS говорят, что iChat (выше ссылка про 0:24 ) работает с любыми вебками. И говорят, что довольно успешно..
Как осуществляется постеризация изображения?
в Обсуждение общих вопросов
Опубликовано · Report reply
Аа.. приблизительно вырисовывается возможный алгоритм постеризации изображения.
Изначально задаём необходимое количество цветов (финальное, которое будет в постеризованном изображении), ну и используя поиск ближайшего цвета в палитре: http://algolist.manual.ru/graphics/find_col.php чего-нибудь делаем для достижения результата
(чего-нибудь - это "ответ на вопрос" в какой цвет закрасить текущий цвет картинки (то бишь к какому цвету этот цвет является более ближним) ).