Фильтровать и манипулировать CurrentImage [] - PullRequest
0 голосов
/ 19 сентября 2011

Пожалуйста, примите во внимание следующее (я использую Mathematica 8):

mask = DensityPlot[-Exp[-(x^2 + y^2)/5], {x, -4, 4}, {y, -3, 4}, 
       Axes -> None, Frame -> None, Method -> {"ShrinkWrap" -> True}, 
       ColorFunction -> GrayLevel, ImageSize -> 512];

       Show[ImageFilter[Mean[Flatten[#]] &, CurrentImage[], 20, 
            Masking -> mask], ImageSize -> 512]

с использованием решения Sjoerd на Можем ли мы сгенерировать "поддельное изображение" в Mathematica .

Я хотел бы, чтобы это было динамичным.Прямо сейчас это только делает снимок.Что было бы лучшим способом заставить это работать "вживую", не ломая мой компьютер во время моей презентации?Могу ли я настроить частоту обновления?Манипулировать маской?Остановить «режим видео», чтобы сделать снимок?

Ответы [ 2 ]

2 голосов
/ 19 сентября 2011

Просто оберните Show в Dynamic, и он обновится так быстро, как только сможет. В сочетании с Refresh установите частоту обновления. Или используйте синхронизированное фоновое задание .

Результат немного медленный, хотя ручной фильтр размытия занимает слишком много времени. Лучшей альтернативой было бы что-то вроде:

mask = DensityPlot[-Exp[-(x^2 + y^2)/5], {x, -4, 4}, {y, -3, 3}, 
   Axes -> None, Frame -> None, Method -> {"ShrinkWrap" -> True}, 
   ColorFunction -> GrayLevel, ImageSize -> {320, 240}];

ImageCompose[im = CurrentImage[], SetAlphaChannel[Blur[im, 20], mask]]//Dynamic

, который обновляется в режиме реального времени. Обратите внимание, что я изменил размеры изображения маски, чтобы соответствовать размеру камеры моего ноутбука. Диапазон значений x и y должен совпадать с соотношением сторон камеры.

enter image description here

Помните, как упоминалось ранее, это только фальшивка визуальное размытие. Это далеко от реальности.

1 голос
/ 19 сентября 2011

Никогда не использовал камеру с Mma, но кажется, что с помощью ImageCapture[] вы можете указать частоту кадров и другие параметры.

Затем использовать CurrentImage [] в цикле "«обрабатывать все, что вы хотите.Вы даже можете остановить устройство из интерфейса ImageCapture [].

...