OpenCV-Python实战(1)——OpenCV简介与图像处理基础

embedded/2025/3/22 21:19:48/

OpenCV介绍

  • Python安装OpenCV :对于 Linux 和 Windows 操作系统,首先需要在 shell 或 cmd 中运行以下命令安装 NumPy :pip install numpy 。然后再安装 OpenCV,可以选择仅安装主模块包 :pip install opencv-python ,或者安装完整包(包括主模块和附加模块):pip install opencv-contrib-python

  • OpenCV主要模块 :OpenCV 可以被划分为不同模块,其主要模块包括 core(核心模块,定义基本数据结构,包含库中所有其他模块使用的基本函数)、imgproc(图像处理模块,涵盖图像滤波、几何图像变换、颜色空间变换和直方图等)、imgcodecs(图像文件读写)、highgui(高级 GUI,提供 UI 功能接口,如创建和操作可显示的窗口、添加滑动条、处理键盘命令和鼠标事件等)、videoio(视频 I/O,视频捕获和视频编解码器的接口)、video(视频分析模块,包含背景减法、运动估计和目标跟踪算法等)、calib3d(摄像机标定和三维重建,涉及多视点几何算法、立体匹配算法、目标姿态估计、单摄像机和立体摄像机标定以及三维重建等)、features2d(二维特征框架,包括特征检测器、描述符和描述符匹配器)、objdetect(目标检测,用于检测预定义类的对象和实例,如人脸、眼睛、人和汽车等)、dnn(深度神经网络模块,包含创建新层的 API、常用层、从层构造和修改神经网络的 API、从不同深度学习框架加载序列化网络模型的功能等)、ml(机器学习库,是一组可用于分类、回归和聚类目的的类和方法)、flann(快速近似近邻库,是一组非常适合快速近邻搜索的算法,用于多维空间中的聚类和搜索)、photo(计算摄影,提供一些计算摄影的函数)、stitching(图像拼接,实现自动拼接全景图像的拼接流水线)、shape(形状距离和匹配模块,可用于形状匹配、检索或比较)、superres(超分辨率,包含可用于提高分辨率的类和方法)、videostab(视频稳定,包含用于视频稳定的类和方法)、viz(三维可视化工具,用于显示与场景交互的小部件)。

  • OpenCV应用场景 :OpenCV 可应用于二维和三维特征提取、街景图像拼接、人脸识别系统、手势识别、人机交互、动作识别、物体识别、自动检查和监视、分割与识别、医学图像分析、运动跟踪、增强现实、视频 / 图像搜索与检索、机器人与无人驾驶汽车导航与控制、驾驶员疲劳驾驶检测等诸多场景。

OpenCV图像处理基础

  • 图像基础

    • 图像处理中的主要问题 :图像可看作三维世界的二维视图,数字图像由像素表示。计算机视觉目标是将 2D 数据转换为新数据表示、决策目标、目标结果或信息提取。图像处理中常见问题有图像的模糊性(因透视影响导致视觉外观变化)、受自然因素(光照、天气、反射和运动等)影响、部分对象被遮挡(使被遮挡对象难以检测或分类)等。以人脸检测系统为例,需考虑光照、天气、头部运动、戴眼镜或太阳镜等对算法的影响,需使用大量测试图像验证算法,按测试图像困难程度分类以提高算法鲁棒性。

    • 图像处理流程 :完整的图像处理程序通常分为读取图像(从相机、视频流、磁盘、在线资源等获取)、图像处理(应用图像处理技术实现功能,如检测图像中的猫)和显示结果(以人类可读方式呈现处理结果,如绘制边界框或保存到磁盘)三个步骤。其中,图像处理又可进一步分为低层处理(预处理,输入输出均为图像,如噪声消除、图像锐化等)、中层处理(提取预处理后图像的主要特征,输出某种图像表示)和高层处理(接受中层处理得到的图像特征并输出最终结果,如检测到的人脸)。

  • 像素、颜色、通道、图像和颜色空间

    • 图像描述 :图像可描述为 2D 函数 f(x,y),其中 (x,y) 是空间坐标,f(x,y) 是图像在点 (x,y) 处的亮度或灰度或颜色值。当 f(x,y) 和 (x,y) 值都是有限离散量时,该图像为数字图像,此时 x∈0,h−1,h 为图像高度;y∈0,w−1,w 为图像宽度;f(x,y)∈0,L−1,对于 8 位灰度图像,L=256。彩色图像需定义三个函数分别表示红色、绿色和蓝色值,黑白图像仅需一个函数,f(x,y) 只能取两个值,通常 0 表示黑色、1 表示白色。

    • 图像文件类型 :OpenCV 支持多种文件格式及扩展名,如 Windows bitmaps(*.bmp 和 *.dib)、JPEG files(*.JPEG、*.jpg 和 *.jpe)、JPEG 2000 files


