opencv水果计数
时间: 2023-11-23 19:58:12 浏览: 224
以下是基于Pycharm编程平台与opencv开源库实现水果种类的简单识别与计数的步骤:
1. 导入必要的库和模块
```python
import cv2
import numpy as np
```
2. 读取图片并进行预处理
```python
img = cv2.imread('fruit.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
ret, thresh = cv2.threshold(blur, 60, 255, cv2.THRESH_BINARY)
```
3. 查找轮廓并绘制
```python
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0, 0, 255), 2)
```
4. 计算水果数量
```python
fruit_count = len(contours)
print("水果数量为:", fruit_count)
```
5. 显示结果
```python
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
相关问题
pycharm水果识别opencv
基于Pycharm编程平台与opencv开源库实现水果种类的简单识别与计数,可以按照以下步骤进行:
1.导入必要的库和模块,包括cv2、numpy等。
2.读取图片,可以使用cv2.imread()函数。
3.将图片转换到HSV颜色空间,可以使用cv2.cvtColor()函数。
4.进行中值滤波去除噪声,可以使用cv2.medianBlur()函数。
5.根据颜色范围创建掩膜,可以使用cv2.inRange()函数。
6.进行开运算,可以使用cv2.morphologyEx()函数。
7.使用cv2.findContours()函数查找轮廓。
8.遍历轮廓,使用cv2.contourArea()函数计算轮廓面积。
9.根据轮廓面积判断水果种类,并进行计数。
下面是一个简单的示例代码:
```python
import cv2
import numpy as np
# 读取图片
img = cv2.imread('fruit.jpg')
# 转换到HSV颜色空间
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 中值滤波去噪声
hsv = cv2.medianBlur(hsv, 5)
# 创建掩膜
mask = cv2.inRange(hsv, (11, 43, 46), (25, 255, 255))
# 进行开运算
line = cv2.getStructuringElement(cv2.MORPH_RECT, (15, 15), (-1, -1))
mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, line)
# 查找轮廓
contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 计数器
count = {'apple': 0, 'banana': 0, 'lemon': 0, 'kiwi': 0, 'grape': 0, 'orange': 0}
# 遍历轮廓
for c in contours:
# 计算轮廓面积
area = cv2.contourArea(c)
# 根据面积判断水果种类
if area < 100:
continue
elif area < 1000:
count['lemon'] += 1
elif area < 2000:
count['kiwi'] += 1
elif area < 3000:
count['grape'] += 1
elif area < 4000:
count['orange'] += 1
else:
count['apple'] += 1
# 输出计数结果
print(count)
```
阅读全文