如何在Python中的二值图像上使用kmeans聚类?

2024-04-22

我试图对两个不同的人采取二元面具,其他一切都是黑色的。现在我想使用将每个人分组到他们自己的集群中K-means这样我最终就可以在它们周围绘制边界框。这是我到目前为止的代码:

def kmeans(img):
  k_values = range(1, 5)
  pixels = np.float32(img.reshape(-1,1))
  criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
  flags = cv2.KMEANS_PP_CENTERS
  min_ssd = 0
  for k in k_values:
    ssd,labels,centers = cv2.kmeans(pixels,k,None,criteria,10,flags)
    if k == 1 or ssd < min_ssd: #looking for elbow in graph
      min_ssd = ssd
      min_labels = labels 
      min_centers = centers

  return min_labels,min_centers

就目前而言,此代码将中心作为像素值而不是坐标返回,因此我丢失了帧中的空间信息。我不太确定如何更改此代码以获得聚类中心作为图像中的点并能够可视化聚类。

Edit:我改变了方法,首先我从 OpenCV 开始simpleblobdetector()检测图像中每个斑点的质心。从这里我用这些值初始化质心。我计划在完成更改后更新代码

最终代码

def kmeans_helper(img, centroids):
  data = np.nonzero(img)
  data = tuple(zip(data[0],data[1]))
  data = np.asarray(data).reshape(-1,2)

  num_clusters = len(centroids)
  kmeans = KMeans(n_clusters = num_clusters, init = centroids, n_init = 1)
  kmeans.fit(data)
  centroids_array = np.uint8(kmeans.cluster_centers_)

  num_labels = np.unique(kmeans.labels_)
  clusters = [data[kmeans.labels_ == label] for label in num_labels]

  return clusters

