问题标签 [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 回答
1024 浏览

python - 如何获得具有边界条件的图像区域?

许多函数scipy.ndimage接受一个可选mode=nearest|wrap|reflect|constant参数,该参数确定如何处理函数需要来自图像区域之外的一些数据(填充)的情况。填充由本机代码中的NI_ExtendLine()内部处理。

我不想在填充数据上运行 ndimage 函数,而是只想使用与 ndimage 使用的填充模式相同的填充模式来获取填充数据。

这是一个示例(仅适用于 mode=nearest,假设为 2d 图像):

这是正确的,但速度很,因为它一次迭代一个像素。

最好(最快、最清晰、最 Pythonic)的方法是什么?

0 投票
1 回答
1586 浏览

python - Scipy 标签和测量每个标签中的最大像素

所以我想使用 scipy 测量每个标签(在多个数组中)中的最大像素和像素的平均值。例如

(img,other 是一个打开的 tif 的 numpy 数组)

因此,对于每个标签,我想找到像素的最小值、像素的最大值以及 img 和合并的强度平均值(我可以计算的每个标签的面积)。我希望能够用每个标签的这些计数(img 中的连接区域)制作直方图。(一旦我有了 np 数组或列表,我就知道如何制作直方图)

我正在考虑为每个标签制作一个循环,然后仅使用该标签制作一个二进制结构并测量值。是否有任何快速的 scipy/numpy 方法可以在不通过循环的情况下执行此操作?

谢谢!

0 投票
1 回答
259 浏览

python - 在 Python 中旋转图像 - 提高质量 - Scipy

正如标题所说,我正在尝试使用 Scipy 包在 Python 中旋转图像。我收到一个具有特定尺寸的图像作为输入,例如 512 x 512,我必须对其进行一些旋转并裁剪它的一部分。所以,这是我到目前为止的代码:

这是我的原始图像(256x256):

在此处输入图像描述

这些是我得到的一些输出(128x128):

在此处输入图像描述 在此处输入图像描述

如您所见,边缘非常糟糕,这对于我必须做的事情是不可接受的。我想知道为什么会发生这种情况以及是否有办法摆脱它。

先感谢您。

0 投票
1 回答
2017 浏览

python - 如何在python中删除一些连接的组件?

考虑一个二值化图像,我scipy.ndimage.label()在它上面使用,然后find_objects()在结果上应用。

现在我有一个由 N 个元组组成的元组列表,每个元组都是两个切片,例如:

它描述了由于连通分量而产生的 xy 边界坐标。

以索引为 0 的元组为例:

slice(0, 21, None)表示行号从 0~21 和

slice(0, 12, None)表示列号为 0~12。

所以我们会知道这个 cc 的面积是21 * 12 = 252

现在我想删除那些面积小于 300 的连接组件。

我已经知道要对所有这些进行迭代。我想以更有效的方式做到这一点;有人知道怎么做吗?

0 投票
2 回答
917 浏览

python - ndimage map_coordinates with masked arrays

I am using ndimage to interpolate as follows:

Now, the problem is that I do not have valid measurements over my whole input data. So, I have a masked array which tells me which data points are valid. So, when doing the interpolation, I would like to only use pixels which are valid and also adjust the weightings accordingly (to ensure that the weights sum to 1).

However, I see that there is no easy way to do this. I was wondering if someone knows of a good way to do this or can point me to some library or code that I can use. I am coming from a C++ background, so still finding my way around python.

0 投票
1 回答
3281 浏览

python-2.7 - 如何使用 scipy.ndimage.filters.gereric_filter?

我正在尝试使用 scipy.ndimage.filters.generic_filter 来计算邻域的加权和。社区在某些时候会发生变化,但现在 3x3 是我正在努力的方向。到目前为止,这是我所在的位置:

我从 ndimage 收到一个错误,说“TypeError:需要浮点数”,但我不知道它指的是什么参数,它看起来与我见过的其他示例基本相同。

0 投票
3 回答
3232 浏览

python - 显微镜图像分割:用 python 进行细菌分割

我正在尝试分割一些显示一些大肠杆菌的显微镜明场图像。我正在使用的图片类似于这张(即使这张是通过相位对比获得的):

显微明场图像

我的问题是,在运行我的分割功能(下面的 OtsuMask)后,我无法区分分裂的细菌(您可以在示例图像上尝试我的代码)。这意味着我得到了两个细菌的一个标记区域,它们的末端连接在一起,而不是两个不同的标记图像。两个分裂细菌之间的边界太窄,无法通过我在阈值图像上执行的形态学操作来突出显示,但我想一定有一种方法可以实现我的目标。

有什么想法/建议吗?

OtsuMask 中代码的第一部分由平面拟合和减法组成。

0 投票
0 回答
735 浏览

python - Python 2.6 64 位 - scipy.ndimage 导入错误

使用 python 2.6 的 64 位版本,我从http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy安装了非官方的 64 位 scipy 模块。我尝试运行一个专门使用 scipy.ndimage 模块的脚本,这会导致此错误:

我根本无法使用这些包导入 scipy.ndimage 。这是软件包问题还是我的安装/配置问题?

我可以提供任何其他相关信息。

0 投票
1 回答
651 浏览

python - scipy.ndimage.generic_filter 返回类型错误

我正在使用scipy.ndimage.generic_filter来计算数组的局部模态值。我正在比较两种方法,看看哪种方法更快(因为第一种方法很慢)。我的第一种方法是;

我的第二种方法是;

但是通过第二种方法,我得到了这个:

当我运行这个:

它返回True

为什么generic_filter使用方法时会抛出类型错误numpy.bincount而不是stats.mode返回值相同时的方法?

我在 Windows 7 上使用 Python 2.7.3、Numpy 1.6.1 和 Scipy 0.14.0(我坚持使用这个版本的 Numpy 和 Python,因为这是 ESRI ArcGIS 附带的)。我尝试安装 scikit-image 来计算模态过滤器,但我在安装时遇到了其他错误,并认为解决这个问题更简单!

0 投票
0 回答
1741 浏览

python - scipy.ndimage.filters.maximum_filter 中的足迹问题

我正在使用 scipy.ndimage.filters.maximum_filter 来找出局部最大值,代码如下:

但是,当我在 python 中运行时出现错误:“序列参数的长度必须等于输入等级”。你能帮我解决这个错误吗?我是 scipy 的新手。

非常感谢。

亲切的问候,

莲花