OpenCV实现图像识别
·
以下是一个使用Python和OpenCV实现基础图像识别的代码示例,功能包括读取图像、灰度转换、边缘检测和轮廓识别:
代码实现
import cv2
import numpy as np
# 读取图像
image = cv2.imread('input.jpg')
# 转换为灰度图
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 边缘检测(Canny算法)
edges = cv2.Canny(gray_image, threshold1=30, threshold2=100)
# 查找轮廓
contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
contour_image = cv2.drawContours(image.copy(), contours, -1, (0, 255, 0), 2)
# 显示结果
cv2.imshow('Original', image)
cv2.imshow('Edges', edges)
cv2.imshow('Contours', contour_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
功能说明
- 图像读取:使用
cv2.imread()加载本地图像文件 - 灰度转换:彩色图像转换为灰度图像便于后续处理
- 边缘检测:Canny算法检测图像中的边缘特征
- 轮廓识别:查找图像中的连续边缘形成闭合轮廓
- 结果可视化:显示原始图像、边缘检测结果和轮廓绘制效果
扩展建议
- 调整Canny算法的阈值参数可改变边缘检测灵敏度
- 添加
cv2.threshold()可实现二值化处理 - 使用
cv2.HoughLines()可检测直线特征 - 结合预训练模型可实现更高级的物体识别
注意事项
- 确保已安装OpenCV库(
pip install opencv-python) - 输入图像路径需正确
- 处理高分辨率图像时可能需要调整参数
更多推荐
所有评论(0)