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