我想我会为将来可能需要它的人更新我的最终代码。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中的二值图像上使用kmeans聚类? 的相关文章

  • Keras ZeroDivisionError:整数除法或以零为模

    我正在尝试使用 Keras 和 Tensorflow 实现卷积神经网络 我有以下代码 from keras models import Sequential from keras layers import Conv2D MaxPoolin
  • 区分大小写的实体识别

    我的关键字全部以小写形式存储 例如 折扣耐克鞋 我正在尝试对其执行实体提取 我遇到的问题是 spaCy 在 NER 方面似乎区分大小写 请注意 我不认为这是 spaCy 特有的 当我跑步时 doc nlp u i love nike sho
  • 如何检索分配给 Django 中的组的所有权限

    我正在执行一项任务来检索分配给 Django 中的组的一组权限 我可以使用以下代码获取创建的组 但无法使用它来获取分配给它们的权限 from django contrib auth models import Group Permissio
  • 如何调试 numpy 掩码

    这个问题与this one https stackoverflow com q 73672739 11004423 我有一个正在尝试矢量化的函数 这是原来的函数 def aspect good angle float planet1 goo
  • 如何在 numpy 数组中查找并保存重复的行?

    我有一个数组 例如 Array 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 1 1 1 2 2 2 我想要输出以下内容的东西 Repeated 1 1 1 2 2 2 保留重复行的数量也可以 例如 Repeated 1 1
  • 从字典中绘制直方图

    我创建了一个dictionary计算 a 中出现的次数list每个键的内容 我现在想绘制其内容的直方图 这是我想要绘制的字典的内容 1 27 34 1 3 72 4 62 5 33 6 36 7 20 8 12 9 9 10 6 11 5
  • Python sys.modules 包含尚未导入的模块

    我试图了解加载的模块与导入的模块之间的区别 如果有的话 我正在使用 Python 2 7 3 并且只是从命令行运行 Python 如果我执行 import sys sys modules 我得到一个列表 其中包括os 例如 文档说sys m
  • dask apply:AttributeError:“DataFrame”对象没有属性“name”

    我有一个参数数据框 并对每一行应用一个函数 该函数本质上是几个 sql queries 和对结果的简单计算 我正在尝试利用 Dask 的多处理 同时保持结构和界面 下面的例子有效并且确实有显着的提升 def get metrics row
  • 无法在我的程序中使用 matplotlib 函数

    我正在 Windows 10 中运行 Anaconda 安装 conda 版本 4 3 8 这是我尝试在 python 命令行中运行的代码 import matplotlib pyplot as plt x 1 2 3 4 y 5 6 7
  • 打印一份拥有多个家庭的人员名单,每个家庭都有多个电话号码

    我有一类 Person 它可以有多个 Home 每个 Home 都有一个或多个电话号码 我已经定义了类 但现在我正在尝试创建一个视图 其中列出每个人的所有家庭以及每个家庭地址的所有电话号码 类似于 john smith 123 fake s
  • Django Web 应用程序中的 SMTP 问题

    我被要求向使用 Django Python 框架实现的现有程序添加一个功能 此功能将允许用户单击一个按钮 该按钮将显示一个小对话框 表单以输入值 我确实编写了一些代码 显示电子邮件已发送的消息 但实际上 它没有发送 My code from
  • 一个类似 dict 的 Python 类

    我想编写一个自定义类 其行为类似于dict 所以 我继承自dict 不过 我的问题是 我是否需要创建一个私有的dict我的成员 init 方法 我不明白这个有什么意义 因为我已经有了dict如果我只是继承自的行为dict 谁能指出为什么大多
  • Python:“直接”调用方法是否实例化对象?

    我是 Python 新手 在对我的对象进行单元测试时 我注意到一些 奇怪 的东西 class Ape object def init self print ooook def say self s print s def main Ape
  • Jupyter笔记本突然变得很慢

    我以前在anaconda环境下运行jupyter运行得很好 显示警告后 IOPub data rate exceeded The notebook server will temporarily stop sending output to
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN
  • 使用 Sphinx 时,如何记录没有文档字符串的成员?

    我正在为我发布的包编写文档 我发现您的文档越全面 人们就越容易找到您的包来使用 废话 实际上 我在充满爱心地编写代码的所有功能和细节方面获得了很多乐趣 然而 我对如何为类级变量编写与 Sphinx 兼容的文档感到完全困惑 特别是 我有一些e
  • 在不同的 GPU 上同时训练多个 keras/tensorflow 模型

    我想在 Jupyter Notebook 中同时在多个 GPU 上训练多个模型 我正在使用 4GPU 的节点上工作 我想将一个 GPU 分配给一个模型并同时训练 4 个不同的模型 现在 我通过 例如 为一台笔记本选择 GPU import
  • 如何在supervisord中设置组?

    因此 我正在设置 Supervisord 并尝试控制多个进程 并且一切正常 现在我想设置一个组 以便我可以启动 停止不同的进程集 而不是全部或全无 这是我的配置文件的片段 group tapjoy programs tapjoy game1
  • 在 python 中使用高精度时间戳

    嘿 我正在使用 python 处理日期时间 我想知道解析这个时间戳的最佳方法是什么 时间戳是ISO标准 这里是一个例子 2010 06 19T08 17 14 078685237Z 现在到目前为止我已经使用过 time datetime d
  • 如何在 Qt 中以编程方式制作一条水平线

    我想弄清楚如何在 Qt 中制作一条水平线 这很容易在设计器中创建 但我想以编程方式创建一个 我已经做了一些谷歌搜索并查看了 ui 文件中的 xml 但无法弄清楚任何内容 ui 文件中的 xml 如下所示

