- 博客(834)
- 收藏
- 关注
原创 OpenCV(三十一):边缘检测Canny
Canny 边缘检测是一种经典且常用的图像边缘提取算法,由 John Canny 在 1986 年提出。它在 OpenCV 中得到了高效实现,是结构化光、SLAM、医学影像分析与机器视觉领域中最常用的边缘检测方法之一。其目标是以最优方式识别图像中的边缘,既能准确检测真实边缘,又能保持较强的抗噪能力与定位精度。边缘通常对应灰度变化剧烈的区域,但噪声也会产生剧烈变化。如果不去噪,边缘会出现大量虚假响应。高斯滤波使用如下数学形式的卷积核:σ 越大,平滑越强,但也会模糊真实边缘。
2025-11-19 22:24:37
1003
1
原创 音视频学习(七十一):图像深度与图像通道数
图像通道表示每个像素包含的独立信息层(components)。灰度图:1 个通道(亮度)RGB 图:3 个通道(R, G, B)RGBA:4 个通道(R, G, B, A=透明度)YUV:通常是 3 通道(Y 亮度、UV 色度)每个通道都存储对应的像素信息,多个通道组合可以形成彩色或多维信息图像。例如:8-bit、16-bit、32-bit float。
2025-11-19 22:03:25
739
原创 OpenCV(三十):高通滤波-拉普拉斯算子
特性说明二阶导数对亮度变化敏感,适合边缘增强各向同性对水平、垂直、斜向边缘响应一致无方向性不能区分边缘方向对噪声敏感噪声通常是高频,会被强化高频强化作用属于典型高通滤波器因此在实际应用中,常与Gaussian 平滑联用,用来降低噪声影响。重点内容原理拉普拉斯是二阶导数,响应强度取决于灰度变化率类型4 邻域、8 邻域卷积核特性各向同性、对噪声敏感、高通滤波使用场景边缘检测、锐化、文档增强、医学影像OpenCV 使用彩色处理问题推荐在 Y 通道上处理避免颜色偏移。
2025-11-18 23:10:15
860
原创 OpenCV(二十九):高通滤波-索贝尔算子
高通滤波强调高频信息,适合边缘增强索贝尔算子通过一阶微分 + 平滑实现鲁棒的边缘检测OpenCV 的cv2.Sobel可方便计算 Gx、Gy 和梯度幅度。
2025-11-16 22:36:05
903
原创 OpenCV(二十七):中值滤波
中值滤波(Median Filter)是一种在图像处理系统中被广泛采用的非线性滤波算法,主要用于去除脉冲噪声(Salt & Pepper Noise)和消除图像中的孤立噪点。相比均值滤波,中值滤波在保留边缘方面具有明显优势,因此在图像预处理阶段非常常用,如去噪、边缘检测前的降噪等。
2025-11-16 15:10:02
888
原创 OpenCV(二十六):高斯滤波
图像平滑是计算机视觉中的重要基础操作,用于降噪、改善图像质量以及为后续算法(如边缘检测、特征提取、图像金字塔处理等)作准备。在所有平滑方法中,是最常用、最经典的一种。与均值滤波或方盒滤波相比,高斯滤波能更好地保护边缘,具有更好的数学性质和视觉效果。
2025-11-15 22:44:55
1166
2
原创 OpenCV(二十五):方盒滤波与均值滤波
滤波的核心思想是:对每个像素,以其邻域(通常为 k×k 窗口)为基础进行计算,使输出像素值更平滑或者更符合某种特定需求。线性滤波的一般形式为:其中 k(i,j) 为滤波核(kernel)。
2025-11-15 19:55:27
816
原创 音视频学习(七十):SVC编码
可伸缩视频编码是指:一个视频码流可以通过提取部分子码流(称为子集码流)来解码出不同质量的视频,而不必重新编码。换言之:SVC 在一个码流中同时包含多个“层”(Layer),每一层代表一种特定的编码质量或分辨率。这种结构能让解码端根据网络状况或设备能力,选择解码部分层数据,从而实现自适应播放。时域伸缩是指在同一视频码流中,通过分层设计支持不同帧率的视频解码。空域伸缩是指在同一码流中包含多个不同分辨率的视频层(如 480p、720p、1080p),实现“分辨率可伸缩”。
2025-11-13 21:18:34
604
原创 OpenCV(二十四):图像滤波
可以通过自定义卷积核实现更灵活的锐化效果。可灵活调整锐化强度;可与平滑滤波结合使用。OpenCV 提供了filter2D()通用接口,可自定义任意卷积核,实现各种滤波器。第三个参数-1表示输出图像深度与输入相同;可通过改变核系数实现不同效果。import cv2# 读取原图(灰度)# 1. 自定义均值滤波核# 2. 自定义锐化滤波核# 3. 自定义边缘检测核(Sobel X方向)# 4. 自定义拉普拉斯核(边缘增强)# 5. 自定义浮雕滤波核# 显示结果滤波类型。
2025-11-12 22:26:11
679
原创 OpenCV(二十三):透视变换
步骤数学原理实现函数备注建立点对平面到平面映射手动或检测特征点至少 4 对求解矩阵 H齐次线性方程组(DLT算法)findHomography 支持鲁棒估计(RANSAC)执行变换逆向映射 + 插值支持多种插值和边界模式可逆H 的逆矩阵可映射回原图。
2025-11-09 22:33:12
581
原创 OpenCV(二十二):图像的翻转与旋转
特性图像翻转 (cv::flip)任意角度旋转 (cv::warpAffine)特殊角度旋转 (cv::rotate)数学基础简单坐标映射仿射变换矩阵简单坐标置换尺寸变化不变通常增大90°/270°时:宽高互换核心挑战内存高效存取/交换插值运算(决定质量)内存块重排性能极快(通常利用SIMD/原地操作)慢 (涉及浮点/插值)快(直接映射,无插值)适用场景镜像、180°旋转任意角度、缩放、斜切等严格的 90°/180°/270° 旋转。
2025-11-09 20:41:14
1132
原创 OpenCV(二十一):图像的放大与缩小
空间域插值是指:在图像的空间坐标系(x, y)上,对已知像素间的未知位置进行像素值估计的过程。简单来说:当图像被放大、旋转或扭曲后,新生成的像素点往往位于原图像的“两个像素之间”,此时我们需要通过插值算法估计这些新像素的值。图像重采样是指:在几何变换或尺寸变化后,对图像进行重新取样(Sampling),即计算新像素网格对应的原始像素值的过程。“采样”是从原图获取像素;“重采样”是重新计算像素分布,使图像适应新的尺寸或坐标系。
2025-11-09 19:29:38
837
原创 OpenCV(二十一):HSV与HSL
HSV 与 HSL 都是基于人眼感知设计的颜色空间,其核心思想是将颜色分离为“色调 + 饱和度 + 亮度/明度”三个维度。HSV 的 Value 反映光照强度,适合分割与跟踪;HSL 的 Lightness 反映视觉明暗感,适合颜色校正与图像增强。与分别实现两种转换;Hue 范围缩放为 [0,180];选择何种空间取决于应用目标:→ 若注重颜色识别与跟踪,用 HSV;→ 若注重亮度调节与视觉一致性,用 HSL。
2025-11-06 22:31:18
905
原创 OpenCV(二十):位运算
直接操作像素二进制,速度快、无精度损失;结合掩膜灵活控制区域;在图像合成、抠图、分割中广泛使用;支持硬件加速,可满足实时视频场景。应用函数说明提取目标区域保留 mask 白区背景替换add前景/背景分离差异检测检测运动/变化图像反色图像反相局部ROI处理任意位运算 + mask精准控制计算范围。
2025-11-06 22:25:57
714
原创 OpenCV(十九):图像的加法运算
图像加法的本质是对两幅图像的像素点逐一进行相加操作。假设两幅灰度图像 A(x,y) 和 B(x,y),它们的加法结果为:若图像为三通道彩色图像(如 BGR),则运算在每个通道上独立进行:但由于图像的像素值通常为 8 位无符号整数(0~255),因此在相加时可能会出现。为此,OpenCV 和 NumPy 的处理方式不同。
2025-11-04 22:31:49
571
原创 c++ 协程
协程是一种非抢占式的、用户态的程序控制流组件。它可以暂停co_yield或co_await)并在稍后从暂停点恢复执行。与线程的区别:线程由操作系统内核调度,抢占式切换,切换开销大(涉及内核态/用户态切换、TLB 失效等)。协程由程序员在用户态协作调度,非抢占式切换,切换开销极小(仅涉及保存/恢复寄存器状态)。优势:极低的上下文切换成本。单个线程可以运行成千上万个协程。避免了传统异步编程中复杂的回调嵌套(“Callback Hell”),使异步代码看起来像同步代码一样直观。
2025-11-02 22:56:14
311
原创 OpenCV(十七):绘制多边形
在计算机视觉与图像处理中,是常见的图形操作之一。无论是标注目标区域、生成掩码(mask)、可视化检测结果,还是图像增强中添加人工结构,绘制多边形都是基础功能。cv2.line()
2025-11-02 20:13:32
456
原创 OpenCV(十六):椭圆的绘制
参数名称 (Parameter)数据类型 (Type)描述 (Description)核心作用img要在其上绘制椭圆的图像矩阵。目标画布centerTuple(x, y)椭圆的中心坐标(x, y)。位置axesTuple(a, b)包含半长轴和半短轴长度的元组 (a, b)。这是椭圆的宽度和高度的一半。尺寸和形状anglefloat椭圆的旋转角度(以度为单位)。逆时针方向为正。方向startAnglefloat椭圆弧的起始角度(以度为单位)。以水平轴(旋转后的)为0度,逆时针方向递增。
2025-11-02 19:05:17
813
原创 目标检测算法与原理(二):Tensorflow实现迁移学习
在TensorFlow 2.x中,Keras成为首选的高级API。Backbone构建:使用中的预训练模型(如ResNet50)作为特征提取器。层和损失函数:自定义RPN、RoI Pooling/Align、边界框回归损失(如Smooth L1)和分类损失(如交叉熵)。目标检测是计算机视觉的核心,其算法从早期的两阶段模型(如Faster R-CNN)发展到快速的一阶段模型(如YOLO、SSD),实现了速度与精度的平衡。TensorFlow提供了强大的API和预训练模型,极大地降低了开发门槛。
2025-11-02 18:45:34
591
原创 OpenCV(十五):绘制矩形和圆
矩形绘制是通过遍历所有介于pt1和pt2坐标范围内的像素点,并根据thickness参数来决定是只修改边界像素()还是修改所有内部像素(pt1tuple(x, y)pt2tuple(x, y)cv2.FILLEDcv2.LINE_8。
2025-10-29 22:11:21
375
原创 目标检测算法与原理(一):迁移学习
目标检测和迁移学习是现代AI,尤其是深度学习不可或缺的两大基石。目标检测通过一系列精妙的算法设计(从两阶段的精度优势到单阶段的速度优势),实现了机器对“看懂”世界的跨越。未来的趋势将是更轻量化、更高效、更通用的模型,例如结构(如DETR)的引入,正推动目标检测向更简洁的端到端范式发展。迁移学习则极大地提高了深度学习的实用性和可扩展性。通过复用知识,它有效解决了数据稀疏和高昂计算成本的问题,让深度学习技术得以在更多小样本、低资源的领域落地。从图像领域的预训练模型到自然语言处理领域的。
2025-10-29 21:47:57
429
原创 OpenCV(十四):绘制直线
功能函数特点绘制直线cv2.line()cv::line()可设置颜色、线宽、抗锯齿多线绘制循环调用适合可视化检测结果精确绘制支持浮点坐标(shift)亚像素精度。
2025-10-26 22:15:45
367
原创 卷积神经网络CNN(六):卷积、归一化与ReLU总结
ReLU(Rectified Linear Unit)是目前最常用的激活函数,其定义为:当 x>0 时,输出 x;当 x≤0 时,输出 0。模块功能数学形式主要作用卷积层提取局部特征Y=W∗X+b学习空间结构信息归一化层稳定特征分布加速收敛、防止过拟合ReLU 激活层引入非线性提高表达能力、加速训练卷积层| 提取局部特征 | Y=W∗X+b | 学习空间结构信息 |归一化层| 稳定特征分布 | x^=(x−μ)/σ2+ϵ | 加速收敛、防止过拟合 |
2025-10-26 21:21:17
796
原创 OpenCV(十二):Mat
特点描述头部新对象有自己的头部信息(形状、数据类型等)。(赋值除外,赋值连头部都共享)数据共享原始对象的底层数据块。独立性不独立。修改其中任何一个对象的数据,另一个对象的数据也会随之改变。速度/内存快,内存占用少,因为没有复制数据。适用场景当你希望在不改变内存中实际数据的前提下,以不同的方式(如不同的数据类型、形状)来查看或操作同一块数据时。特点描述头部新对象有自己的头部信息(形状、数据类型等)。数据拥有独立分配的新数据块。独立性完全独立。修改一个对象不会影响另一个对象。速度/内存。
2025-10-20 22:09:33
789
原创 OpenCV(十一):色彩空间转换
srccodecodeHSV(Hue, Saturation, Value)和 HLS(Hue, Lightness, Saturation)色彩空间在的目标检测或分割中非常有用,因为它们将(色相 H)与(V/L)分离。这意味着可以在不同光照条件下更容易地提取特定颜色。
2025-10-14 22:16:46
490
原创 OpenCV(十):NumPy中的ROI
ROI 是通过指定图像的行(高度)和列(宽度)范围来确定的。windowName: (可选)显示图像的窗口名称。如果未指定,它会创建一个默认窗口。img: 要选择 ROI 的原始图像(NumPy 数组)。: (可选,默认为True)如果为True,在选择矩形中心显示十字线。fromCenter: (可选,默认为False)如果为True,用户从中心点拖动来绘制矩形;如果为False,用户从左上角拖动到右下角绘制矩形。返回值retval返回一个包含矩形边界框信息的元组:x, y: ROI 矩形左上角。
2025-10-13 21:30:39
1195
原创 OpenCV(八):NumPy
NumPy 不仅仅是 OpenCV 的一个依赖库,它是 OpenCV-Python 图像处理功能的基石。特性NumPy 作用核心意义数据表示将图像表示为多维数组 (ndarray统一、高效的数据结构性能实现底层 C 优化的向量化操作显著提升图像处理速度操作便捷性提供强大的索引、切片和广播机制简化复杂的像素级和区域操作互操作性作为科学计算领域的通用数组格式便于与 Matplotlib、SciPy 等库集成。
2025-10-12 21:49:07
1060
2
原创 音视频学习(六十九):视音频噪声
噪声是音视频信号处理中最普遍且最具挑战性的问题之一。随着传感器技术、数字信号处理和人工智能的发展,现代音视频系统对噪声的抑制能力不断增强。从早期的模拟滤波器到今天的深度学习算法,降噪已成为音视频质量提升的重要环节。理解噪声的产生机理、特征以及控制手段,是音视频工程师进行系统设计与优化的基础。只有在全链路层面控制噪声,才能实现高保真、高体验的音视频传输与呈现。
2025-10-12 12:43:44
664
原创 卷积神经网络CNN(五): 标准CNN神经网络
卷积神经网络的成功是由于其结构上的归纳偏置(Inductive Bias)——即对局部性(通过局部感受野)和空间不变性(通过权值共享和池化)的假设。从低级特征(边缘、角点)到高级特征(对象部件、整体对象)的抽象分层学习。从高维度(像素空间)到低维度(特征向量)的信息压缩与精炼。
2025-10-11 21:48:20
434
原创 卷积神经网络CNN(四):池化技术
卷积神经网络以其独特的局部连接、权值共享和池化机制,在处理网格数据,尤其是图像数据方面展现出无与伦比的性能。它不仅能够自动学习特征,避免了传统机器学习方法中手工设计特征的繁琐和局限性,而且通过结构上的巧妙设计(如池化),实现了计算上的高效性和对输入扰动的鲁棒性。池化层作为CNN中的重要组成部分,在特征图与全连接层之间起到了一个至关重要的“桥梁”和“压缩机”的作用。
2025-10-11 21:47:33
451
原创 OpenCV(七):BGR
红、绿、蓝顺序,常用于 Web、Matplotlib、PIL/Pillow 等库。:蓝、绿、红顺序,OpenCV 专用。转换:OpenCV 提供了 cv2.cvtColor() 函数来转换颜色空间。示例:将 BGR 转换为 RGB。
2025-10-10 22:13:26
323
原创 卷积神经网络CNN(三):三维卷积与多核卷积
多核卷积是 2D 卷积中实现特征多样性的基石,是任何高性能 CNN 必不可少的组件。而三维卷积则是 CNN 从图像扩展到时空或体素数据的关键技术,它使网络能够学习动态变化或立体结构中的深度模式,是迈向更复杂数据理解的关键一步。
2025-10-10 21:53:37
731
原创 卷积神经网络CNN(二):对于图像处理的意义
CNN之所以能在图像处理中脱颖而出,得益于其架构中包含的三大特性,这些特性专门解决处理大规模图像数据时面临的和问题。
2025-10-10 21:43:17
956
原创 卷积神经网络CNN(一):卷积操作
卷积操作的本质是一种空间过滤器。它通过学习一组最优的、可共享的权重(即卷积核),有效地将原始高维输入数据(如图像像素)抽象压缩并转化为更有意义、更具判别力的特征表示(即特征图),为后续的全连接分类器提供高质量的输入。正是这种强大的特征学习能力,使CNN成为现代计算机视觉任务的基石。
2025-10-10 21:28:12
1162
原创 OpenCV(六):TrackBar控件
这个函数用于创建一个滑动条并将其附加到指定的窗口上。参数说明参数描述(Required) 滑动条的名称(字符串),用于显示在滑动条旁边。(Required) 绑定滑动条的窗口名称(必须是已通过 创建的窗口)。(Required) 滑动条的初始位置值(整数)。(Required) 滑动条的最大值(整数)。最小值固定为 0。(Required) 用户自定义的回调函数,当滑动条位置改变时自动调用。注意:如果你不想使用回调函数,可以传入 或一个空函数。
2025-10-08 17:45:56
446
原创 OpenCV(五):鼠标控制
这个函数的作用是将一个用户自定义的函数(即回调函数)绑定到一个指定的窗口,当该窗口内发生任何鼠标事件时,OpenCV 就会自动调用这个自定义函数。onMouse。
2025-10-08 17:33:04
769
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