def __init__(self, image, colour_space='hsv', cluster_method='ward', scale=None, num_clusters=None, quantile=None):
self.image = image
self.colour_space = colour_space
self.cluster_method = cluster_method
self.params = Parameters()
# Scaling colour space
if scale is None:
self.params.scale = (1, 1, 1)
else:
# TODO validate 3 float tuple
self.params.scale = scale
# K-means param
if num_clusters is None:
self.params.num_clusters = 8
else:
# TODO validate
self.params.num_clusters = int(num_clusters)
# Mean-shift param
if quantile is None:
self.params.quantile = 0.1
else:
self.params.quantile = float(quantile)
# DBSCAN param
# if epsilon is None:
self.params.epsilon = 255*0.1
# Log
h, w = self.image.shape[:2]
msg = 'Clustering a {}x{} image: cluster_method={} colour_space={} num_clusters={} quantile={}'.format(
w, h, cluster_method, colour_space, num_clusters, quantile
)
print msg
评论列表
文章目录