问题标签 [ndimage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 查找 scipy.ndimage 的 gaussian_filter 使用的权重或内核
我有一个由 {0,1,2} 值组成的图像,我正在尝试从 scipy.ndimage 运行 gaussian_filter 。虽然它很容易使用,但我还没有正确理解这些东西。
我理解的几件事是:
- sigma 是用于在内核中分配权重的标准差
- 2D 图像上的高斯滤波器以 1D 高斯滤波器的形式实现
- 内核的大小取决于 sigma 和截断值 [ scipy 中的高斯滤波器
我想知道高斯滤波器中使用的权重。是否有某种方法可以从 gaussian_filter 调用本身或某些公式中获取使用的内核,我可以通过该公式获得该内核。
我希望这只是为了更好地理解我赋予图像中不同相邻像素的权重。
例如,内核将用于什么
ndimage.gaussian_filter(image,sigma=0.2)
ndimage.gaussian_filter(image,sigma=0.2,truncate=2)
python - 如何使用 Python 在图像上添加具有真实高斯形状的高斯模糊
假设我有一个如下二维数组的图像:
我想对其应用高斯模糊,因此图像如下:
基本上,我想要一个结果,其中那些值的高斯非常厚,而原始图像中的 0.5 值则更大。
到目前为止,我进行如下操作:
但是这样做会让模糊图像上的那些和 0.5 相同。如果有人知道如何解决这个“问题”,我想有一些建议!
python - `order=0` 的 `scipy.ndimage.zoom()` 的意外行为
我很难理解scipy.ndimage.zoom()
when的行为order=0
。
考虑以下代码:
其输出是:
因此,当order=0
值(预期)未插值时。但是,我期望拥有:
即每个值的元素数量完全相同,因为缩放是整数。因此,我期望得到与以下相同的结果np.repeat()
:
为什么每个元素重复的次数会有所不同?
请注意,np.repeat()
它不能直接与多维数组一起使用,这就是我想从scipy.ndimage.zoom()
.
我的 NumPy 和 SciPy 版本是:
我发现了这个:
`scipy.ndimage.zoom` vs `skimage.transform.rescale` with `order=0`,
这指向了一些意想不到的行为,scipy.ndimage.zoom()
但我不太确定观察到的效果是否相同。
python - 如何使用 Python 确定图像中有多少条不同的曲线?
我正在尝试编写一种算法来系统地确定图像中有多少不同的“曲线”。示例图像。我对这里的白线特别感兴趣,所以我使用了颜色阈值来掩盖图像的其余部分,只得到白色像素。这些线代表玩家(NFL中的宽接收器)运行的路径,因此我对路径所代表的 x 和 y 坐标感兴趣 - 每个“曲线”代表玩家采取的不同路径(或“路线”)。所有曲线都应在蓝线之上或之后开始。
然而,虽然我只能得到白色像素,但我无法弄清楚如何系统地识别单独的曲线。在此示例图像中,存在 8 条白色曲线(或路线)。我已经识别出这张图片中的那些曲线。我尝试了边缘检测,然后使用 scipy ndimage 来获取连接组件的数量,但是由于曲线重叠,它将它们计为连接的,并且只给了我这个图像的 3 个标记组件,而不是 8 个。这是边缘检测输出的样子。有没有更好的方法来解决这个问题?这是我的示例代码。
python - 如何为多个插值加速 scipy.map_coordinates?
我有几个值 f、g、h 在同一个常规网格 (x, y, z) 上定义,我想将它们插值到新网格 (x1, y1, z1) 上。即,我有 f(x, y, z) , g(x, y, z) , h(x, y, z) 我想计算 f(x1, y1, z1), g(x1, y1, z1), h(x1, y1, z1)。
我scipy.map_coordinates
目前正在使用。但是,每次插值都是单独进行的,点数在4,000,000左右,所以速度很慢
有没有办法加速计算?
python - 使用 NumPy 进行自适应高斯滤波
在具有静态 sigma 值的图像上运行高斯滤波器很容易:
但是如何使用sigma
每个像素不同的值来做到这一点?例如,我可能有另一个相同大小的 NumPy 数组,它指示每个像素使用什么 sigma。
python - 在 Xarray DataArray 上使用 sp.ndimage.label 和 apply_ufunc
假设我有一个简单的数组:
我可以使用 scipy ndimage 模块对这些数据应用标签:
导致
现在,我想在 xarray DataArray 上执行相同的标记功能。
我知道我可以在 上调用与以前相同的函数xr_data
,但是执行此调用的输出是一个 numpy 数组,在我的实际数据集中,它太大而无法放入内存。
看来这个xr.apply_ufunc
功能是我需要的。但是,我无法让它工作。
这导致:“ ValueError:应用函数返回的数据具有意外的维度数。收到 0 个维度,但预期 1 个维度的名称为:('x',)”
我发现有关 apply_ufunc 方法的文档难以解释。有人可以帮我解决这个问题吗?