- 博客(28)
- 资源 (4)
- 收藏
- 关注
原创 26.OpenCV形态学操作
形态学操作(Morphological Operations)源自二值图像处理,主要用于分析和处理图像中的结构元素,对图像进行去噪、提取边缘、分割等预处理步骤。形态学操作的核心是“结构元素”:一个二值矩阵,用来扫描图像并决定像素的处理方式。掌握这些形态学操作后配合掩膜,你可以在图像预处理、特征提取、目标分割等任务中如虎添翼。下面将逐一介绍这些操作的原理、用途,以及在 C++ 中的使用方法。开操作对比腐蚀,去除白点后保证中间黑点和字母A大小不变。如上图膨胀会把数字A中的小黑点去除。:突出获取图像边缘。
2025-04-23 17:16:29
1140
原创 25.OpenCV中的霍夫圆变换
在图像处理与计算机视觉中,圆形检测是一项常见的任务,应用场景包括车牌识别、瞳孔检测、交通标志识别等。霍夫圆变换(Hough Circle Transform)是一种高效且鲁棒的算法,通过在参数空间中寻找局部极大值,能够在存在噪声和部分遮挡的情况下检测出图像中的圆形。本文将从基本理论、参数空间构造、算法实现步骤、以及 OpenCV C++ 中的代码示例几方面详细介绍霍夫圆变换也算为[上一篇:霍夫直线检测](https://blog.csdn.net/qp135790/article/details/147
2025-04-14 17:07:45
1017
原创 24.OpenCV中的霍夫直线检测
霍夫直线检测是一种基于参数变换的全局特征提取方法,它能在边缘图像中有效检测出直线,具有鲁棒性强和对噪声干扰容忍度高的特点。本文将从原理、算法实现和 OpenCV 应用三个角度对霍夫直线检测进行详细的阐述,并给出相应的 C++ 代码示例
2025-04-11 17:34:25
1167
原创 22.OpenCV轮廓匹配原理介绍与使用
轮廓匹配(Contour Matching)是计算机视觉中的一种重要方法,主要用于比较两个轮廓的相似性。它广泛应用于目标识别、形状分析、手势识别等领域。在 OpenCV 中,轮廓匹配主要基于形状匹配算法,其中 **`matchShapes`** 是核心函数。该函数用于计算两个轮廓之间的相似度,返回一个数值,该数值越小表示两个轮廓越相似。
2025-04-07 14:45:36
1295
2
原创 21.OpenCV获取图像轮廓信息
在计算机视觉领域,识别和分析图像中的对象形状是一项基本任务。OpenCV 库提供了一个强大的工具——轮廓检测(Contour Detection),它能够帮助我们精确地定位对象的边界。这篇博文将带你入门 OpenCV 的轮廓检测,理解其原理,并学会如何在 C++ 中使用它。
2025-04-02 15:10:42
1450
原创 20.OpenCV连通性原理及应用详解
在图像处理和计算机视觉中,连通性分析是一项基础且重要的技术,用于检测图像中相互连接的像素区域,这些区域通常代表着图像中的独立对象或目标。本文将介绍连通性(Connectivity)的基本原理、常见的连通方式(如 4 连通和 8 连通)、OpenCV 中的相关实现方法以及实际应用场景。。
2025-03-31 12:09:24
724
原创 19.OpenCV图像二值化
图像二值化(Binarization)是图像预处理中的一种常用技术,其目的是将图像中的像素值分为两个类别——通常是“前景”和“背景”或者说0和255。二值化能够简化图像信息,为后续的形态学处理、边缘检测、目标识别等任务提供基础。本文将介绍二值化的基本概念、全局二值化、三角二值化和自适应二值化的原理与实现
2025-03-29 19:56:45
998
原创 18.OpenCV图像卷积及其模糊滤波应用详解
在图像处理领域,卷积是一种非常基础且强大的操作。它通过将一个小矩阵(称为卷积核或滤波器)滑动覆盖在图像上,对每个像素进行加权求和,从而实现图像的平滑、边缘检测、锐化、模糊等多种效果。本文将带你了解卷积的基本原理、如何在 OpenCV 中使用卷积操作以及各种卷积核在实际中的应用场景
2025-03-27 11:54:56
1386
1
原创 17.OpenCV图像直方图、二维直方图与直方图均衡化详解
在图像处理领域,直方图是一种常用的统计工具,用于描述图像中像素值的分布情况。直方图不仅能揭示图像的对比度、亮度等信息,还可用于图像增强、分割、匹配等应用。本文将介绍如何使用 OpenCV C++ 计算图像直方图、构建二维直方图,以及如何进行直方图均衡化,从而提升图像质量。
2025-03-26 13:35:04
930
原创 16.OpenCV摄像头捕获、视频读取与保存
无论是实时监控、视频分析,还是数据采集与存储,OpenCV 都提供了简单易用的接口。在这个示例中,我们从保存的 “output.avi” 文件中读取视频帧和基本信息,并通过窗口播放。在该示例中,我们通过循环不断读取摄像头视频帧,并在窗口中显示。除了实时捕获摄像头视频,OpenCV 也可以读取已经保存的视频文件进行播放和处理。通过掌握这些基础操作,开发者可以轻松构建实时监控、视频处理和数据采集等应用。类,可以方便地从摄像头(或其它视频源)中读取视频帧。过多API参考官方文档。
2025-03-25 13:45:17
1224
原创 15.OpenCV透视变换
透视变换(Perspective Transformation)是一种常见的几何变换,用于将图像从一种视角转换到另一种视角。本文将带你深入了解透视变换的数学原理、如何利用 OpenCV 实现透视变换,并通过示例代码展示实际应用。在交互式示例中,我们通过鼠标点击在图像上选取四个点,动态标记选取点,然后根据用户选择的点进行透视变换。在本示例中,我们手动指定原始图像中待变换区域的四个顶点,并将其映射到一个标准矩形。根据计算得到的透视矩阵对图像进行变换,并输出变换后的图像。根据原始点集和目标点集计算透视变换矩阵。
2025-03-24 10:30:09
852
原创 14.OpenCV C++ 图像几何变换详解:插值缩放、翻转、旋转与 ROI 提取
在图像处理领域,经常需要对图像进行各种几何变换,例如缩放、翻转、旋转以及提取感兴趣区域(ROI)。这些操作不仅能帮助我们预处理图像数据,还能用于数据增强、目标定位等任务。函数可以根据指定的目标尺寸或者缩放因子对图像进行缩放,支持多种插值方法,包括最近邻插值、双线性插值、立方插值等。OpenCV 提供的 cv::resize。对于旋转后图像的尺寸处理,可以根据需要调整输出图像尺寸,防止部分内容被裁剪。参数实现图像翻转,为数据增强提供了简单而有效的方式。在该示例中,通过定义 cv::Rect。
2025-03-23 15:31:56
1298
原创 13.OpenCV的数据归一化
在OpenCV中,像素归一化(Normalization) 是将图像的像素值映射到特定范围或分布的过程,目的是消除数据量纲差异、增强特征一致性,并提升算法的鲁棒性。
2025-03-20 17:50:59
1230
原创 12.OpenCV鼠标操作
我们经常需要与图像窗口进行交互,例如选取目标区域、标注图像或者动态绘图。OpenCV 提供了基本的鼠标操作接口,使得开发者可以捕获鼠标点击、移动、拖拽等事件,从而实现丰富的交互功能。
2025-03-17 16:55:40
627
原创 11.OpenCV C++ 绘图入门:矩形、圆、线、椭圆、多边形
OpenCV 提供了丰富的绘图函数,可以轻松实现矩形、圆、线、椭圆、多边形等基本图形的绘制,同时还支持形状的填充。通过掌握这些绘图函数,开发者可以在图像标注、图形生成、数据可视化等多种场景中得心应手
2025-03-14 17:08:10
809
原创 10.OpenCV C++ 中统计学函数 —— 最大值、最小值、平均值、方差等应用介绍
本文将介绍 OpenCV C++ 中常用的统计学函数及其应用,包括求取最大值、最小值、平均值以及标准差(进而获得方差)的函数
2025-03-11 16:28:57
1068
原创 09.OpenCV色彩空间应用之ROI提取
在RGB色彩空间中,颜色由红、绿、蓝三个通道描述,但这种描述方式对于颜色提取并不直观,尤其在光照变化较大的情况下容易受到影响。由于HSV色彩空间能够更好地分离颜色信息和亮度信息,因此在进行颜色过滤和目标检测时具有很大优势。基于这种方式的应用之一就是主播直播时都是绿幕背景,然后有软件自动生成各种特效。inRange()这种方法在提取颜色明显与背景区分的目标时效果尤为显著,如提取特定颜色的物体、车牌识别等。
2025-03-10 16:40:32
296
原创 08.OpenCV像素逻辑操作
像素级逻辑操作是数字图像处理的核心技术之一,OpenCV提供了一套完整的位运算函数。本文将深入解析四种基础逻辑操作(AND/OR/NOT/XOR),并通过简单案例展示其在图像处理中的应用。
2025-03-06 15:12:33
392
原创 07.OpenCV交互:Trackbar与键盘按键操作详解
在计算机视觉开发中,实时交互是提升算法调试效率的重要手段。OpenCV提供了Trackbar和键盘事件处理两种核心交互方式,下面通过代码介绍基本使用方法。
2025-03-04 23:39:37
243
原创 06.OpenCV cv Mat之(三)算术操作
在计算机视觉领域,OpenCV的算术运算是图像处理的基础操作。通过简单的加减乘除,我们可以实现亮度调整、对比度增强、图像融合等多种效果。下面将介绍OpenCV 4.x中C++接口的核心运算方法。
2025-03-03 23:20:09
378
原创 04.OpenCV cv::Mat之(一)创建数据对象
在 OpenCV 中,cv::Mat 是一个非常重要的类,它负责存储图像以及其他多维数据。无论你是在进行简单的图像读取、图像变换,还是进行复杂的计算机视觉任务,对 cv::Mat 的深入理解都至关重要。本文将从多个角度介绍 cv::Mat 的基本概念、创建与初始化、数据访问、内存管理及常见应用实例,帮助你更好地使用 OpenCV 开发图像处理应用。
2025-03-01 23:11:55
1062
原创 PlatformIO 添加芯片
使用过vscode的小伙伴都知道起功能非常好用,尤其是提供很多开源插件。这时候就想把他应用于嵌入式开发。方法一就是直接下载arm编译工具等进行搭建,缺点是比较麻烦,好处是可以了解工作机制。方法二就是采用目前流行的PlatformIO这个插件进行快速搭建。但是在使用这个插件时发现部分器件型号并没有,这时候就需要自己添加器件。本文主要就是介绍如何快速添加一个芯片型号,前提是这个芯片的产品线(其他类似型号)platformIO已经支持。...
2022-07-27 00:12:31
1809
原创 MarkDown中使用链接插入图片
本文主要介绍MarkDown中如何使用有道云笔记的外部链接插入图片。主要是解决采用第三方图库或者链接可能被删除或者自建服务器太贵。这样就可以在云笔记的MarkDown中使用图片,当然还是强烈推荐购买云笔记的VIP,vip支持直接插入图片。csdn目前是可以支持图片上传插入的,所以不需要采用这种方法。但是这种方法不是所有的MarkDown软件都支持。图片!......
2022-07-23 22:51:46
2671
QtGuiApplication_Switch_EN_CH.7z
2020-01-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人