问题标签 [scipy.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 投票
0 回答
17 浏览

python - 当 scipy.ndimage.zoom 使用 order 1 和 order 3 时,输出中引入了什么区别?

我有一个功能可以将图像保存为 16 位,而不是像这样的常规 8 位:

我要保存的图像首先被缩放然后保存。

当我使用 order = 1 for 运行此 python 代码时scipy.ndimage.zoom,没有看到任何问题。图像被缩放并保存得很好,但我想获得更好的插值。

我将插值顺序更改为 3,出现错误:

我不明白这里的插值顺序有什么区别

0 投票
0 回答
25 浏览

numpy - How do I find rectangular areas in a matrix

I have a matrix with different labels. How do I find all rectangles with identical values?

I tried:

This reports

But a[50, 50] = 7 so there is clearly no rectangle [0:100, 0:100] with the value 5

0 投票
1 回答
71 浏览

python - 在python中旋转图像的最快方法是什么?

我需要知道在 Python 中旋转图像的最快方法是什么。

在 Stack Overflow 中,没有根据我的知识提出或回答这样的问题,所以我决定进行一个实验并找出答案。这就是为什么我想与您分享结果:

为每个模块定义一个函数:

使用 timeit 找出最快的,PIL,Open CV 或 Scipy:

结果是:

不过有一个转折点——这是一个 jpeg 文件,而 PIL 只是粉碎了其他两个库。但是我主要使用 TIFF 格式的大型原始图像,所以我还决定测试 TIFF 文件:

这意味着 OpenCV 在 TIFF 文件格式方面的表现要好于我们在 JPEG 文件方面的明显赢家。

如果有人碰巧知道原因,或者如果有人有类似的实验,请在这里分享。我认为这将是一个很好的公开文件进行比较。

另外,如果您认为我的实验无效,或者出于任何原因可以改进,请告诉我。

0 投票
1 回答
21 浏览

python-3.x - 忽略零值数据点的 Scipy 中值过滤器?

我一直在median_filter使用scipy.ndimage. 我想以一种丢弃任何没有积极价值的数据的方式使用它。

也就是说,假设过滤器的一次迭代作用于:

如果我只是对此运行中值滤波器,我将得到45。我想要一个忽略零的函数,使得中位数为50

感谢您的建议!

0 投票
0 回答
25 浏览

scipy.ndimage - AttributeError:模块“scipy.ndimage”没有属性“imread”

AttributeError:模块“scipy.ndimage”没有属性“imread”

代码片段 import numpy as np from scipy import ndimage

导入 matplotlib.pyplot 作为 plt %matplotlib inline

img = np.expand_dims(ndimage.imread('NNd.PNG'),0) plt.imshow(img[0])

我正在使用谷歌合作,但它不工作。我试过使用 imageio , cv2 方法,但它不起作用。请协助

0 投票
1 回答
15 浏览

python - 使用 scipy affine_transform 重新采样脑 MRI 扫描时减少伪影

我有脑核磁共振。它是灰度的,有 20 个切片。我将它放入一个形状为 (20,256,256) 的 numpy 数组中。我使用scipy.ndimage affine_transform来旋转和重新采样数组,如下所示。

在此处输入图像描述

图像中的暗纹是我想要减少的伪影。伪影是由于切片之间的间隙比较大造成的。在此示例中,像素间距为 0.85 mm,但切片之间的距离为 7 mm。

我试图改变仿射变换的顺序,但即使 order=5 也有相同的工件。下面是 order=0(最近的邻居)...

在此处输入图像描述

你可以看到头骨的曲率是如何使问题复杂化的。有什么技巧可以解决这个问题吗?也许我应该在像素之间添加虚拟数据以均衡间距?也许我应该使用极坐标来消除曲率?还有其他想法吗?

0 投票
1 回答
25 浏览

python - cv2.Filter2D 与 ndimage.convolve?

我是图像处理的新手,如果您觉得问题太简单,请原谅我。

我试图ndimage.convolve()cv2.filter2D()卷积函数替换。

这是原始代码

这是替换功能

两个代码都返回不同的值,我尝试使用参数 atndimage.convolve并将原点设置为 -1 然后它返回确切的结果,cv2.filter2D但这不是我想要的,因为我希望 ndimage.convolve 使用默认原点这是零。

在我再次研究 opencv 文档后,filter2D我意识到

过滤函数实际上计算相关性。如果你有一个对称的卷积核,那么相关性和卷积的数学表达式是相同的。

如果内核不对称,则必须翻转内核并将锚点设置为(kernel.cols - anchor.x - 1,kernel.rows - anchor.y - 1)。这将计算实际的卷积。

所以我cv2.flip(f,-1)双向翻转内核,但我不知道翻转内核后如何计算新的锚点,根据文档,我需要将锚点设置为(kernel.cols - anchor.x - 1, kernel.rows - anchor.y - 1). 我猜kernel.cols 和kernel.rows是两个方向的内核大小,但这里的含义anchor.xanchor.y含义是什么?它是内核的原始锚点吗?假设内核是 42 X 42,那么新的锚点是什么?提前致谢。