'function' 对象没有属性 'flat'
'function' object has no attribute 'flat'
我正在尝试对 Python 中的某些图像执行角点检测。
我首先使用以下代码执行 shi-tomasi 算法:
def corners_map(image):
# Convert to grayscale and convert the image to float
RGB = img_as_float(color.rgb2gray(image))
# Apply shi-tomasi algorithm
corners_map = feature.corner_shi_tomasi(RGB, 10)
# Plot results
plt.figure(figsize=(12,6))
plt.subplot(121)
plt.imshow(RGB, cmap=cm.gist_gray)
plt.title('Original image')
plt.subplot(122)
plt.imshow(corners_map, cmap=cm.jet)
plt.colorbar(orientation='horizontal')
plt.title('Corners map');
然后我从 skimage 应用 feature.corner_peaks 但是当我调用该函数时,它给我一个错误 "AttributeError: 'function' object has no attribute 'flat'"。下面是代码:
def corner_peaks(image):
# Apply corner peak detection algorithm
corners = feature.corner_peaks(corners_map)
#Plot results
plt.figure(figsize=(12,6))
plt.subplot(121)
plt.imshow(RGB, cmap=cm.gist_gray)
plt.title('Original image')
plt.figure(figsize=(12,6))
plt.subplot(122)
plt.imshow(RGBimg, cmap=cm.gist_gray)
plt.scatter(corners[:,1], corners[:,0], s=30)
plt.title('skimage.feature.corner_peaks result')
corner_peaks(image1)
我在 Python 方面还不是很流利,因此非常感谢任何解决此问题的帮助。
这是完整的错误:
您已将名称 corners_map
重复用于图像和函数。由于函数在 python 中是 first-class,您可以将它们作为函数参数传递。在这一行 corners = feature.corner_peaks(corners_map)
中,您引用的 corners_map
是上面定义的函数。只需重命名函数、图像或两者。
我正在尝试对 Python 中的某些图像执行角点检测。
我首先使用以下代码执行 shi-tomasi 算法:
def corners_map(image):
# Convert to grayscale and convert the image to float
RGB = img_as_float(color.rgb2gray(image))
# Apply shi-tomasi algorithm
corners_map = feature.corner_shi_tomasi(RGB, 10)
# Plot results
plt.figure(figsize=(12,6))
plt.subplot(121)
plt.imshow(RGB, cmap=cm.gist_gray)
plt.title('Original image')
plt.subplot(122)
plt.imshow(corners_map, cmap=cm.jet)
plt.colorbar(orientation='horizontal')
plt.title('Corners map');
然后我从 skimage 应用 feature.corner_peaks 但是当我调用该函数时,它给我一个错误 "AttributeError: 'function' object has no attribute 'flat'"。下面是代码:
def corner_peaks(image):
# Apply corner peak detection algorithm
corners = feature.corner_peaks(corners_map)
#Plot results
plt.figure(figsize=(12,6))
plt.subplot(121)
plt.imshow(RGB, cmap=cm.gist_gray)
plt.title('Original image')
plt.figure(figsize=(12,6))
plt.subplot(122)
plt.imshow(RGBimg, cmap=cm.gist_gray)
plt.scatter(corners[:,1], corners[:,0], s=30)
plt.title('skimage.feature.corner_peaks result')
corner_peaks(image1)
我在 Python 方面还不是很流利,因此非常感谢任何解决此问题的帮助。
这是完整的错误:
您已将名称 corners_map
重复用于图像和函数。由于函数在 python 中是 first-class,您可以将它们作为函数参数传递。在这一行 corners = feature.corner_peaks(corners_map)
中,您引用的 corners_map
是上面定义的函数。只需重命名函数、图像或两者。