【问题标题】:Gaussian blur on a Silverlight WriteableBitmapSilverlight WriteableBitmap 上的高斯模糊
【发布时间】:2011-05-13 06:36:46
【问题描述】:

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

查看“宇宙”的定义(图 3):http://alienryderflex.com/homogeneity/

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

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

你可以看到我的测试实现Here

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

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

那么我该如何对那些可写位图进行高斯模糊处理呢? 我真的很想找到一个合适的实现,而不是编写自己的实现,这在整数数组上会非常耗时 -> 天哪,图像数据上没有字节指针??

谢谢!

编辑:

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

【问题讨论】:

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


    【解决方案1】:

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

    Here 是介绍。可能有更好的,但它会让你开始。像素着色器的酷炫之处在于它们的速度非常快,您无需担心优化问题。

    【讨论】:

    • 我知道如何编写 HLSL 高斯模糊,即使它必须分两遍完成,而且在 HLSL 中完成它非常痛苦。我已经在这里完成了:marino.boletus.hr/3dpee.zip - 但是!我对此的唯一问题是:我可以在像素着色器应用效果后取回位图数据吗?我不仅需要视觉数据。
    猜你喜欢
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 2011-12-07
    • 2023-03-22
    相关资源
    最近更新 更多