0

请考虑以下事项(我使用的是 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 中生成“注视点图像”

我希望这是动态的。现在它只拍一张照片。在我的演示过程中,在不让我的电脑崩溃的情况下,让它“实时”工作的最佳方法是什么?我可以调整刷新率吗?操纵面具?停止“视频模式”拍照?

4

2 回答 2

2

只需将您包裹起来ShowDynamic它就会尽快更新。结合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 范围比应与相机的纵横比相同。

在此处输入图像描述

请记住,如前所述,这只会伪造视觉模糊。这与现实相去甚远。

于 2011-09-19T07:04:05.010 回答
1

从未使用过带 Mma 的相机,但似乎通过使用ImageCapture[]您可以指定帧速率和其他参数。

然后在“循环”中使用 CurrentImage[] 来处理您想要的任何内容。您甚至可以从 ImageCapture[] 接口停止设备。

于 2011-09-19T03:27:22.723 回答