OpenCV-Python基础教程

OpenCV (Open Source Computer Vision Library) 是一个非常强大的计算机视觉库,广泛应用于图像处理、视频分析等领域。本教程将介绍如何使用 OpenCV-Python 进行基本的图像处理操作,包括读取和显示图像、基本图像操作(如调整大小、旋转)以及简单的图像滤波技术。

安装 OpenCV-Python

首先确保你的环境中已经安装了 Python。然后在命令行中运行以下命令来安装 OpenCV-Python:

复制代码

Bash

深色版本

复制代码
1pip install opencv-python

如果你还需要使用一些额外的功能,比如图形界面显示,可以安装 opencv-python-headless 和 opencv-contrib-python:

复制代码

Bash

深色版本

复制代码
1pip install opencv-python-headless
2pip install opencv-contrib-python

创建一个新的 Python 脚本

  1. 在你的项目文件夹中创建一个新的 Python 文件,例如 image_processing.py。

  2. 编写代码来定义你的图像处理任务。下面是一个简单的示例:

复制代码

Python

深色版本

复制代码
1# image_processing.py
2
3import cv2
4import numpy as np
5
6def main():
7    # 读取图像
8    image_path = "path/to/your/image.jpg"
9    img = cv2.imread(image_path)
10
11    if img is None:
12        print("Image not found.")
13        return
14
15    # 显示原始图像
16    cv2.imshow("Original Image", img)
17    cv2.waitKey(0)
18    cv2.destroyAllWindows()
19
20    # 图像调整大小
21    resized_img = cv2.resize(img, (640, 480))
22    cv2.imshow("Resized Image", resized_img)
23    cv2.waitKey(0)
24    cv2.destroyAllWindows()
25
26    # 图像旋转
27    height, width = img.shape[:2]
28    center = (width // 2, height // 2)
29    rotation_matrix = cv2.getRotationMatrix2D(center, 45, 1.0)
30    rotated_img = cv2.warpAffine(img, rotation_matrix, (width, height))
31    cv2.imshow("Rotated Image", rotated_img)
32    cv2.waitKey(0)
33    cv2.destroyAllWindows()
34
35    # 灰度转换
36    gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
37    cv2.imshow("Gray Image", gray_img)
38    cv2.waitKey(0)
39    cv2.destroyAllWindows()
40
41    # 高斯模糊
42    blurred_img = cv2.GaussianBlur(img, (9, 9), 0)
43    cv2.imshow("Blurred Image", blurred_img)
44    cv2.waitKey(0)
45    cv2.destroyAllWindows()
46
47    # 边缘检测
48    edges = cv2.Canny(img, 100, 200)
49    cv2.imshow("Edges", edges)
50    cv2.waitKey(0)
51    cv2.destroyAllWindows()
52
53if __name__ == "__main__":
54    main()

运行脚本

确保你有一个图像文件放在指定的位置,并且文件路径正确无误。然后,在命令行中运行以下命令来执行脚本:

复制代码

Bash

深色版本

复制代码
1python image_processing.py

这将打开一系列窗口,每个窗口展示不同的图像处理结果。

代码解释

  1. 导入库 :我们使用 cv2 和 numpy。
  2. 读取图像 :使用 cv2.imread 函数读取图像文件。
  3. 显示图像 :使用 cv2.imshow 显示图像,使用 cv2.waitKey(0) 等待用户按键,使用 cv2.destroyAllWindows() 关闭所有打开的窗口。
  4. 图像调整大小 :使用 cv2.resize 函数调整图像大小。
  5. 图像旋转 :使用 cv2.getRotationMatrix2D 和 cv2.warpAffine 函数来旋转图像。
  6. 灰度转换 :使用 cv2.cvtColor 将彩色图像转换为灰度图像。
  7. 高斯模糊 :使用 cv2.GaussianBlur 对图像进行高斯模糊处理。
  8. 边缘检测 :使用 cv2.Canny 进行边缘检测。

这个简单的示例应该能让你对 OpenCV-Python 的基本功能有所了解。

相关推荐
xiaoyunxuexibiji2 分钟前
企业电子招投标如何实现全流程线上管理?从招标立项到评标定标
大数据·人工智能
西木莉16 分钟前
AI时代中小企业如何落地数据治理?
人工智能
汇像AI无人实验室17 分钟前
植物合成生物学迎来爆发期:如何用自动化重塑基因元件筛选?
大数据·人工智能·自动化
xwz小王子25 分钟前
Nature Machine Intelligence|微型机器人强化学习训练缩短至分钟级:每秒19万次交互
人工智能·机器人
某林21226 分钟前
局部路径规划器 DWB:速度采样与评分权重的取值分析
人工智能·算法·架构·机器人·技术复盘
AI职业加油站28 分钟前
模数共振行动解读|大模型应用工程师证书,匹配行业 RAG/Agent 落地人才需求
人工智能·学习·算法·职场和发展·职场发展
NeoGressAI外贸数字化29 分钟前
Python分析独立站访问日志,3类页面别再投广告
人工智能
m0_3804741635 分钟前
AI 正在离开屏幕:从 AI 眼镜到原生智能体手机,终端入口之争打响
人工智能·智能手机
灵动的艺术1 小时前
如一 Agent 架构解读(十二):记忆系统(下)——记忆的生命周期工程
人工智能·agent·如一
保卫大狮兄1 小时前
简道云 CRM 管理系统:如何做老客户分层经营?新客与老客的策略如何区分?
人工智能·crm·销售