大家好,这是我的第一个问题所以请保持温和 . 我有一个计算机视觉领域的项目,我是新的,我会很感激一些帮助 . 我有一个pcb的图像,我的(首先)任务是从背景中切断电路板并将其保存到新文件 .
如果结果只是没有灰色背景的普通pcb,那就没问题了 .
我到目前为止尝试的是,首先使用 threshold 将图像转换为二进制 . 然后我使用 cv2.findContours 搜索轮廓,找到它们后,我对轮廓进行了排序并绘制了最大的轮廓
经过一些研究,我发现了一种切割轮廓并将其保存为新图像的方法 . 我用 x,y,w,h = cv2.boundingRect 找到轮廓的宽度和高度, [y:y+h,x:x+w] 只保存轮廓 . 问题是,使用这种方法我也会因为某些原因而考虑一些背景,如pic3所示 .
有没有办法切断电路板,所以结果将是图像pic1中的黑色矩形或至少没有灰色背景的电路板?
UPDATE 我设法制作了面具并做了bitwise_and但结果却是黑色背景的黑板 . the result有人可以帮我删除黑色背景并仅留下图像中的纸板吗?谢谢!
1 回答
我做了一些工作,并按照以下方式裁剪区域 . 我想这就是你想要的 .
基本上,我在图像上做这些操作 .
1. medianBlur图像,阈值和变形操作 .
2. 项目到轴,阈值并获得界限 .
3. 裁剪该地区 .