Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обработка видеосигнала [D7, WinXP]


Страницы:   1 2

BREND ©   (2008-10-06 15:02:00) 

Помогите решить проблему:
Есть видео файл. Нужно написать программу для обработки шумов в видео.
Вот например - через такую функцию:
-----------------

type
 TVector = array of Double;   // Представление данных для процедур модуля

// Удаление шума из сигнала с использованием вейвлет-преобразования.
// Функция выполняет разложение исходного сигнала Signal с использованием
// вейвлета Mode порядка Order. Возвращаемое значение - сигнал,
// восстановленный по коэффициентам аппроксимации на уровне Level.
function Denoise(
 const Signal: TVector; // Исходный сигнал
 const Mode: Integer;   // Тип вейвлета
 const Order: Integer;  // Порядок вейвлета
 const Level: Integer   // Глубина разложения
 ): TVector;            // Обработанный сигнал
 overload;

Проблема в том, что я не знаю как мне представить видеосигнал через array of double?
А затем еще и наоборот???
Все что я нашел - это вывод видео через Directshow, и то в несколько строк ((


BREND   (2008-10-10 11:01:00) [21]


> Sapersky   (09.10.08 18:34) [11]
> Получить отдельные кадры видео в DirectShow можно и без
> написания фильтра, вроде бы через ISampleGrabber.

Кадры нужно будет потом как-то вывести.

Допустим, я написал фильтр (трансформ или рендер).
Открываю файл через DSPACK, автоматически строится цепочка фльтров (Filtergraph.RenderFile) и выводится (Filtergraph.Play).
Как мнет вставит свой фильтр в цепочку?


Sapersky   (2008-10-09 18:34:00) [22]

Получить отдельные кадры видео в DirectShow можно и без написания фильтра, вроде бы через ISampleGrabber.


BREND   (2008-10-09 10:28:00) [23]

Я понял, что есть 2 варианта: или через Directshow или через VFW.
Сейчас разбираюсь с этим:
http://www.libray.narod.ru/Program/DirectX/Chapter6.html

Только вот с DS-фильтром тяжелее будет. Его наверное нужно регистрировать в системе, а надо ли это?


Sapersky   (2008-10-08 14:58:00) [24]

А воспроизвести в чем-то PAVIStream можно?

Можно выводить полученные через Avistreamgetframe битмапы, нужная частота кадров определяется через AVIStreamInfo.
Cпециальных средств воспроизведения в духе "запустил и забыл" в VFW, похоже, нет. Во всяком случае, в справке по VFW (которая, кстати, идёт в составе стандартного хелпа Delphi) ничего такого не увидел.


Сергей М.   (2008-10-08 12:15:00) [25]


> BREND ©   (08.10.08 11:05) [7]


Ты статью проштудировал ?


BREND   (2008-10-08 11:05:00) [26]

avi2bmp.zip - хорошый пример.
Можно сделать массив из картинок - фреймов через Avistreamgetframe(gapgf, iframenumber);

А воспроизвести в чем-то PAVIStream можно?


Сергей М.   (2008-10-07 20:41:00) [27]


> если я открываю не зжатый RIFF файл?


А по барабану что тты открываешь - технология DS имеет соотв инструменты.


Sapersky   (2008-10-07 15:04:00) [28]

Я нашел что можно использовать Avifile API и Directshow.
Еще вроде есть VFW. Но конркетного примера нет.


AviFile и VFW это скорее всего одно и то же.
Пример:
http://www.programania.com/avi2bmp.zip


BREND   (2008-10-07 13:53:00) [29]

Спасибо за пример.
А если я открываю не зжатый RIFF файл?
Должно как-то быть проще. Все нужно записать в структуру - типа IAVIStream.


Сергей М.   (2008-10-07 10:59:00) [30]

http://vlafy.iulabs.com/rus/progds/_progds.htm


BREND   (2008-10-07 10:54:00) [31]

Знал бы как ни спрашивал бы.

Я нашел что можно использовать Avifile API и Directshow.
Еще вроде есть VFW.
Но конркетного примера нет.


Сергей М.   (2008-10-06 15:07:00) [32]


> Все что я нашел - это вывод видео через Directshow


Ну так и напиши свой DS-фильтр, в чем проблема ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо