我如何以编程方式从 kmeans 数据中建立 cv2 掩码的上限和下限

Posted

技术标签:

【中文标题】我如何以编程方式从 kmeans 数据中建立 cv2 掩码的上限和下限【英文标题】:how can i programatically establish upper and lower bounds for cv2 mask from kmeans data 【发布时间】:2021-06-21 20:50:47 【问题描述】:

我正在努力将一张简单的图像分离成一组新的图像,其中每张图像仅包含原始图像中的一种颜色。为了弄清楚要分离出哪些 rgb 颜色,我使用了 k 方法。簇的质心给 ne 一组 rgb 颜色,转换为 cv2 bgr 颜色空间可以让我屏蔽掉这些颜色。但这需要颜色的上限和下限。关心。 我很困惑,因为我无法弄清楚如何从数据中建立上限和下限。 最后,我正在尝试像在 gimp 中一样“通过颜色选择”进行编程模仿,如果有更好的方法我想念请指教。

【问题讨论】:

【参考方案1】:
    upper_bound_list = []
    lower_bound_list = []
    dict = i: data[np.where(values[1].flatten() == i)] for i in range
            (0, k)

    for key, value in dict.items():
        n = (value[:, 0].max(), value[:, 1].max(), value[:, 2].max())
        upper_bound_list.append(n)
        n = (value[:, 0].min(), value[:, 1].min(), value[:, 2].min())
        lower_bound_list.append(n)

    for i in range(0, len(upper_bound_list)):

        lower = np.array(lower_bound_list[i], dtype="uint8")
        upper = np.array(upper_bound_list[i], dtype="uint8")
        mask = cv.inRange(img, lower, upper)
        output = cv.bitwise_and(img, img, mask=mask)

【讨论】:

以上是关于我如何以编程方式从 kmeans 数据中建立 cv2 掩码的上限和下限的主要内容,如果未能解决你的问题,请参考以下文章

从数据帧中激发 MLLib Kmeans,然后再返回

PySpark ML:获取 KMeans 集群统计信息

将 OpenCV cv::kmeans() 与一维输入一起使用

如何以编程方式从 Android 中删除 SQLite 数据库

如何以编程方式上传 torrent 文件

如何以编程方式从 plist 添加和检索数据