我有几个不同大小的产品图片,我正在运行一个聚类算法在sci工具包学习组相似的图片在一起。图片大小不一,但一般都在500x500左右,我把它们缩小到250x250
def read_img(path, mode='L', size_one=(250, 250)):
return misc.imresize(misc.imread(path, mode=mode), size_one)
一旦我得到了向量,我就把它的白色边框去掉,然后把向量展平。你知道吗
问题是,一些视觉上非常相似的图像具有不同的质量(由于调整大小之前的大小)。它们不会被当作单独的星团。你知道吗
例如,这两个图像虽然非常相似,但质量稍有不同,不会聚集在一起。你知道吗
从预聚类的角度来看,我能做些什么来改进这一点?我刚刚开始与这个和任何反馈将是非常有帮助的。你知道吗
提前谢谢
编辑:这里是我如何修剪边界,一个更好的方法将是非常欢迎的。你知道吗
def trim_img_border(img):
shape = img.shape
temp_rows = []
for row in img:
if check_row(row):
temp_rows.append(row)
temp_rows_T = np.transpose(np.array(temp_rows))
out = []
for row in temp_rows_T:
if check_row(row):
out.append(row)
return round_img(misc.imresize(np.transpose(np.array(out)), shape))
def check_row(row):
srow = sorted(list(set(row)))
if srow == [255] or srow == [254, 255] or srow == [253, 254, 255]:
return False
return True
聚类的主要原因是发现不同的聚类,这是因为聚类是基于原始像素,而不是基于像素的特征。像素有很多变化,即使在视觉上,事情看起来很相似。所以我认为你有两种方法:
希望这样的事情能有所帮助-我很想听听进展如何。你知道吗
相关问题 更多 >
编程相关推荐