博客
关于我
Python 和 OpenCV.如何检测图像中的所有(填充)圆形/圆形对象?
阅读量:797 次
发布时间:2023-03-07

本文共 1258 字,大约阅读时间需要 4 分钟。

如何使用Python和OpenCV检测图像中的填充圆形对象

作为一名开发者,你可能需要识别图像中的圆形对象。这可以通过霍夫圆变换算法在OpenCV中实现。以下是实现这一目标的详细步骤和代码示例。

首先,确保你已安装OpenCV库。你可以使用以下命令安装:

pip install opencv-python

接下来,我们逐步实现圆形检测。

1. 导入所需库

import cv2import numpy as np

2. 加载图像并转换为灰度图

# 加载图像image = cv2.imread('input_image.jpg')  # 替换为你的图片路径# 转换为灰度图gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

3. 使用Canny边缘检测算法提取边缘

# 使用Canny算法检测边缘edges = cv2.Canny(gray, 50, 150, apertureSize=3)

4. 应用霍夫圆变换算法

# 使用霍夫圆变换检测圆形circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, dp=1, minDist=20,                          param1=50, param2=30, minRadius=0, maxRadius=0)# 检查是否检测到圆形if circles is not None:    # 将结果转换为整数并四舍五入    circles = np.uint16(np.around(circles))

5. 在原图上绘制检测到的圆形

# 绘制圆形边界for i in circles[0, :]:    cv2.circle(image, (i[0], i[1]), i[2], (0, 255, 0), 2)  # 画出每个圆    # 绘制中心点标记    cv2.rectangle(image, (i[0] - 5, i[1] - 5), (i[0] + 5, i[1] + 5), (0, 128, 255), -1)

6. 显示结果

# 将图像转换为RGB格式并显示plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))plt.title('Detected circles')plt.axis('off')plt.show()

测试用例

如果你有一个包含多个填充圆形的图片,例如:

input_image.jpg

运行上述代码后,你会在原图上看到所有检测到的圆形。

人工智能大模型应用场景及示例

你可以将这一算法集成到人工智能服务中,用于辅助用户分析图片内容。例如,你可以开发一个电商平台的工具,帮助用户精确计算商品尺寸。

要实现这一功能,你需要深入理解OpenCV和机器学习技术。此外,你还可以考虑利用深度学习技术(如卷积神经网络)来进一步提高检测精度,但这会增加代码复杂性和训练时间。

转载地址:http://pjofk.baihongyu.com/

你可能感兴趣的文章
python os文件/目录
查看>>
Python Package 之 Faker(随机姓名、电话)
查看>>
python运算符优先级
查看>>
Python Panda TIME 系列重新采样
查看>>
python pandas TimeStamps到夏令时的本地时间字符串
查看>>
Python pandas 数据清洗与数据绘图实战
查看>>
Python输出信息
查看>>
Python Pandas 用顶行替换标题
查看>>
Python pandas 通过 dt 访问器有效地将日期时间转换为时间戳
查看>>
Python Pandas-从DataFrame按类别绘制多个条形图
查看>>
Python Pandas:每月或每周拆分 TimeSerie
查看>>
python pandas中融化的对面
查看>>
python pandas从时间序列中提取唯一日期
查看>>
Python pip配置国内源
查看>>
Python Pypi 修改 国内源(以豆瓣源为例)
查看>>
Python PyQt5 将不再显示此消息复选框添加到 QMessageBox
查看>>
Python PyQt5:如何使用 PyQt5 显示错误消息
查看>>
Python PYSFTP-以字符串/文本形式传递私钥,而不是传递文件路径
查看>>
Python pytest 面试题!
查看>>
Python pytz 时区函数返回一个相差 9 分钟的时区
查看>>