【问题标题】:Do I have to create a whole new array to store results from convolution?我是否必须创建一个全新的数组来存储卷积结果?
【发布时间】:2016-07-12 04:57:43
【问题描述】:

我在 Python 中使用我的卷积算法,我注意到在沿 原始 数组滑动过滤器并更新其中的条目时,结果非常模糊:

如果我创建了一个全新的数组,它的级别与原始数组相似。

我的愚蠢问题 - 后者是编写此算法的正确方法吗(我猜是这样)?前者丢失了什么 - 或者更确切地说,有没有一种方法可以编写这个算法,这样我就不必初始化另一个整个数组并吞噬内存,而是将结果存储在原始数组中或...... ?

【问题讨论】:

    标签: python convolution


    【解决方案1】:

    您应该使用第二个数组来存储结果。否则,您的大部分计算都是基于已更改的像素,而不是图像中的原始像素。这就是为什么您的第一个示例的变化超出您的预期。

    从技术上讲,您可以通过使用线程在没有第二个数组的情况下做到这一点。您只需要拥有与像素一样多的线程。然后每个线程计算一个像素并将其存储回图像中。但是,这将比仅使用第二个数组占用更多的内存,并且您必须仔细同步事物以避免修改您仍然需要计算的像素。而且,它会变慢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 2018-12-29
      • 2021-11-15
      • 2012-08-09
      • 2019-10-27
      相关资源
      最近更新 更多