大家好,这是我的第一个问题,请温柔一点。我在计算机视觉领域有一个项目,对此我还很陌生,希望能得到一些帮助。我有一张PCB的图像,首先要做的任务是将板子从背景中剪裁出来并保存到一个新文件中。
如果结果只是没有灰色背景的普通pcb,那就不会有问题。
到目前为止,我尝试的方法是首先使用“threshold”将图像转换为二进制。然后使用“cv2.findContours”搜索轮廓,并在找到它们后对轮廓进行排序并绘制最大轮廓。
经过一些研究,我找到了一种切割轮廓并将其保存到新图像的方法。我使用“x,y,w,h = cv2.boundingRect”来查找轮廓的宽度和高度,“[y:y + h,x:x + w]”仅保存轮廓。问题在于,使用这种方法,由于某种原因,我也带了一些背景,如您在图片3中所见。
有没有办法切掉板子,使结果成为图像pic1中的黑色矩形或至少没有灰色背景的板子?
更新 我成功制作了掩模并进行了按位_and操作,但结果是黑色背景的板子。the result有人能帮我去掉黑色背景,只留下图像中的板子吗? 谢谢!
到目前为止,我尝试的方法是首先使用“threshold”将图像转换为二进制。然后使用“cv2.findContours”搜索轮廓,并在找到它们后对轮廓进行排序并绘制最大轮廓。
经过一些研究,我找到了一种切割轮廓并将其保存到新图像的方法。我使用“x,y,w,h = cv2.boundingRect”来查找轮廓的宽度和高度,“[y:y + h,x:x + w]”仅保存轮廓。问题在于,使用这种方法,由于某种原因,我也带了一些背景,如您在图片3中所见。
有没有办法切掉板子,使结果成为图像pic1中的黑色矩形或至少没有灰色背景的板子?
更新 我成功制作了掩模并进行了按位_and操作,但结果是黑色背景的板子。the result有人能帮我去掉黑色背景,只留下图像中的板子吗? 谢谢!
copyTo
中提取源图像中仅需要的部分。另一种方法是使用bitwise_and
函数将掩模应用于不需要的部分并涂黑。 - Dan Mašek