找回密码
 立即注册
搜索
热搜: 活动 交友
查看: 21|回复: 0

使用 OpenCV 进行图像处理+使用深度学习框架完成计算机视觉任务

[复制链接]
发表于 2025-4-14 21:18:24 | 显示全部楼层 |阅读模式
以下是使用OpenCV进行图像处理及使用深度学习框架(如TensorFlow或PyTorch)完成计算机视觉任务的学习笔记。

使用OpenCV进行图像处理OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,提供了丰富的功能用于图像和视频的处理。
1. 安装OpenCV可以通过pip安装OpenCV:
  1. pip install opencv-python
复制代码

2. 基本使用a. 导入OpenCV库
  1. import cv2
复制代码

b. 读取和显示图像
  1. # 读取图像
  2. image = cv2.imread('image.jpg')

  3. # 显示图像
  4. cv2.imshow('Image', image)
  5. cv2.waitKey(0)  # 等待按键
  6. cv2.destroyAllWindows()  # 关闭图像窗口
复制代码

c. 保存图像
  1. cv2.imwrite('output.jpg', image)
复制代码

3. 图像处理操作a. 图像转换(灰度、HSV)
  1. # 转换为灰度图像
  2. gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

  3. # 转换为HSV
  4. hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
复制代码

b. 图像缩放和调整大小
  1. # 缩放
  2. resized_image = cv2.resize(image, (100, 100))  # 新尺寸为100x100

  3. # 等比例缩放
  4. height, width = image.shape[:2]
  5. scale = 0.5
  6. resized_image = cv2.resize(image, (int(width * scale), int(height * scale)))
复制代码

c. 图像平滑(模糊)
  1. # 均值模糊
  2. blurred_image = cv2.GaussianBlur(image, (5, 5), 0)
复制代码

d. 边缘检测
  1. # 使用Canny边缘检测
  2. edges = cv2.Canny(image, 100, 200)
复制代码

e. 图像绘制# 在图像上绘制矩形
  1. cv2.rectangle(image, (50, 50), (150, 150), (0, 255, 0), 2)  # 矩形参数: (图像, 左上角, 右下角, 颜色, 线宽)
复制代码
# 在图像上绘制文本
  1. cv2.putText(image, 'OpenCV Tutorial', (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
复制代码

4. 视频处理a. 打开视频
  1. # 打开视频文件或摄像头
  2. cap = cv2.VideoCapture('video.mp4')

  3. while cap.isOpened():
  4.     ret, frame = cap.read()  # 读取每一帧
  5.     if not ret:
  6.         break

  7.     # 在每一帧上进行处理
  8.     gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

  9.     cv2.imshow('Frame', gray_frame)

  10.     if cv2.waitKey(1) & 0xFF == ord('q'):
  11.         break

  12. cap.release()
  13. cv2.destroyAllWindows()
复制代码


使用深度学习框架完成计算机视觉任务1. 使用TensorFlow/Kerasa. 安装TensorFlow可以通过pip安装TensorFlow:
  1. pip install tensorflow
复制代码

b. 构建CNN进行图像分类
  1. import tensorflow as tf
  2. from tensorflow.keras import layers, models

  3. # 构建CNN模型
  4. model = models.Sequential([
  5.     layers.Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)),
  6.     layers.MaxPooling2D((2, 2)),
  7.     layers.Conv2D(64, (3, 3), activation='relu'),
  8.     layers.MaxPooling2D((2, 2)),
  9.     layers.Conv2D(64, (3, 3), activation='relu'),
  10.     layers.Flatten(),
  11.     layers.Dense(64, activation='relu'),
  12.     layers.Dense(10, activation='softmax')  # 10类
  13. ])

  14. model.compile(optimizer='adam',
  15.               loss='sparse_categorical_crossentropy',
  16.               metrics=['accuracy'])
复制代码

c. 数据预处理与训练
  1. from tensorflow.keras.preprocessing.image import ImageDataGenerator
复制代码

# 数据增强
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|星星学习网

GMT+8, 2025-4-22 08:56 , Processed in 0.094615 second(s), 13 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表