
实战OpenCV系列
文章平均质量分 92
本专栏以实战+讲解的方式,带你逐步理解OpenCV中的图像处理接口及算法,包括:图像显示、像素操作、图像阈值、几何变换、直方图、图像滤波、边缘检测、视频处理、轮廓检测、人脸识别、文字识别、目标检测、物体跟踪等。
优惠券已抵扣
余额抵扣
还需支付
¥59.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
希望_睿智
中国科学技术大学毕业,专注于音视频领域近二十年,全网访问量近500万,粉丝近10万。在嵌入式开发、运营级平台、音视频编解码、视频图像处理、流媒体、深度学习、人工智能等多个方向具备实战开发经验和技术积累,共发表发明专利十余项,软件著作权几十项。商务合作和推广,可私信联系。
展开
-
《实战OpenCV系列》专栏介绍
本专栏由浅入深,详细介绍了使用OpenCV进行图像/视频处理的各方面知识,包括:图像显示、图像的数学运算、图像的裁剪与拼接、图像的像素操作、几何变换、直方图、图像滤波、色彩空间转换、边缘检测、形态学操作、模板匹配、视频处理、图像金字塔、机器学习、深度学习、目标检测、文字识别、人脸识别、物体跟踪等。每篇文章以贴近实战的方式对知识点进行了讲解和梳理,帮你快速掌握OpenCV,成为图像/视频处理领域的专家。原创 2024-11-30 21:39:57 · 2018 阅读 · 30 评论 -
实战OpenCV之环境安装与配置
OpenCV,英文全称为Open Source Computer Vision Library,是一个开源的计算机视觉和机器学习软件库。它设计用于提供一系列功能强大的算法,以帮助开发者处理图像和视频数据,实现各种视觉任务,包括:图像处理、视频分析、物体识别、人脸识别、动作识别、机器学习等。原创 2024-08-06 06:00:00 · 1771 阅读 · 13 评论 -
实战OpenCV之图像显示
OpenCV提供的功能非常多,图像显示是最基础也是最直观的一部分。它让我们能够直观地看到算法处理后的效果,对于调试和验证都至关重要。在OpenCV中,图像显示主要依赖于以下四个关键的数据结构和函数。原创 2024-08-15 05:30:00 · 3773 阅读 · 36 评论 -
实战OpenCV之图像的属性
图像的属性指的是描述图像基本信息的数据,包括但不限于:图像的尺寸、颜色通道数、像素数据类型等。这些属性对于图像处理非常重要,因为它们直接关系到如何正确地读取、处理和存储图像。原创 2024-08-19 05:30:00 · 1277 阅读 · 15 评论 -
实战OpenCV之绘制图形
OpenCV除了用于图像显示之外,还提供了一系列接口和工具,以帮助开发者在图像上绘制各种图形。这里的图形包括:直线、矩形、圆形、椭圆、多边形等。另外,OpenCV还支持在图像上添加文字,对多张图像进行叠加操作。原创 2024-08-24 08:33:24 · 4277 阅读 · 44 评论 -
实战OpenCV之图像的数学运算
在OpenCV中,图像的数学运算是一种基本而强大的工具,可以用于多种图像处理任务,包括:图像增强、图像融合、特征提取等。这些运算包括加法、减法、乘法和除法等基本的数学操作。原创 2024-08-28 06:30:00 · 1369 阅读 · 29 评论 -
实战OpenCV之图像的裁剪与拼接
在OpenCV中,图像的裁剪与拼接是非常基础但又非常实用的操作,在许多计算机视觉和图像处理任务中扮演着关键角色。图像裁剪可以让我们聚焦于图像中的某个特定部分,这对于分析局部特征非常重要。通过裁剪掉无关紧要的部分,可以减少后续处理的数据量,从而提高处理速度和效率。另外,裁剪可以用于创建固定大小的输入,这对于训练深度学习模型尤其重要。原创 2024-09-04 06:30:00 · 1688 阅读 · 29 评论 -
实战OpenCV之像素操作
在OpenCV中,像素是最基本的操作单位。图像可以视为一个三维数组,其中第三维表示颜色通道。图像数据在内存中以连续或几乎连续的方式存储,对于多通道图像(比如:BGR图像),每个像素的各通道值紧密排列。OpenCV主要使用BGR色彩空间,与常用的RGB顺序不同。因此,在进行像素操作时,需要特别注意色彩通道的顺序。OpenCV中最常见的图像格式是CV_8UC3,表示一个8位无符号整型的三通道图像。原创 2024-09-12 06:30:00 · 2018 阅读 · 39 评论 -
实战OpenCV之图像阈值处理
图像阈值处理是一种二值化技术,它基于预设的阈值,可以将图像中的像素分为两大类:一大类是背景,另一大类是前景或目标对象。这个过程涉及将图像中的每个像素值与阈值进行比较,并根据比较结果决定保留原始值还是替换为新值,新值通常是二值化后的0或255。原创 2024-09-20 06:30:00 · 1159 阅读 · 24 评论 -
实战OpenCV之几何变换
在图像处理与计算机视觉领域,几何变换是不可或缺的一部分。OpenCV提供了一系列强大的几何变换功能,使得我们能够轻松地对图像进行缩放、旋转、平移等操作。这些变换不仅在图像预处理、特征提取、图像校正等计算机视觉任务中至关重要,也是图像编辑、增强现实等应用领域的基础工具。几何变换主要涉及图像像素位置的重新映射,这通常通过矩阵运算来实现。在OpenCV中,矩阵运算主要包括三种,分别为:线性变换、仿射变换和透视变换。原创 2024-09-21 10:45:36 · 926 阅读 · 11 评论 -
实战OpenCV之直方图
直方图是对数据分布情况的图形表示,特别适用于图像处理领域。在图像处理中,直方图通常用于表示图像中像素值的分布情况。直方图由一系列矩形条(也被称为bin)组成,每个矩形条的高度表示某个像素值(或像素值范围)在图像中出现的频次。直方图的横轴(X轴)表示像素值的范围,通常对于8位灰度图像,其范围为0-255。直方图的纵轴(Y轴)表示在图像中每个像素值(或像素值范围)出现的频次。原创 2024-09-23 06:30:00 · 1035 阅读 · 24 评论 -
实战OpenCV之图像滤波
图像滤波是数字图像处理中一种非常重要的技术,主要用于图像噪声去除、图像平滑、突出图像特征,或者进行图像风格的转换。它通过数学运算对图像中的像素值进行修改,以达到特定的处理目的。图像滤波可以分为两大类,分别为:线性滤波、非线性滤波。原创 2024-09-25 06:30:00 · 893 阅读 · 26 评论 -
实战OpenCV之色彩空间转换
色彩空间是描述颜色的一种数学模型,它定义了颜色的三个或更多维度,比如:亮度、色相和饱和度等。最著名的色彩空间之一是RGB,它基于人眼对光的感知原理,通过红、绿、蓝三种基本颜色的不同强度组合来表示几乎所有的可见颜色。然而,RGB并不是唯一的色彩空间,还有许多其他色彩空间,比如:HSV(色调、饱和度、明度)、YCrCb(亮度、红色差分、蓝色差分)等,每种色彩空间都有其特定的应用场景和优势。原创 2024-09-27 06:30:00 · 1712 阅读 · 32 评论 -
实战OpenCV之边缘检测
边缘检测是计算机视觉和图像处理中的一个重要环节,可以帮助我们识别图像中的对象边界或区域,这对于后续的特征提取、图像分割等任务至关重要。边缘检测的目的是:标识数字图像中亮度变化明显的点。这些变化通常反映的是图像中的重要事件,比如:深度的不连续、表面方向的不连续、材质属性的变化、或场景照明的变化。边缘检测可以显著减少数据量,并且剔除不相关的信息,保留图像的重要结构属性。原创 2024-09-30 07:07:13 · 1406 阅读 · 30 评论 -
实战OpenCV之形态学操作
形态学操作是一种基于图像形状的处理方法,主要用于结构分析,比如:边缘检测、轮廓提取、噪声去除等。这些操作通常使用一个称为“结构元素”(Structuring Element)的核来进行,结构元素可以是任何形状,但最常见的有矩形和圆形。形态学操作的核心在于通过结构元素与图像进行交互,以改变图像的结构特性。原创 2024-10-01 08:10:48 · 1468 阅读 · 34 评论 -
实战OpenCV之轮廓检测
轮廓检测,是指在图像中找到物体边缘的过程。这些边缘通常代表物体的外部边界或者内部结构的重要特征。通过检测这些轮廓,我们可以获取关于物体形状、大小和位置等有价值的信息。在OpenCV中,我们可以通过cv::findContours()函数来完成该项工作,其接口原型如下。原创 2024-10-02 06:30:00 · 1589 阅读 · 21 评论 -
实战OpenCV之模板匹配
模板匹配是计算机视觉中一种常用的图像处理技术,用于在较大的目标图像中寻找与给定模板图像相似的子区域。这项技术的基本思想是在主图像中寻找与模板图像最相似的子区域,广泛应用于目标检测、图像识别等领域。模板匹配的主要流程包括如下三点。原创 2024-10-07 09:16:09 · 1909 阅读 · 22 评论 -
实战OpenCV之视频处理
视频是由一系列连续的图像帧组成的,这些帧按照一定的速率连续播放,从而形成动态画面。与视频相关的主要参数有:分辨率、帧率、码率、编解码器、帧类型、文件格式等,下面分别进行介绍。1、帧率。表示每秒显示的图像帧数,该参数决定视频流畅度,更高的帧率意味着更平滑的动作。常见的帧率有:24fps(电影)、30fps(电视标准)、60fps(流畅的游戏体验)等。2、分辨率。表示视频每一帧图像的宽度和高度,通常以像素为单位,该参数决定视频的清晰度和细节程度。常见的分辨率有:720p(1280 x 720)原创 2024-10-10 07:06:12 · 2020 阅读 · 33 评论 -
实战OpenCV之图像金字塔
图像金字塔,英文全称为Image Pyramid,是计算机视觉和图像处理中常用的一种结构,广泛应用于特征检测、图像缩放、目标识别等领域。它用于生成一组不同分辨率的图像,这些图像按一定比例缩小或放大。OpenCV提供了多种图像金字塔的实现,包括:高斯金字塔、拉普拉斯金字塔。原创 2024-10-13 21:58:15 · 1877 阅读 · 35 评论 -
实战OpenCV之兴趣点检测
兴趣点检测,也叫特征点检测,英文全称为Interest Point Detection,是在图像中定位具有独特性质的小区域的过程。这些区域通常包含丰富的结构信息,即使在图像发生旋转、缩放或光照变化时也能够被可靠地识别出来。这些独特的点被称为兴趣点,它们是计算机视觉和模式识别任务中的重要组成部分。兴趣点检测具有鲁棒性,即兴趣点在不同条件下(比如:视角变化、光照变化等)仍然可以被检测到。兴趣点检测技术可以应用于很多领域,包括:机器人导航、增强现实、医学影像分析等。原创 2024-10-17 06:34:19 · 2416 阅读 · 41 评论 -
实战OpenCV之机器学习
SVM的核心思想是:找到一个最优的超平面,使得不同类别的样本尽可能远离该超平面,从而实现最佳的分类效果。4、predict函数用于对新的输入数据进行预测,此方法根据已经训练好的SVM模型来预测输入样本的类别(对于分类问题)或数值(对于回归问题)。:算法会接收带有正确答案的输入数据(称为训练集),并尝试学习映射函数,使得对于新的输入数据也能给出正确的输出。如果输入的是多维数组,则每个行被视为一个单独的样本。:介于监督学习和无监督学习之间的一种学习方式,使用部分标记的数据和大量未标记的数据来进行训练。原创 2024-10-21 06:30:00 · 1584 阅读 · 42 评论 -
实战OpenCV之深度学习
深度学习是机器学习的一个子领域,它受到了人脑神经元结构的启发,利用多层神经网络来模拟和解决复杂的学习任务。深度学习利用多层神经网络从大量数据中自动学习特征表示,这种自动化的特征学习能力使得深度学习在许多领域超越了传统的机器学习算法。在过去的十年里,深度学习取得了显著的进展,特别是在图像识别、自然语言处理、语音识别等领域取得了突破性成果。原创 2024-10-28 08:54:11 · 1711 阅读 · 36 评论 -
实战OpenCV之目标检测
目标检测是计算机视觉中的一个重要任务,它旨在识别图像或视频帧中的多个对象,并对每个对象进行定位和分类。目标检测任务通常包括以下几个主要步骤。输入图像:接收一张或多张图像作为输入。特征提取:从输入图像中提取有用的特征。候选区域生成:生成一组可能包含目标的候选区域。分类和定位:对每个候选区域进行分类,并精确定位目标的位置。输出结果:输出检测到的目标及其位置和类别。原创 2024-11-04 06:30:00 · 3292 阅读 · 40 评论 -
实战OpenCV之文字识别
OpenCV本身并没有内置的文字识别功能,但它可以与其他OCR工具(比如:Tesseract OCR)集成,或将提取的特征用于训练深度学习模型(比如:CRNN)以进行识别。在OpenCV中使用CRNN进行文字识别,与前面介绍的目标检测基本差不多,都是使用cv::dnn来进行推理,故下面着重介绍Tesseract OCR。原创 2024-11-15 13:20:48 · 3872 阅读 · 37 评论 -
实战OpenCV之人脸识别
随着计算机视觉技术和深度学习的发展,人脸识别已经成为一项广泛应用的技术,涵盖了从安全监控、身份验证、智能家居到大型公共安全项目等多个领域。人脸识别技术通常包括以下几个主要步骤。图像采集:通过摄像头或其他图像采集设备,捕获包含人脸的图像或视频帧。人脸检测:从图像中定位人脸的位置,确定人脸的边界框。常用的方法包括:基于特征的传统方法(比如:Haar特征)、基于深度学习的方法(比如:YOLO、SSD等)。特征提取:从检测到的人脸区域中提取有用的特征向量。原创 2024-11-18 06:30:00 · 9887 阅读 · 48 评论 -
实战OpenCV之物体跟踪
与传统的跟踪方法相比,基于Transformer的跟踪器可以在复杂的场景下保持较高的跟踪精度,并且对遮挡、光照变化和尺度变化等情况具有更好的鲁棒性。特别是近年来,随着深度学习技术的发展,基于深度学习的物体跟踪方法已经取得了显著的进步,并在许多实际应用中取得了非常好的效果。参数image为输入的图像,参数boundingBox为目标物体的位置和大小,跟踪后会被更新。下面的实战代码实现了一个基于TrackerVit的物体跟踪应用,可以选择从视频文件或摄像头实时捕获视频流,并对选定的目标进行跟踪。原创 2024-11-27 06:30:00 · 3280 阅读 · 41 评论