Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 使用python查找pcb中的矩形_Python 2.7_Opencv_Edge Detection_Opencv Contour - Fatal编程技术网

Python 2.7 使用python查找pcb中的矩形

Python 2.7 使用python查找pcb中的矩形,python-2.7,opencv,edge-detection,opencv-contour,Python 2.7,Opencv,Edge Detection,Opencv Contour,有没有办法用python在pcb板上找到矩形?我的目标是找到pcb组件。我试图平滑图片,然后应用cunny边缘和轮廓检测,但我设法找到的唯一正确轮廓是电路板周围的轮廓。有没有办法找到电路板的组件并在其周围画一个矩形?任何帮助都将不胜感激!谢谢大家! 更新 我使用的代码是关于根据颜色查找轮廓的 import numpy as np import cv2 from matplotlib import pyplot as plt im = cv2.imread('img14.jpg') #gray

有没有办法用python在pcb板上找到矩形?我的目标是找到pcb组件。我试图平滑图片,然后应用cunny边缘和轮廓检测,但我设法找到的唯一正确轮廓是电路板周围的轮廓。有没有办法找到电路板的组件并在其周围画一个矩形?任何帮助都将不胜感激!谢谢大家!

更新

我使用的代码是关于根据颜色查找轮廓的

import numpy as np
import cv2
from matplotlib import pyplot as plt

im = cv2.imread('img14.jpg')
#gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
#ret, thresh = cv2.threshold(gray, 80, 255, 0)
#blur = cv2.bilateralFilter(img,9,75,75)

kernel = np.ones((5,5),np.float32)/25
dst = cv2.filter2D(im,-1,kernel)
# find all the 'black' shapes in the image
lower = np.array([0, 0, 0])
upper = np.array([100, 100, 100])
shapeMask = cv2.inRange(dst, lower, upper)

(cnts, _) = cv2.findContours(shapeMask.copy(), cv2.RETR_EXTERNAL,
    cv2.CHAIN_APPROX_SIMPLE)
print "I found %d black shapes" % (len(cnts))

for c in cnts:
    cv2.drawContours(im, [c], -1, (0, 255, 0), 2)

cv2.imshow('shapemask', shapeMask)
cv2.imshow('contours', im)
cv2.waitKey(0) 


据报道,已经发现了322条等高线,这就是问题所在。我只需要8个最大的。有没有办法只取那些面积最大的?或者我必须先处理图像才能得到更好的结果

您应该提供一些示例图片和示例代码。@Quang希望这对您有所帮助!