动态检测和存储图像的独特颜色

如果给定一张图像,找出该图像中的独特颜色,并为每种独特颜色生成对应的输出图像。在这些输出图像中,除了该独特颜色之外的所有其他像素应被标记为白色。

例如,如果一张图像包含3种颜色,输出文件夹中应有三张图像,每张图像分别展示一种颜色。使用Open CV和Python实现。

我已经使用我的方法创建了独特颜色的列表。我希望对sample.png图像中的所有独特颜色进行计数,并按照问题要求生成相应的输出图像。


回答:

我相信下面的代码(附带注释)将有助于你完成这个任务!

如果代码中有任何不清楚的地方,请随时跟进!

import numpy as npimport cv2 as cvimport matplotlib.pyplot as pltfrom copy import deepcopy# 加载图像并将其从BGR(OpenCV默认格式)转换为RGBfpath = "dog.png"  # TODO: 替换为你的路径IMG = cv.cvtColor(cv.imread(fpath), cv.COLOR_BGR2RGB)# 获取维度并重塑为(H * W, C)向量 - 即一个长向量,其中每个元素是一个对应颜色的元组!H, W, C = IMG.shapeIMG_FLATTENED = np.vstack([IMG[:, w, :] for w in range(W)])# 使用np.unique函数获取独特颜色及其计数colors, counts = np.unique(IMG_FLATTENED, axis=0, return_counts = True)# 联合遍历颜色和计数for color, count in zip(colors, counts):    print("COLOR: {}, COUNT: {}".format(color, count))    # 创建占位图像并将所有像素标记为白色    SINGLE_COLOR = (255 * np.ones(IMG.shape)).astype(np.uint8)  # 确保转换为uint8    # 计算颜色所在像素位置的二进制掩码,并在新图像中设置颜色    color_idx = np.all(IMG[..., :] == color, axis=-1)    SINGLE_COLOR[color_idx, :] = color    # 将文件写入输出,并指定颜色和计数    cv.imwrite("color={}_count={}.png".format(color, count), SINGLE_COLOR)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注