利用pythonopencv 进行圆孔数量检测
时间: 2023-07-26 22:37:48 浏览: 37
要利用Python OpenCV进行圆孔数量检测,可以按照以下步骤进行:
1. 导入必要的库和模块:
```python
import cv2
import numpy as np
```
2. 读取并预处理图像:
```python
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
```
3. 边缘检测:
```python
edges = cv2.Canny(blur, 100, 200)
```
4. 轮廓检测:
```python
contours, hierarchy = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
```
5. 筛选出符合条件的轮廓:
```python
circles = []
for contour in contours:
area = cv2.contourArea(contour)
if area > 1000 and area < 5000:
perimeter = cv2.arcLength(contour, True)
approx = cv2.approxPolyDP(contour, 0.03 * perimeter, True)
if len(approx) > 7:
(x, y), radius = cv2.minEnclosingCircle(contour)
circles.append((int(x), int(y), int(radius)))
```
6. 绘制检测结果:
```python
for circle in circles:
cv2.circle(img, (circle[0], circle[1]), circle[2], (0, 255, 0), 2)
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上述代码中,我们首先读取了一张图片,然后将其转换为灰度图并进行高斯模糊处理,接着使用Canny算子进行边缘检测,然后使用findContours函数找到所有的轮廓。接下来,我们筛选出符合条件的轮廓,即面积在一定范围内,拥有至少7个顶点的轮廓(这是因为圆孔的轮廓通常有很多个顶点)。最后,我们在原图上绘制出圆孔的位置。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)