我有以下代码:
import cv2
import matplotlib.pyplot as plt
import numpy as np
from scipy import ndimage
from sklearn.feature_extraction import image
from sklearn.cluster import spectral_clustering
image = cv2.imread("/home/facu/holo.tif",0)
image = image
spectrum = np.fft.fftshift(np.fft.fft2(image))
intensity = 10*np.log(np.abs(spectrum))
mask = intensity.astype(bool)
img = intensity.astype(float)
graph = image.img_to_graph(img, mask=mask)
graph.data = np.exp(-graph.data/graph.data.std())
labels = spectral_clustering(graph, k=2, mode = 'arpack')
label_img = -np.ones(mask.shape)
label_im[mask] = labels
所以我试图使用"光谱聚类"函数,但我得到这个错误:
AttributeError:"numpy。Ndarray ' object '没有属性'img_to_graph'
我怎样才能把我的"强度"numpy数组转换成正确的img_to_graph属性?
您正在用image = cv2.imread("/home/facu/holo.tif",0)
覆盖导入的image = sklearn.feature_extraction.image
,因此img_to_graph
函数将无法再访问。
解决方案是重命名其中一个,例如使用
raw_img = cv2.imread("/home/facu/holo.tif",0)
并相应地调整其余部分