首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python ndimage.gaussian_filter抛出运行时错误

Python ndimage.gaussian_filter抛出运行时错误
EN

Stack Overflow用户
提问于 2018-02-25 16:01:25
回答 1查看 6.8K关注 0票数 3

我想做的是:

  1. 阅读python中的图片。
  2. 使用西西的ndimage.gaussian_filter()函数应用高斯滤波器。
  3. 显示得到的图像。

下面是我试图运行的代码:

代码语言:javascript
复制
import cv2
from matplotlib import pyplot as plt
import scipy.ndimage as ndimage

img = cv2.imread('lena.png', 0)
img = ndimage.gaussian_filter(img, sigma=(5, 5, 0), order=0)
plt.imshow(img, cmap='gray', interpolation='bicubic')
plt.show()

问题是:

我得到了以下错误:

代码语言:javascript
复制
RuntimeError: sequence argument must have length equal to input rank

完整的堆栈跟踪是:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/Users/guest/stackoverflow.py", line 6, in <module>
    img = ndimage.gaussian_filter(img, sigma=(5, 5, 0), order=0)
  File "/Users/guest/anaconda/envs/MyEnv/lib/python3.5/site-packages/scipy/ndimage/filters.py", line 346, in gaussian_filter
    sigmas = _ni_support._normalize_sequence(sigma, input.ndim)
  File "/Users/sguest/anaconda/envs/MyEnv/lib/python3.5/site-packages/scipy/ndimage/_ni_support.py", line 65, in _normalize_sequence
    raise RuntimeError(err)
RuntimeError: sequence argument must have length equal to input rank

下面是我要处理的图像:leng.png

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-26 04:45:34

根据堆栈跟踪,“序列参数必须长度等于输入秩”的错误由行img = ndimage.gaussian_filter(img, sigma=(5, 5, 0), order=0)抛出。

sigma是一个序列参数,您需要为每个图像维度提供一个值(这是错误消息中提到的“输入等级”)。

显然,img = cv2.imread('lena.png', 0)语句返回一个2D数组( 0参数告诉imread将图像转换为灰色值)。因此,gaussian_filter需要sigma的2个值,而不是3个。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48975480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档