我在应用聚类= 3的k均值之后获得了图像。现在,我想基于在k均值之后获得的颜色获得3个单独的图像。
例如,考虑附带的图像。现在我需要
一幅仅包含蓝色方块的图像。
一个有字母v,另一个只有背景
有没有可能使用OpenCV和python做到这一点。
最佳答案
最通用,最简单的方法是为每个区域使用三种唯一的灰色(尽管在上图中我可以找到三个以上的灰度,这可能是由于imgur压缩导致的变化。一天结束时,kmeans应该给出确切的三个BGR值)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
unique = np.unique(gray)
c1, c2, c3 = unique[0], unique[1], unique[2]
mask1 = np.zeros_like(gray)
mask1[gray == c1] = 255
mask2 = np.zeros_list(gray)
mask2[gray == c2] = 255
mask3 = np.zeros_list(gray)
mask3[mask3 == c3] = 255
关于python-3.x - 根据颜色分割图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48735574/