以下是一个使用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
  • 输入图像路径需正确
  • 处理高分辨率图像时可能需要调整参数

更多推荐