python-3.x - 根据颜色分割图像

标签 python-3.x opencv image-processing opencv3.0

enter image description here

enter image description here

我在应用聚类 = 3 的 k 均值后获得了一张图像。现在我想根据 k 均值后获得的颜色获得 3 个单独的图像。 例如,考虑附图。现在我需要 一张图像,使其仅包含蓝色方 block 。 一张有字母 v,一张只有背景 有没有可能使用 OpenCV 和 python 来做到这一点。

最佳答案

最通用和最简单的方法是为每个区域使用三种独特的灰色。 (虽然我可以在上面的图像中找到三个以上的灰度级,可能是由于 imgur 压缩导致的变化。不过,最终,k-means 应该给出恰好三个 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_like(gray)
mask2[gray == c2] = 255

mask3 = np.zeros_like(gray)
mask3[mask3 == c3] = 255

关于python-3.x - 根据颜色分割图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48735574/

相关文章:

java - 在java中将base64字符串转换为服务器端的图像

python - 是否可以更改 if 语句中的 for 循环 header ?

python - Discord.py 不允许通过 `` ` 的代码块

image-processing - 功能目录。用于 SVM 的图像特征提取

python - 没有名为 'cv2.cv2' 的模块

c++ - OpenCV 和 Ruby on Rails

matlab - 如何使用matlab做圆形裁剪?

python - FastAPI 删除调用的 API 响应

python - h2o python 的 one_hot_explicit 参数引发错误

c++ - OpenCV 快速垫元素​​和邻居访问