OpenCV-Python基础教程

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

安装 OpenCV-Python

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

复制代码

Bash

深色版本

复制代码
1pip install opencv-python

如果你还需要使用一些额外的功能,比如图形界面显示,可以安装 opencv-python-headlessopencv-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. 导入库 :我们使用 cv2numpy
  2. 读取图像 :使用 cv2.imread 函数读取图像文件。
  3. 显示图像 :使用 cv2.imshow 显示图像,使用 cv2.waitKey(0) 等待用户按键,使用 cv2.destroyAllWindows() 关闭所有打开的窗口。
  4. 图像调整大小 :使用 cv2.resize 函数调整图像大小。
  5. 图像旋转 :使用 cv2.getRotationMatrix2Dcv2.warpAffine 函数来旋转图像。
  6. 灰度转换 :使用 cv2.cvtColor 将彩色图像转换为灰度图像。
  7. 高斯模糊 :使用 cv2.GaussianBlur 对图像进行高斯模糊处理。
  8. 边缘检测 :使用 cv2.Canny 进行边缘检测。

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

相关推荐
qq_4162764237 分钟前
LOFAR物理频谱特征提取及实现
人工智能
余俊晖1 小时前
如何构造一个文档解析的多模态大模型?MinerU2.5架构、数据、训练方法
人工智能·文档解析
Akamai中国3 小时前
Linebreak赋能实时化企业转型:专业系统集成商携手Akamai以实时智能革新企业运营
人工智能·云计算·云服务
LiJieNiub3 小时前
读懂目标检测:从基础概念到主流算法
人工智能·计算机视觉·目标跟踪
weixin_519535774 小时前
从ChatGPT到新质生产力:一份数据驱动的AI研究方向指南
人工智能·深度学习·机器学习·ai·chatgpt·数据分析·aigc
爱喝白开水a4 小时前
LangChain 基础系列之 Prompt 工程详解:从设计原理到实战模板_langchain prompt
开发语言·数据库·人工智能·python·langchain·prompt·知识图谱
takashi_void4 小时前
如何在本地部署大语言模型(Windows,Mac,Linux)三系统教程
linux·人工智能·windows·macos·语言模型·nlp
OpenCSG4 小时前
【活动预告】2025斗拱开发者大会,共探支付与AI未来
人工智能·ai·开源·大模型·支付安全
生命是有光的4 小时前
【深度学习】神经网络基础
人工智能·深度学习·神经网络
数字供应链安全产品选型4 小时前
国家级!悬镜安全入选两项“网络安全国家标准应用实践案例”
人工智能·安全·web安全