http://www.ppmy.cn/embedded/174794.html

相关文章

ElementUI el-radio失效

我们在使用过程中,偶尔会遇到ElementUI el-radio失效,无法切换选中效果的情况。这个时候该如何解决呢?下面一起来看看吧! 使用 el-radio 标签,点击图中的【二级指标】没有反应,还是默认选中【一级指标】 可…

【LangChain入门 3 Prompts组件】聊天提示词模板 ChatPromptTemplate

文章目录 一、 聊天信息提示词模板1.1 使用关键字1.2 使用SystemMessage, HumanMessage, AIMessage来定义消息1.3 使用MessagesPlaceholder 在特定未知添加消息列表 二、关键类介绍2.1 ChatPromptTemplate 类2.1.1 from_messages()2.1.2 format_messages()2.1.3 format_prompt(…

【亚马逊云科技】大模型选型实战(挑选和测评对比最适合业务的大模型)

文章目录 前言1、实验内容2、手册内容 一、环境准备二、Prompt 实战与模型配置2.1 基于 Amazon Bedrock 对比测试不同模型的逻辑推理效果2.2 基于 Amazon Bedrock 对比测试不同模型知识问答能力2.3 Prompt 实战结果分析 三、基于 Amazon Bedrock Evaluations 进行模型评测与自动…

Redis原理--持久化

Redis的数据都保存在内存,如果Redis宕机,数据将会全部丢失,因此必须有一种机制来保证Redis里的数据不会因为故障而丢失,这种机制就是Redis的持久化机制。 Redis持久化机制 1、快照 快照是一次全量备份,快照是内存数…

【Go】运算符笔记

基本数学运算 Go 语言支持常见的 算术运算符,用于执行数学计算。 运算符说明加法-减法*乘法/除法%取余自增--自减 整数运算只能得到整数部分 package mainimport ("fmt""math" )func main() {go_math() }func go_math() {x, y : 8, 5fmt.Pr…

虚拟机检测与反调试对抗技术

1. 虚拟机检测技术全解析 1.1 系统特征检测 常见检测点与绕过方案: 检测维度检测方法示例绕过技巧系统属性Build.PRODUCT.contains("sdk")Hook Build类属性返回值硬件信息检查/proc/cpuinfo虚拟化特征动态修改文件读取内容传感器数据加速度计/陀螺仪数…

MySQL以及MyBatis事务配置

在数据库管理中,事务是一个至关重要的概念。无论是金融交易、库存管理还是用户数据更新,事务都确保了数据的完整性和一致性。本文将详细介绍为什么需要事务、事务的核心概念、ACID特性、MySQL事务实践以及MyBatis事务配置的最佳实践。 一、事务的必要性…

网络故障排查指南:分治法与排除法结合的分层诊断手册

目录 一、排查方法论:分治法与排除法的结合 1. 分治法(Divide and Conquer) 2. 排除法(Elimination) 二、分层诊断实战手册 1. 物理层排查(设备与线路) 硬件检测三板斧 运维经验 2. 网络…