- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试学习 ndimage,但我不知道如何做 generic_filter()功能有效。文档提到用户功能将应用于用户定义的足迹,但不知何故我做不到。这是示例:
>>> import numpy as np
>>> from scipy import ndimage
>>> im = np.ones((20, 20)) * np.arange(20)
>>> footprint = np.array([[0,0,1],
... [0,0,0],
... [1,0,0]])
...
>>> def test(x):
... return x * 0.5
...
>>> res = ndimage.generic_filter(im, test, footprint=footprint)
Traceback (most recent call last):
File "<Engine input>", line 1, in <module>
File "C:\Python27\lib\site-packages\scipy\ndimage\filters.py", line 1142, in generic_filter
cval, origins, extra_arguments, extra_keywords)
TypeError: only length-1 arrays can be converted to Python scalars
我预计传递给 test()
函数的 x
值是每个数组样本的那些 True footprint 相邻元素,因此在此示例中,形状为 (2, ), 但我遇到了上述错误。
我做错了什么?
我如何告诉通用过滤器对指定的相邻点应用简单的值计算?
最佳答案
传递给 ndimage.generic_filter
的函数必须将数组映射到标量。该数组将是一维的,并且包含来自 im
的值,这些值已被 footprint
“选择”。
对于 res
中的每个位置,函数返回的值是分配给该位置的值。这就是为什么函数自然需要返回标量的原因。
例如,
def test(x):
return (x*0.5).sum()
会起作用。
关于python - 如何应用 ndimage.generic_filter(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14059529/
当我尝试执行以下操作时,它显示未定义的名称“ndimage”: import scipy.ndimage blurred = ndimage.gaussian_filter(file1, sigma
我使用 sudo pip3 install scipy 安装了 ndimage 然后我将其导入为 import scipy.ndimage 然后我正在执行以下行b=scipy.ndimage.filt
我有一个存储为 ndarray 的图像。我想遍历这个数组中的每个像素。 我可以像这样遍历数组的每个元素: from scipy import ndimage import numpy as np l
我正在尝试学习 ndimage,但我不知道如何做 generic_filter()功能有效。文档提到用户功能将应用于用户定义的足迹,但不知何故我做不到。这是示例: >>> import numpy a
我有一个大图像,在标记后有大约 500 个特征。我知道如何使用 find_object 将它们放入切片中,但我想给它们上色以便看到结果。对此有什么快速建议吗? 最佳答案 您可以像这样使用 matplo
我只是想熟悉 scipy.ndimage,我无法弄清楚 interpolate.convolve 和 interpolate.correlate 有何不同。 In [24]: a Out[24]: a
有没有办法在 Scipy 中为图像处理定义自定义过滤器?我需要一个过滤器,给定位于像素 i、j 的结构元素,它将该像素的值分配给该结构元素覆盖的所有其他像素。 编辑:滤镜类似于形态学滤镜,如侵 ecl
我尝试从 SciPy 导入 ndimage 包以使用其中的最大过滤器。但是,SciPy 似乎缺少这一部分。我收到此错误: from scipy.linalg import _fblas ImportE
已关注 How exactly does the “reflect” mode for scipys ndimage filters work?和 Numpy Two-Dimensional Movi
我正在尝试做的事情: 用 python 读取图像。 使用 Scipy 的 ndimage.gaussian_filter() 函数应用高斯滤波器。 显示生成的图像。 这是我要运行的代码: import
我想填充该图像的中心点,以便末端是白色,其余部分是黑色。我正在尝试使用 ndimage.binary_fill_holes 来完成此操作(代码如下)。当我运行脚本时,收到错误'NoneType' ob
虽然我已经找到了关于 scipy.ndimage.convolve 函数的文档并且我“几乎知道它做了什么”,但当我尝试计算结果数组时我无法遵循数学公式。让我们举个例子: a = np.array([[
我正在尝试编写一个 python 函数来删除 2D 图像数据中的热像素。我正在尝试创建一个函数,该函数将获取 2D 数组中每个元素周围的邻居的平均值,并且如果该元素的值超过其邻居的平均值特定量(例如
函数scipy.ndimage.laplace可用于计算应用于 N 维数组的拉普拉斯算子。如果要使用此功能,例如,用于物理应用,关键部分通常是如何处理边界。 查看函数文档,支持的选项有很多: “反射(
我尝试使用 ndimage.measurements.center_of_mass 计算高斯二维分布的峰值位置,发现质心从峰值中心偏移: import numpy as np from scipy i
我有一个二进制数组,比如说,a = np.random.binomial(n=1, p=1/2, size=(9, 9))。我使用 3 x 3 内核对其执行中值过滤,比如 b = nd.median_
我注意到 scipy.ndimage.zoom 的结果取决于原始图像的大小。在以下代码示例中,生成了一个棋盘图像,然后使用 ndimage.zoom 对其进行了缩放。如果一个棋盘图 block 只有
背景/背景 我试图重现 scipy 的 ndimage.affine_transform 输出的值函数,但与 scipy 实现相比,我似乎使用了不同的“三次”插值方案。 例子 让我们来看一个非常简单的
这个问题已经有答案了: scipy.misc module has no attribute imread? (18 个回答) 已关闭去年。 我正在尝试从 scipy 读取图像。但它给出错误“没有属性
我有一个二值图像。二值图像有一些孤立的区域,如噪声。我知道预期区域比这些孤立区域大得多。因此,我使用连接的组件通过找到最大的连接区域来删除隔离区域。我必须使用 scipy 包。我发现它有一些功能可以做
我是一名优秀的程序员,十分优秀!