Silverlight WriteableBitmap上的高斯模糊

时间:2011-05-12 21:18:50

标签: c# algorithm image-processing silverlight-3.0

我在Silverlight中使用WriteableBitmap作为临时存储的工具,最后绘制我的算法的结果,绘制一个看似平坦的二维均匀分布的宇宙,物质数量有限。

要了解“宇宙”的定义(图3):http://alienryderflex.com/homogeneity/

我正在使用位图调整大小来使算法近似,并获得线性质量损失的二次加速。

问题是我需要在图像上进行高斯模糊,以减少缩小和放大后的像素化,如果不存在则会增加算法的错误率。

您可以看到我的测试实施Here

如果按Generate然后按Draw,等待20秒,你会看到即使在输出像素化上也是如此。

但我需要在算法的第二阶段将输出位图作为“物质密度图”。

那么如何对那些可写位图进行高斯模糊? 我真的想找到一个合适的实现,而不是编写我自己的实现,这对于一组int来说非常耗时 - >圣洁的基督没有关于图像数据的字节指针??

谢谢!

编辑:

澄清一下:我需要高斯模糊数据才能对其进行操作:不仅是图像上的视觉模糊。

1 个答案:

答案 0 :(得分:1)

在silveright中执行此操作的最佳方法是编写自定义图形效果。在silverlight 3中,您可以将它们编写为DirectX .fx文件。这些将是硬件加速,并将避免在不同的图像表示之间来回慢速复制。

Here是一个介绍。可能有更好的,但它会让你开始。像素着色器很酷的一点是,它们非常快,您无需担心优化。