欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > OpenCV快速入门

OpenCV快速入门

2025/4/10 9:04:34 来源:https://blog.csdn.net/weixin_71288092/article/details/146990041  浏览:    关键词:OpenCV快速入门

1. 安装OpenCV

Python用户使用以下命令安装:

pip install opencv-python  # 基础模块
pip install opencv-contrib-python  # 包含额外模块(如SIFT)

2. 图像基础操作

读取/显示/保存图像
import cv2# 读取图像(第二个参数:cv2.IMREAD_COLOR / GRAYSCALE / UNCHANGED)
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)# 显示图像
cv2.imshow('Window Title', img)
cv2.waitKey(0)  # 等待按键(0表示无限等待)
cv2.destroyAllWindows()# 保存图像
cv2.imwrite('output.jpg', img)
转换为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
调整尺寸和裁剪
resized = cv2.resize(img, (new_width, new_height))
cropped = img[y1:y2, x1:x2]  # 高度范围在前,宽度在后

3. 视频处理

从摄像头捕获视频
cap = cv2.VideoCapture(0)  # 0表示默认摄像头while True:ret, frame = cap.read()if not ret:break# 在此处理帧(例如转换为灰度)gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)cv2.imshow('Camera', gray_frame)if cv2.waitKey(1) & 0xFF == ord('q'):  # 按q退出breakcap.release()
cv2.destroyAllWindows()
处理视频文件
cap = cv2.VideoCapture('video.mp4')
while cap.isOpened():ret, frame = cap.read()# ...(同上)

4. 物体检测(以人脸检测为例)

# 加载预训练的Haar级联分类器
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')# 检测人脸
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)# 绘制矩形框
for (x, y, w, h) in faces:cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)cv2.imshow('Faces', img)
cv2.waitKey(0)

5. 图像处理进阶

边缘检测(Canny)
edges = cv2.Canny(img, threshold1=100, threshold2=200)
轮廓检测
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0,255,0), 2)
图像变换(旋转/平移)
rows, cols = img.shape[:2]
M = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1)  # 旋转45度
rotated = cv2.warpAffine(img, M, (cols, rows))

6. 学习资源

  • 官方文档: https://docs.opencv.org

  • GitHub示例: OpenCV官方仓库的samples文件夹

  • 实用工具:

    • cv2.VideoWriter() 保存视频

    • cv2.filter2D() 图像滤波

    • cv2.HoughLinesP() 霍夫变换检测直线

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词