Как с помощью SampleGrabber рисовать поверх изображения?
От: panteist  
Дата: 06.06.07 14:38
Оценка:
Поделитесь плиз примерчиком (ссылкой, мыслями) как конкретно можно с помощью SampleGrabber'a получать изображение с камеры, затем обсчитывать его на лету и тут же выводить на Preview уже с линиями или текстом поверх этого изображения?
Искал всюду, но нигде конкретных примеров нет, только слова о том, что SampleGrabber это transform filter и если хочется, то с его помощью можно это осуществить. Но как?
Re: Как с помощью SampleGrabber рисовать поверх изображения?
От: Аноним  
Дата: 06.06.07 16:55
Оценка:
Здравствуйте, panteist, Вы писали:

P>Поделитесь плиз примерчиком (ссылкой, мыслями) как конкретно можно с помощью SampleGrabber'a получать изображение с камеры, затем обсчитывать его на лету и тут же выводить на Preview уже с линиями или текстом поверх этого изображения?

P>Искал всюду, но нигде конкретных примеров нет, только слова о том, что SampleGrabber это transform filter и если хочется, то с его помощью можно это осуществить. Но как?

Смотри примеры DirectX SDK (DirectShow) там есть примеры transform фильтров. А если конкретно, то есть метод Transform в нем ты получаешь доступ к кадру, рисуешь на нем все что душе угодно, а дальше уже измененный кадр идет дальше (на рендр, файл, вообщем куда угодно)

Удачи
Re: Как с помощью SampleGrabber рисовать поверх изображения?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 06.06.07 19:49
Оценка: 3 (1)
1. Создаем граф из камеры, SampleGrabber'a и renderer'a.
2. Грабберу задаем нужный медиатип — в каком виде принимать данные (ISampleGrabber::SetMediaType).
0. Делаем свой классик, наследный от ISampleGrabberCB. В нем реализуем одну из функций SampleCB или BufferCB. Грабберу говорим вызывать наш callback (ISampleGrabber::SetCallback).
3. Соединяем фильтры и запуcкаем граф, данные приходят в нашу функцию, в ней рисуем что хотим.

В результате не нужно писать своих фильтров, все делается в пару десятков строк кода.
Re[2]: Как с помощью SampleGrabber рисовать поверх изображен
От: panteist  
Дата: 07.06.07 04:01
Оценка:
А>там есть примеры transform фильтров. А если конкретно, то есть метод Transform

В ISampleGrabber метода Transform нет (http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c_Summer_03/directX/htm/isamplegrabberinterface.asp).
А вопрос как раз и был именно об использовании SampleGrabber'a для того, чтобы не писать трансформ-фильтр
Re[2]: Как с помощью SampleGrabber рисовать поверх изображен
От: panteist  
Дата: 07.06.07 04:04
Оценка:
Большое спасибо!
Теперь понятно.
Сегодня попробую, мерси!
Re[2]: Как с помощью SampleGrabber рисовать поверх изображен
От: _synapse_  
Дата: 14.06.07 19:49
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>0. Делаем свой классик, наследный от ISampleGrabberCB. В нем реализуем одну из функций SampleCB или BufferCB. Грабберу говорим вызывать наш callback (ISampleGrabber::SetCallback).


Примечание:
чтоб рисовать на кадре нужно SampleCB, именно в нем оригинальный кадр, а в BufferCB — копия.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.