【问题标题】:How exactly does the "reflect" mode for scipys ndimage filters work?scipys ndimage 过滤器的“反射”模式究竟是如何工作的?
【发布时间】:2014-05-05 08:13:13
【问题描述】:

我无法准确理解反射模式如何处理我的数组。我有这个非常简单的数组:

import numpy as np
from scipy.ndimage.filters import uniform_filter
from scipy.ndimage.filters import median_filter

vector = np.array([[1.0,1.0,1.0,1.0,1.0],[2.0,2.0,2.0,2.0,2.0],[4.0,4.0,4.0,4.0,4.0],[5.0,5.0,5.0,5.0,5.0]])

print(vector)

[[ 1. 1. 1. 1. 1.] [ 2. 2. 2. 2. 2.] [ 4. 4. 4. 4. 4.] [5. 5. 5. 5. 5.]]

应用窗口大小为 3 的统一(均值)滤波器,我得到以下结果:

filtered = uniform_filter(vector, 3, mode='reflect')

print(filtered)

[[ 1.33333333 1.33333333 1.33333333 1.33333333 1.33333333] [2.33333333 2.33333333 2.33333333 2.33333333 2.33333333] [3.66666667 3.66666667 3.66666667 3.66666667 3.66666667] [4.66666667 4.66666667 4.66666667 4.66666667 4.66666667]]

如果我尝试手动复制练习,我可以得到这个结果。原始矩阵为绿色,窗口为橙色,结果为黄色。白色是“反映”的观察结果。

结果是:

但是当我尝试 4 或 5 的窗口大小时,我无法复制结果。

filtered = uniform_filter(vector, 4, mode='reflect')

print(filtered)

[[ 1.5 1.5 1.5 1.5 1.5] [ 2. 2. 2. 2. 2. ] [ 3. 3. 3. 3. 3. ] [ 4. 4. 4. 4. 4. ]]

手工制作:

我得到:

如果窗口大小是偶数,如何处理?但无论如何,如果我尝试复制大小为 5 的窗口和模式反映的结果,我也不能。尽管我认为这种行为类似于 3 号的行为。

【问题讨论】:

  • 在“手工操作:”下面的图片中,您没有正确填写扩展数组的第一行。您只需垂直复制值1。对于mode='reflect',主(亮黄色)数组上方的顶行应该有2s。
  • 这正是我想知道的,你能帮我了解一下该模式的工作原理吗?对于窗口大小 n= 2,3,...,等等?我会接受这个答案,我特别想知道当维度是偶数时窗口是如何工作的。

标签: python image-processing scipy filtering


【解决方案1】:

假设一个轴上的数据是1 2 3 4 5 6 7 8。下表显示了如何为每种模式扩展数据(假设为cval=0):

    mode       |   Ext   |         Input          |   Ext
    -----------+---------+------------------------+---------
    'mirror'   | 4  3  2 | 1  2  3  4  5  6  7  8 | 7  6  5
    'reflect'  | 3  2  1 | 1  2  3  4  5  6  7  8 | 8  7  6
    'nearest'  | 1  1  1 | 1  2  3  4  5  6  7  8 | 8  8  8
    'constant' | 0  0  0 | 1  2  3  4  5  6  7  8 | 0  0  0
    'wrap'     | 6  7  8 | 1  2  3  4  5  6  7  8 | 1  2  3

对于偶数窗口大小n,考虑大小为n+1 的窗口,然后不包括下边缘和右边缘。 (可以使用origin 参数更改窗口的位置。)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-11-09
  • 1970-01-01
  • 2011-06-26
  • 2021-08-15
  • 2012-06-08
  • 2011-10-11
  • 2013-07-05
  • 1970-01-01
相关资源
最近更新 更多