问题标签 [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.

0 投票
1 回答
255 浏览

python-3.x - 我可以用什么来测量 3D (x,y,z) 中的某些属性?Regionprops 文档说它仅适用于 (N, M) 但我找到了 3D regionprops PR 的信息

链接到 regionprops 文档: https ://scikit-image.org/docs/dev/api/skimage.measure.html#skimage.measure.regionprops

Regionprops信息公关: https ://github.com/scikit-image/scikit-image/pull/1505

0 投票
0 回答
192 浏览

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)

0 投票
0 回答
198 浏览

python - 如何使用 Python 在图像上添加具有真实高斯形状的高斯模糊

假设我有一个如下二维数组的图像:

我想对其应用高斯模糊,因此图像如下:

基本上,我想要一个结果,其中那些值的高斯非常厚,而原始图像中的 0.5 值则更大。

到目前为止,我进行如下操作:

但是这样做会让模糊图像上的那些和 0.5 相同。如果有人知道如何解决这个“问题”,我想有一些建议!

0 投票
2 回答
1579 浏览

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()但我不太确定观察到的效果是否相同。

0 投票
0 回答
78 浏览

python - 如何使用 Python 确定图像中有多少条不同的曲线?

我正在尝试编写一种算法来系统地确定图像中有多少不同的“曲线”。示例图像。我对这里的白线特别感兴趣,所以我使用了颜色阈值来掩盖图像的其余部分,只得到白色像素。这些线代表玩家(NFL中的宽接收器)运行的路径,因此我对路径所代表的 x 和 y 坐标感兴趣 - 每个“曲线”代表玩家采取的不同路径(或“路线”)。所有曲线都应在蓝线之上或之后开始。

然而,虽然我只能得到白色像素,但我无法弄清楚如何系统地识别单独的曲线。在此示例图像中,存在 8 条白色曲线(或路线)。我已经识别出这张图片中的那些曲线。我尝试了边缘检测,然后使用 scipy ndimage 来获取连接组件的数量,但是由于曲线重叠,它将它们计为连接的,并且只给了我这个图像的 3 个标记组件,而不是 8 个。是边缘检测输出的样子。有没有更好的方法来解决这个问题?这是我的示例代码。

0 投票
1 回答
68 浏览

python - 旋转图像而不平均像素值

是否可以旋转图像并保持真实值?当我旋转黑白图像时,我得到了灰度值。我可以在不平均像素值的情况下旋转吗?我几乎可以通过使用手动完成,np.where()但是当像素值超过 2 个时会变得很困难。

代码:

原始图像

原始图像

旋转图像

旋转图像

平均值

平均值

真值

真值

0 投票
2 回答
269 浏览

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左右,所以速度很慢

有没有办法加速计算?

0 投票
1 回答
599 浏览

python - 使用 NumPy 进行自适应高斯滤波

在具有静态 sigma 值的图像上运行高斯滤波器很容易:

但是如何使用sigma每个像素不同的值来做到这一点?例如,我可能有另一个相同大小的 NumPy 数组,它指示每个像素使用什么 sigma。

0 投票
1 回答
122 浏览

python - 使用 scipys ndi.label() 测试一个点是否位于标记对象内

标记图像

上图是ndi.label()使用 matplotlib 处理并显示的图像,每个彩色区域代表不同的特征。绘制在图像顶​​部的是红点,每个红点代表一对坐标。所有坐标都被存储并且 ndi.label 返回特征的数量。skimage、scipy 或 ndimage 是否具有测试给定坐标集是否位于标记特征内的功能?

最初我打算使用每个特征的绑定框(左、右、上、下),但由于这些区域并非都是四边形的,这将不起作用。

生成图像的代码:

0 投票
1 回答
87 浏览

python - 在 Xarray DataArray 上使用 sp.ndimage.label 和 apply_ufunc

假设我有一个简单的数组:

我可以使用 scipy ndimage 模块对这些数据应用标签:

导致

现在,我想在 xarray DataArray 上执行相同的标记功能。

我知道我可以在 上调用与以前相同的函数xr_data,但是执行此调用的输出是一个 numpy 数组,在我的实际数据集中,它太大而无法放入内存。

看来这个xr.apply_ufunc功能是我需要的。但是,我无法让它工作。

这导致:“ ValueError:应用函数返回的数据具有意外的维度数。收到 0 个维度,但预期 1 个维度的名称为:('x',)”

我发现有关 apply_ufunc 方法的文档难以解释。有人可以帮我解决这个问题吗?