sklearn.feature_extraction.image里的img_to_graph返回值是什么意思?

邹博老师机器学习升级版聚类代码 18.9.SpectralClusterImage.py 谱聚类图像分割这堂课里的image.img_to_graph返回的值是什么意思? chrome.png这个图像是34*41的
 
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors
from sklearn.cluster import spectral_clustering
from sklearn.feature_extraction import image
from PIL import Image
 
pic = Image.open('Chrome.png')
pic = pic.convert('L')
data = np.array(pic).astype(np.float)
affinity = image.img_to_graph(data)
print(affinity)
print(affinity.shape)
print(type(affinity))
print(affinity.toarray())
 
返回的结果是:
  (0, 1)    0.0039215686274509665
  (1, 2)    0.0
  (2, 3)    0.0039215686274509665
  (3, 4)    0.0
  (4, 5)    0.0039215686274509665
  (5, 6)    0.0039215686274509665
...
  (1388, 1388)  0.43529411764705883
  (1389, 1389)  0.42745098039215684
  (1390, 1390)  0.4235294117647059
  (1391, 1391)  0.4196078431372549
  (1392, 1392)  0.41568627450980394
  (1393, 1393)  0.4117647058823529
(1394, 1394)
<class 'scipy.sparse.coo.coo_matrix'>
[[0.81960784 0.00392157 0.         ... 0.         0.         0.        ]
 [0.00392157 0.81568627 0.         ... 0.         0.         0.        ]
 [0.         0.         0.81568627 ... 0.         0.         0.        ]
 ...
 [0.         0.         0.         ... 0.41960784 0.00392157 0.        ]
 [0.         0.         0.         ... 0.00392157 0.41568627 0.00392157]
 [0.         0.         0.         ... 0.         0.00392157 0.41176471]]
 
为什么稀疏矩阵刚开始的时候行索引和列索引不一样,后面几行行索引和列索引又一样了?为什么稀疏矩阵没有包含(0,0) 0.81960784这一项?

niar

赞同来自:

我是这么理解的: 这个存的是邻近点之间的图像梯度值 图像梯度: 图像梯度是图像中强度或颜色的方向变化,梯度的方向是函数f(x,y)(图像中强度或颜色)变化最快的方向,当图像中存在边缘时,一定有较大的梯度值,相反,当图像中有比较平滑的部分时,灰度值变化较小,则相应的梯度也较小 这里采用的是coo_matrix格式,也就是稀疏矩阵的三元组形式,()里面是两个点的位置,后面的是图像梯度值 例如(1,2) 0.987 那么就是说第1个点和第2个点的图像梯度值为0.987 注意:在矩阵中点的编号是按行优先编号,从0开始的 [[0,1,2] [3,4,5] [6,7,8] ... ] 不知道这样理解有没有错

niar

赞同来自:

补充一点 图像梯度值官网解释如下 官网https://scikit-learn.org/stabl ... .html 官网原文解释Edges are weighted with the gradient values. 也就是梯度变化值代表的是边的权值 这个边edge,我的理解是分割图片的边,如下图,切分出来的边就是这个edge
1541941349784.png
 

要回复问题请先登录注册