首页 > 解决方案 > 使用opencv和python提取魔方的颜色

问题描述

我正在尝试编写一个python程序来提取魔方的颜色,我被困在识别/屏蔽阶段(以便将魔方与背景分开)。

我要做的是:

但我最终还是有太多的轮廓,背景物体等的原因,能够将魔方与背景分开

有什么想法可以解决这个问题吗?

链接到我当前的输出(图像):

我当前的输出

标签: pythonopencv

解决方案


我能想到三种方法。

[1]

第一种方法是改变你拍摄魔方照片的方式。当您的图像有很多背景噪音时,很难使用轮廓检测​​。

拥有一个全白(或您喜欢的其他颜色)的魔方,轮廓检测会更好。

[2]

或者更好的是,您可以先移除背景中的颜色(就像绿屏一样,但要确保它不是魔方上显示的颜色),您最终只会得到一个魔方。

[3]

但是如果你真的需要像你所附的那样使用图像(你拿着魔方)。我可能会推荐使用小目标检测模型。您可以使用 haar 级联并准备一些数据集来制作检测模型并在此之后处理结果。

[额外的]

https://github.com/kkomen/qbr 我找到了一种可行的好方法。您可以忽略边缘检测或其他内容。但请专注于检测图像中的魔方颜色(可能必须使用魔方颜色进行校准)。一旦你知道了每种颜色的大致位置,你就可以做一些编码让它以后更整洁。


推荐阅读