我正在开发我的 python 项目,我需要计算每个乐高积木组件中有多少个孔。我将从输入 .json 文件中获取有关需要计算哪个程序集的信息,如下所示:
"img_001": [
{
"red": "0",
"blue": "2",
"white": "1",
"grey": "1",
"yellow": "1"
},
{
"red": "0",
"blue": "1",
"white": "0",
"grey": "1",
"yellow": "0"
Run Code Online (Sandbox Code Playgroud)
因此,我需要识别必须按颜色计数的组件。然后我必须在特定的砖块组装中确定孔的数量。
这是我使用的图像示例:
我开始将图像更改为 HSV 颜色空间,并使用轨迹栏为每种颜色找到了一个蒙版。通过使用,cv2.inRange我得到了一个掩模,例如红色:
如您所见,反射光没有帮助。此时我不知道我该如何前进。我觉得我应该用来cv2.findContour获取每个组件的轮廓。我认为直方图均衡在这里可能有用。为了检测圆圈我想使用cv2.HoughCircles或者也许cv2.SimpleBloopDetector。但我不知道如何检查每个区域有多少块砖。输出只是特定装配中的一些孔。你能给我一些想法吗?哪个 OpenCv 函数可能适用于此?您将如何解决这种图像处理问题?感谢您的回答。