随机推荐

  • Visual Studio - 过滤掉 nvcc 警告

    我正在编写 CUDA 程序 但收到令人讨厌的警告 Warning Cannot tell what pointer points to assuming global memory space 这是来自 nvcc 我无法禁用它 有没有办法过
  • CustomVision:操作返回无效状态代码:“NotFound”

    我正在使用 NuGet 包Microsoft Cognitive CustomVision Prediction版本1 2 0 我创建了 1 个试验项目并用一些图像对其进行了训练 现在 当我尝试使用 API 调用 API 进行预测时Pred
  • 使用node.js访问DOM

    我想访问 html 文件并使用 node js 通过 id 获取元素 这是我的 html 文件
  • 如何有效计算文档流中文档之间的相似度

    我收集文本文档 在 Node js 中 其中一个文档i表示为单词列表 考虑到新文档以文档流的形式出现 计算这些文档之间相似性的有效方法是什么 我目前对每个文档中单词的归一化频率使用余弦相似度 我不使用 TF IDF 词频 逆文档频率 因为我
  • 未提供所需的防伪令牌或该令牌无效 - 仅限 Safari

    我有一个具有典型 xss 保护的 asp net mvc 2 项目 在每个表格内和 ValidateAntiForgeryToken 在每个帖子操作上 这在 Chrome Firefox 和 IE 中按预期工作 但我在 Safari v 5
  • 检查一个点是否在 ConvexHull 中?

    我无法理解如何计算 n 维点是否在 n 维凸包内 这里提出了一个非常相似的问题 相同 查找点是否位于点云的凸包中的有效方法是什么 https stackoverflow com questions 16750618 whats an eff
  • Archiva 忽略 Security.properties

    似乎 archiva 2 2 完全忽略了安全属性 我正在关注这个文档 https archiva apache org docs 2 2 0 adminguide customising security html我已经在下面设置了 sec
  • 创建 Javascript Api 接口

    我目前正在研究 php 中查询 sql 数据库的解决方案 但是 我希望其他网站能够查询数据库 或php中的函数 我搜索谷歌 但由于跨域策略 我认为 我无法找到如何将这些函数公开给javascript 有人知道我该怎么做吗 Try soap
  • jQuery鼠标的.click()是通过键盘导航启动的

    我发现 jQuery 的奇怪行为click事件 如果我们使用键盘导航 辅助功能情况 则通过 Enter 或 Space 启动单击 这取决于我们使用的是哪个 HTML 元素 jsfiddle 上有一个测试页面 您可以尝试在结果框架中使用键盘导
  • iOS-将变量传递给视图控制器

    我有一个带有视图控制器的视图 当我在屏幕上显示此视图时 我希望能够从调用类向它传递变量 以便我可以设置标签等的值 首先 我只是尝试为其中一个标签创建一个属性 然后从调用类中调用它 例如 SetTeamsViewController vc S
  • 如何在 Edge 浏览器中使用 height:-webkit-fill-available?如何让 div 填充 Edge 中的可用空间?

    I am using bootstrap to preview the mobile device as follows 它在 Chrome 中运行得非常好 但不是边缘 我的 HTML CSS 代码如下 frame border radiu
  • HTML 验证器“自关闭语法”和“非空”错误

    我在使用 W3 Validator 验证代码时遇到问题 我是网页设计新手 有人能帮我吗 验证器声明 错误 在非 void HTML 元素上使用了自闭合语法 gt 忽略斜杠并将其视为开始标记 从第 15 行第 1 列开始 至第 15 行 第
  • Excel 日期到字符串的转换

    在 Excel 工作表的单元格中 我有一个日期值 例如 01 01 2010 14 30 00 我想将该日期转换为文本 并且还希望文本看起来与日期完全相同 所以日期值为01 01 2010 14 30 00应该看起来像01 01 2010
  • 将html中的特定内容替换为JS

    我有一个 html 文件和 JS 文件 所以我的 html 文件中有 svg 的语法
  • 身份验证时 Firebase .getUID NullPointerException

    我注册时会将数据添加到数据库中 但是我得到了 Java lang NullPointerException 尝试在空对象引用上调用虚拟方法 java lang String com google firebase auth Firebase
  • 如何在vaadin中播放视频?

    我使用了两个视频组件 Video video new Video 并嵌入 Embedded embed new Embedded my video new ExternalResource yyy xxx mp4 embed setMime
  • 连接每第 n 行

    我在矩阵中得到了一个数据集 如下所示 从 Excel 导入 matrix Cat1 1 2 3 4 Cat2 9 10 11 12 Cat3 17 18 19 20 Cat1 5 6 7 8 Cat2 13 14 15 16 Cat3 21
  • java项目中在哪里编写和存储mongoDB的map/reduce函数

    对于在 Java 项目中的何处以及如何编写和存储 javascript map reduce 函数以便与 MongoDB 数据库一起使用 有人有任何建议或知道任何最佳实践吗 我正在寻找的标准是 在编写和编辑函数时 我希望受益于 IDE 提供
  • 在Microsoft Surface平台上使用WPF扩展器控件

    我正在尝试在表面应用程序中使用 Expander 控件 我看到它不是表面控件 因此应用程序编译并显示控件 但触点不起作用 无论如何 我可以修改接触事件并使其在表面应用程序中工作吗 为此 您所要做的就是更改Expander的模板使用 Surf
  • 如何在Python中的二值图像上使用kmeans聚类?

    我试图对两个不同的人采取二元面具 其他一切都是黑色的 现在我想使用将每个人分组到他们自己的集群中K means这样我最终就可以在它们周围绘制边界框 这是我到目前为止的代码 def kmeans img k values range 1 5