我想提取图像中最常用的颜色,或者至少是主色调你能推荐我如何从这个任务开始?或者指向一个类似的代码?我一直在寻找它,但没有成功.
machine-learning hierarchical-clustering image-processing quantization computer-vision
我在做用的R包叫做分层聚类pvclust,其基础上hclust通过将引导来计算得到的集群显着性水平.
考虑以下具有3维和10个观察的数据集:
mat <- as.matrix(data.frame("A"=c(9000,2,238),"B"=c(10000,6,224),"C"=c(1001,3,259),
"D"=c(9580,94,51),"E"=c(9328,5,248),"F"=c(10000,100,50),
"G"=c(1020,2,240),"H"=c(1012,3,260),"I"=c(1012,3,260),
"J"=c(984,98,49)))
Run Code Online (Sandbox Code Playgroud)
当我hclust单独使用时,聚类对欧几里得测量和相关度量都运行良好:
# euclidean-based distance
dist1 <- dist(t(mat),method="euclidean")
mat.cl1 <- hclust(dist1,method="average")
# correlation-based distance
dist2 <- as.dist(1 - cor(mat))
mat.cl2 <- hclust(dist2, method="average")
Run Code Online (Sandbox Code Playgroud)
但是,在使用每个设置时pvclust,如下:
library(pvclust)
# euclidean-based distance
mat.pcl1 <- pvclust(mat, method.hclust="average", method.dist="euclidean", nboot=1000)
# correlation-based distance
mat.pcl2 <- pvclust(mat, method.hclust="average", method.dist="correlation", nboot=1000)
Run Code Online (Sandbox Code Playgroud)
...我收到以下错误:
Error in hclust(distance, method = method.hclust) :
must have n >= 2 objects to clusterError in cor(x, method …r cluster-analysis hierarchical-clustering hclust correlation
是否可以为Scipy的树状图的叶子标签指定颜色?我无法从文档中找到它.这是我到目前为止所尝试的:
from scipy.spatial.distance import pdist, squareform
from scipy.cluster.hierarchy import linkage, dendrogram
distanceMatrix = pdist(subj1.ix[:,:3])
dendrogram(linkage(distanceMatrix, method='complete'),
color_threshold=0.3,
leaf_label_func=lambda x: subj1['activity'][x],
leaf_font_size=12)
Run Code Online (Sandbox Code Playgroud)
谢谢.
我试图检测数据的2D散射矢量中的角(x/y坐标).
数据来自激光测距仪,我们当前的平台使用Matlab(虽然独立的程序/库是一个选项,但Nav/Control代码在Matlab上,所以它必须有一个接口).
角点检测是SLAM算法的一部分,角落将作为地标.
如果可能的话,我也希望在速度方面达到接近100Hz的水平(我知道它的Matlab,但我的数据集非常小.)
样本数据:

[蓝色是原始数据,红色是我需要检测的.(这种观点实际上是自上而下的.)]
[ 以上镜头的实际矢量数据 ]
到目前为止,我尝试了许多不同的方法,其中一些方法比其他方法更成功 我从未正式研究过任何形式的机器视觉.
我的第一种方法是一个自制的最小二乘线装配器,它将线条分成两半,直到它们满足一些r ^ 2值,然后尝试合并具有相似斜率/截距的线条.然后它将计算这些线的交叉点.它不是很好,但确实在70%的时间内都能正常工作,虽然它有一些完全缺少某些功能的坏问题.
我当前的方法使用clusterdata函数根据马哈拉诺比斯距离来分割我的数据,然后基本上做同样的事情(最小二乘线拟合/合并).它工作正常,但我假设有更好的方法.
[ 源代码到当前方法 ] [cnrs, dat, ~, ~] = CornerDetect(data, 4, 1)使用上述数据将产生我得到的位置.
我不需要从头开始编写这个,看起来大多数更高级的方法都适用于2D图像或3D点云,而不是2D散射数据.我已经阅读了很多关于Hough变换和各种数据聚类方法(k-Means等)的内容.我也尝试了一些罐装线探测器而没有太大的成功.我尝试使用线段探测器,但它需要一个灰度图像作为输入,我认为将我的矢量转换为完整的2D图像以将其提供给像LSD这样的东西会非常慢.
任何帮助是极大的赞赏!
matlab hierarchical-clustering image-processing computer-vision image-segmentation
我想以类似于此示例的方式在地图上显示标记,但我有更多标记,我想使用"原生"Google地图.
到目前为止,我发现只有一个看起来能够做到这一点的库:android-maps-utils.但经过测试后发现,当有大约35000个标记时,它会出现严重的性能问题.(甚至java.lang.OutOfMemoryError).所以我想知道还有哪些其他选择.从头开始滚动我自己的解决方案可能是我想做的最后一件事.
我想,这个库根本不可用于非常大的标记计数,因为它将它们全部保存在RAM中.例如,在从文件中读取当前不可见标记时,最好过滤掉它们,并在每次摄像机移动后进行.(double从二进制文件中读取35k对DataInputStream非常快,所以现在这不是什么大问题.我想这可以进一步加速.)另外,我可以为不同的缩放级别准备预处理的集群集.文件,因为标记不会经常更改.
但是从头开始实现这一点(特别是 - 适当的集群)看起来很多工作.也许我错过了已经做过的事情?
为此,我尝试使用android-maps-extensions.它工作得更好,但它也将所有标记保存在内存中,当显示大约35k标记时,它会在完全缩小时导致大约20MB的内存消耗,并且在放大时会导致大约24MB.另外大约7MB并且会出现崩溃...所以我想我需要在RAM中保留尽可能少的数据.有没有像这样工作的图书馆?
我正在使用SciPy制作一个大的树形图,在得到的树形图中,线条粗细使得很难看到细节.我想减少线条粗细,以便更容易看到,更像MatLab.有什么建议?
我正在做:
import scipy.cluster.hierarchy as hicl
from pylab import savefig
distance = #distance matrix
links = hicl.linkage(distance,method='average')
pden = hicl.dendrogram(links,color_threshold=optcutoff[0], ...
count_sort=True,no_labels=True)
savefig('foo.pdf')
Run Code Online (Sandbox Code Playgroud)
而且越来越像结果这样.
我们需要通过距离矩阵,所以不需要计算任何额外的距离,对吗?我错过了什么?
这里的文档:http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.cluster.hierarchy.linkage.html
所以我在pandas DataFrame中存储了分层信息,我想基于这些信息构建和可视化分层树.
例如,我的DataFrame中的一行有列标题 - ['Phylum','Class','Order','Family','Genus','Species','Subspecies']
我想用每一行创建一个树,其中所有'Subspecies'都是唯一的字符串,应该是树中的叶子.有人能指出我最好的方法/包装......这样做吗?理想情况下,输出将是matplotlib对象.先感谢您!
我试图使用nbclust函数并收到错误:“ t(jeu)%*%jeu中的错误:需要数字/复杂矩阵/矢量参数”,这就是我运行该函数的方式:
NbClust(input_data, diss = dissimilarity_matrix,
distance = NULL,
min.nc=2, max.nc=5, method = "ward.D2",
index = "all")
Run Code Online (Sandbox Code Playgroud)
该错误可能是因为我的数据不是数字的,但相异矩阵却是。其他所有聚类算法都不需要数据矩阵,有没有办法使用没有数据的函数?
r cluster-analysis hierarchical-clustering cluster-computing
我为我的数据集生成了一个树状图,但我不满意如何对某些级别的拆分进行排序。因此,我正在寻找一种交换单个拆分的两个分支(或叶子)的方法。
如果我们看一下底部的代码和树状图,则有两个标签,11并且25与大集群的其余部分分开。我对此实在不满意,并希望带有11和25的分支成为拆分的右分支,而集群的其余部分成为左分支。所示的距离将仍然相同,因此数据不会改变,只是美观。
能做到吗?如何?我特别适合手动干预,因为最佳叶子排序算法在这种情况下可能无法正常工作。
import numpy as np
# random data set with two clusters
np.random.seed(65) # for repeatability of this tutorial
a = np.random.multivariate_normal([10, 0], [[3, 1], [1, 4]], size=[10,])
b = np.random.multivariate_normal([0, 20], [[3, 1], [1, 4]], size=[20,])
X = np.concatenate((a, b),)
# create linkage and plot dendrogram
from scipy.cluster.hierarchy import dendrogram, linkage
Z = linkage(X, 'ward')
plt.figure(figsize=(15, 5))
plt.title('Hierarchical Clustering Dendrogram')
plt.xlabel('sample index')
plt.ylabel('distance')
dendrogram(
Z,
leaf_rotation=90., # …Run Code Online (Sandbox Code Playgroud) python ×4
scipy ×4
matplotlib ×3
dendrogram ×2
r ×2
android ×1
correlation ×1
google-maps ×1
hclust ×1
java ×1
matlab ×1
numpy ×1
pandas ×1
quadtree ×1
quantization ×1
tree ×1