python - 使用opencv和python提取魔方的颜色
问题描述
我正在尝试编写一个python程序来提取魔方的颜色,我被困在识别/屏蔽阶段(以便将魔方与背景分开)。
我要做的是:
- 精明的边缘检测
- 扩张
- 轮廓
- 计数近似
但我最终还是有太多的轮廓,背景物体等的原因,能够将魔方与背景分开
有什么想法可以解决这个问题吗?
链接到我当前的输出(图像):
解决方案
我能想到三种方法。
[1]
第一种方法是改变你拍摄魔方照片的方式。当您的图像有很多背景噪音时,很难使用轮廓检测。
拥有一个全白(或您喜欢的其他颜色)的魔方,轮廓检测会更好。
[2]
或者更好的是,您可以先移除背景中的颜色(就像绿屏一样,但要确保它不是魔方上显示的颜色),您最终只会得到一个魔方。
[3]
但是如果你真的需要像你所附的那样使用图像(你拿着魔方)。我可能会推荐使用小目标检测模型。您可以使用 haar 级联并准备一些数据集来制作检测模型并在此之后处理结果。
[额外的]
https://github.com/kkomen/qbr 我找到了一种可行的好方法。您可以忽略边缘检测或其他内容。但请专注于检测图像中的魔方颜色(可能必须使用魔方颜色进行校准)。一旦你知道了每种颜色的大致位置,你就可以做一些编码让它以后更整洁。
推荐阅读
- java - System.out.println("Serializable:" + arrayList instanceof Serializable) 没有打印 'Serializable' 字
- wordpress - 在 WooCommerce 订单中创建自定义元信息
- c++ - 关于从一种指针对象类型转换为另一种指针对象类型的类型后给出无效数据的迭代器列表
- python-3.x - 从文件夹中的所有图片创建图像直方图
- javascript - reactjs使用对象键生成html
- c++ - 交换运算符 + 重载导致无限递归
- xslt - 获取动态子字符串 xslt
- python-3.x - 为熊猫数据框中的单元格设置值
- mysql - Kubernetes entrypoint.sh 中的 Mariadb 10.4 在临时服务器上失败
- android - 如何尝试在获取数据中成功捕获 val?