长话短说,我只是想得到一个精明的边缘形象的image.jpg。
文档非常杂乱无章,所以我很困惑。如果有人能帮忙的话,我会非常感激的。
from scipy import misc
import numpy as np
from skimage import data
from skimage import feature
from skimage import io
im=misc.imread('image1.jpg')
edges1 = feature.canny(im)
...我得到了这个错误
ValueError: The parameter `image` must be a 2-dimensional array有人能解释如何从图像文件中创建2D数组吗?谢谢!
发布于 2015-06-03 04:20:46
我怀疑image1.jpg是彩色图像,所以im是三维的,具有形状(num_rows,num_cols,num_color_channels)。一种选择是告诉imread通过给出参数flatten=True,将图像压缩成二维数组。
im = misc.imread('image1.jpg', flatten=True)或者你可以将canny应用到其中的一个彩色通道上。
im = misc.imread('image1.jpg')
red_edges = feature.canny(im[:, :, 0])发布于 2018-02-22 19:31:12
canny边缘检测需要输入灰度图像才能正常工作。您可以使用rgb2gray模块将3D (彩色)图像转换为2D (灰度)-图像。
from skimage import io, features
from skimage.color import rgb2gray
image = rgb2gray(io.imread("image.png"))
edges = feature.canny(image)https://stackoverflow.com/questions/30610671
复制相似问题