【发布时间】:2018-07-07 14:02:19
【问题描述】:
我想用 Python 读取图像文件并应用 skimage 的 Canny 边缘过滤器。但我不知道特征计算的正确数组格式。这就是我所拥有的:
from PIL import Image
from skimage import feature
PATH = '/foo/bar.jpg'
import numpy
img = numpy.asarray(Image.open(PATH).convert('LA'))
# apply Canny Edge filters
edges1 = feature.canny(img)
edges2 = feature.canny(img, sigma=3)
功能调用引发此错误:“参数image 必须是二维数组”。如何将 numpy 数组转换为必要的形式?
【问题讨论】:
-
似乎您正在传递 RGB 图像。您可以通过灰度图像并获得精巧的边缘
-
只要试着找到错误的根源。
img.shape将指示数组的维数。你需要像(3000L, 4000L)这样的东西——那是二维的。如果是(3000L, 4000L, 3L),则您正在处理可能未定义feature.canny算法的RGB 图像。
标签: python arrays numpy scikit-image canny-operator