09 2024 档案
摘要:目录1. 直方图均衡化2. 自适应直方图均衡化3. 限制对比度自适应直方图均衡化4. 线性对比度拉伸5. Gamma 校正6. Retinex 方法7. 多尺度对比度增强8. 方法选择与应用场景总结 增强图像对比度是图像处理中的一个重要步骤,旨在提高图像中不同亮度区域之间的差异,使细节更加清晰和明显
阅读全文
摘要:目录1. 函数定义2. 示例示例 1:基本逐元素乘法示例 2:使用缩放因子示例 3:应用于图像3. 注意事项4. 与其他函数的比较总结 cv::Mat::mul() 是 OpenCV 中用于执行矩阵逐元素(逐项)乘法的函数。与传统的矩阵乘法不同,mul() 函数执行的是对应元素之间的乘法操作,常用于
阅读全文
摘要:目录1. 函数概述cv::Mat::mul()cv::multiply()2. 详细比较2.1. 使用方式cv::Mat::mul()cv::multiply()2.2. 性能和内存管理cv::Mat::mul()cv::multiply()2.3. 数据类型和深度控制cv::Mat::mul()c
阅读全文
摘要:目录1. 函数定义2. 功能说明3. 示例3.1 基础逐元素相乘3.2 带缩放因子的逐元素相乘3.3 处理不同数据类型4. 注意事项5. 高级用法5.1 使用掩码进行选择性相乘总结 cv::multiply() 是 OpenCV 库中用于对两个数组(通常是图像)的对应元素进行逐元素相乘的函数。 1.
阅读全文
摘要:目录1. 函数定义2. 示例2.1 计算灰度图像的平均值2.2 计算彩色图像的每个通道的平均值2.3 带掩码的平均值计算总结 cv::mean() 是 OpenCV 中用于计算图像的平均值的函数。它可以用于单通道图像、多通道图像(如彩色图像)、带掩码的图像等。 1. 函数定义 Scalar cv::
阅读全文
摘要:目录1. 函数定义2. 原理3. 示例4. 参数作用详解4.1 alpha 的作用4.2 beta 的作用5. 应用场景6. cv::convertScaleAbs() 与 cv::normalize() 的区别总结 cv::convertScaleAbs() 是 OpenCV 中用于将图像像素值缩
阅读全文
摘要:目录1. 函数定义2. 拉普拉斯算子的原理3. 代码示例4. 应用场景5. 计算示例5.1 5x5 图像矩阵5.2 拉普拉斯算子核5.3 计算过程5.3.1 边界处理5.3.2 卷积操作5.3.3 具体计算5.4 输出矩阵5.5 结果解释 cv::Laplacian() 是 OpenCV 中用于计算
阅读全文
摘要:目录1. 高斯滤波(Gaussian Blur)2. 计算梯度强度和方向(Gradient Calculation)3. 非极大值抑制(Non-Maximum Suppression)3.1 示例1. 梯度强度矩阵(7x7)2. 每个像素的梯度方向(7x7)3. 非极大值抑制过程4. 非极大值抑制后
阅读全文
摘要:目录1. 图像锐化2. 原理3. 示例 1. 图像锐化 图像锐化是一种图像增强技术,旨在通过增强图像的边缘信息,使图像看起来更加清晰和具有细节。图像锐化的核心思想是突出图像中的高频分量,这通常与图像中的边缘和快速变化的区域相关。 2. 原理 图像锐化的基本原理是通过增强图像中像素之间的灰度变化,使图
阅读全文
摘要:目录1. 图像对比度2. 对比度调整的原理3. 示例4. 调整对比度的效果 1. 图像对比度 图像对比度是指图像中亮部和暗部之间的差异程度。对比度越高,亮区更亮,暗区更暗;对比度低时,亮区和暗区的差异不明显,图像显得平淡。 2. 对比度调整的原理 图像对比度可以通过线性变换实现,公式如下: \[I_
阅读全文
摘要:目录1. 图像明度(Brightness)2. 明度调整的原理3. 示例 1. 图像明度(Brightness) 明度(Brightness)是图像中反映光亮程度的一个属性,通常用于描述像素的亮度水平。 对于RGB图像,明度(Luminance)每个像素中红、绿、蓝通道的加权和。 \[\text{L
阅读全文
摘要:目录1. 图像饱和度2. 饱和度调整的原理3. 示例3.1 对 RGB 图像进行饱和度的调整。3.2 对 RGB 图像进行饱和度的调整。4. 调整饱和度的效果 1. 图像饱和度 饱和度(Saturation)指的是颜色的纯度或浓度,决定了颜色的鲜艳程度。高饱和度的颜色看起来更加鲜艳,而低饱和度的颜色
阅读全文
摘要:目录1. 函数定义2. 为什么需要 saturate_cast()?3. 工作原理4. 示例代码:4.1 将浮点数转换为 uchar4.2 将负数转换为 uchar4.3 普通类型转换5. 主要优点总结 cv::saturate_cast() 是 OpenCV 中一个非常重要的函数,用于在图像处理过
阅读全文
摘要:目录1. 函数定义2. 工作原理3. 示例 cv::bitwise_not() 是 OpenCV 中用于对图像或矩阵进行按位取反操作的函数。它将输入图像的每个像素的值进行按位反转,生成输出图像。按位取反是对每个位进行反转,即将二进制数中的 0 变为 1,1 变为 0。 1. 函数定义 void cv
阅读全文
摘要:目录1. YCrCb 颜色空间1.1 YCrCb 颜色空间的定义1.2 YCrCb 的转换1.3 应用场景2. HSV 颜色空间2.1 HSV 颜色空间的定义2.2 HSV 的转换2.3 应用场景3. YCrCb 和 HSV 颜色空间的比较4. 总结 在图像处理领域中,除了传统的 RGB 颜色空间之
阅读全文
摘要:目录1. 函数定义2. 函数原理2.1 示例3. 示例代码4. 应用场景5. 注意事项6. 彩色图像直方图均衡化 cv::equalizeHist() 是 OpenCV 中用于图像直方图均衡化的函数。该函数主要用于增强图像的对比度,尤其是在图像的光照条件不均匀或整体对比度较低的情况下,直方图均衡化可
阅读全文
摘要:目录1. 函数定义2. 工作原理3. 示例3.1 矩阵除法3.2 矩阵和标量的除法3.3 使用缩放因子4. 注意事项5. 应用场景 cv::divide() 是 OpenCV 中用于执行数组或标量的逐元素除法操作的函数。它允许对矩阵进行元素级的除法操作,支持两种使用方式:矩阵与矩阵之间的除法,或矩阵
阅读全文
摘要:目录1. 函数定义2. 使用场景3. 示例4. 注意事项 cv::magnitude() 是 OpenCV 中用于计算向量的大小(模)的函数。它可以处理二维向量的模,也可以用于计算图像中每个像素点的梯度大小,通常在处理图像梯度或傅里叶变换时使用。 1. 函数定义 void cv::magnitude
阅读全文
摘要:目录1. 函数定义2. 工作原理2.1 Sobel 核2.2 计算过程(1) x 方向的 Sobel 卷积计算(2) y 方向的 Sobel 卷积计算(3) 合并 x 和 y 方向的梯度(4) 梯度方向2.3 示例3. 示例4. 使用场景总结 cv::Sobel() 是 OpenCV 中用于计算图像
阅读全文
摘要:目录1. 函数定义2. 双边滤波的工作原理3. 应用场景4. 示例5. 与其他滤波器的比较6. 性能优化7. 注意事项结论 cv::bilateralFilter() 是 OpenCV 中用于图像平滑处理。与传统的线性滤波器(如高斯滤波器)不同,它同时考虑空间邻近性和像素值相似性,从而保留边缘的细节
阅读全文
摘要:目录1. 函数定义2. 工作原理3. 示例4. 注意事项总结 cv::merge() 是 OpenCV 中用于将单通道图像合并为多通道图像。这个函数对于处理图像的不同颜色通道或者其他分割的图像数据特别有用。 1. 函数定义 void cv::merge(const std::vector<Mat>&
阅读全文
摘要:目录1. 函数定义2. 工作原理3. 示例4. 使用场景5. 注意事项 cv::split() 是 OpenCV 提供的一个函数,用于将多通道图像分割成单通道。该函数主要用于处理彩色图像和多通道矩阵,通常用于对图像中的每个颜色通道单独进行处理。 1. 函数定义 void cv::split(cons
阅读全文
摘要:目录1. 函数定义2. 工作原理3. 示例4. 应用场景5. 膨胀和腐蚀的对比总结 cv::dilate() 是 OpenCV 中用于图像形态学变换的函数之一,与 cv::erode() 相对,它执行图像的膨胀操作。膨胀是一种将图像中的前景(白色区域)扩展的操作,通常用于填补图像中的小孔洞、连接分离
阅读全文
摘要:目录1. 函数定义2. 工作原理3. 示例4. 应用场景总结 cv::erode() 是 OpenCV 中的图像形态学变换函数之一,用于执行图像的腐蚀操作。腐蚀是一种将图像中的白色区域缩小的操作,通常用于去除噪声、分离相邻的物体,或将小的图像细节消除。 1. 函数定义 void cv::erode(
阅读全文
摘要:目录1. 函数定义2. 高斯模糊原理2.1 高斯核2.1.1 高斯核的创建2.1.2 卷积操作2.1.3 边界处理2.1.4 完成模糊处理2.1.5 总结2.2 高斯核3. 示例4. 高斯核的生成5. 高斯模糊的应用场景6. 高斯模糊与
阅读全文
摘要:目录1. 函数定义2. 工作原理3. 示例4. 效果说明5. 应用场景 cv::blur() 是 OpenCV 提供的一个用于图像模糊处理的函数,它通过卷积运算对图像进行均值滤波。这个函数对于消除噪声、平滑图像非常有效,尤其是在边缘检测等操作之前常用。 1. 函数定义 void cv::blur(
阅读全文
摘要:目录1. 函数原型2. 示例2.1 开运算2.2 闭运算2.3 形态学梯度2.4 顶帽运算2.5 黑帽运算3. 常见的形态学运算4. 应用场景 cv::morphologyEx() 是 OpenCV 中的一个重要函数,用于执行图像的高级形态学运算。形态学运算基于图像中像素邻域的形状(通常是二进制图像
阅读全文
摘要:目录1. 函数原型2. 示例3. 使用场景 1. 函数原型 cv::getStructuringElement() 是 OpenCV 中一个用于生成结构元素(卷积核)的函数,结构元素在形态学操作(如膨胀、腐蚀等)中扮演了重要角色。 cv::Mat cv::getStructuringElement(
阅读全文
摘要:目录1. 函数原型2. 示例 1. 函数原型 cv::drawContours() 用于在图像上绘制轮廓。函数原型: void cv::drawContours( cv::InputOutputArray image, const std::vector<std::vector<cv::Point>
阅读全文
摘要:目录1. 低通滤波(Low-Pass Filtering)1.1 概念1.2 作用1.3 常见类型1.4 应用场景1.5 频域中的表现2. 高通滤波(High-Pass Filtering)2.1 概念2.2 作用2.3 常见类型2.4 应用场景2.5 频域中的表现3. 频域滤波的操作过程4. 高通
阅读全文
摘要:目录1. 函数定义2. 示例3. 使用场景4. 性能5. 注意事项6. convertTo() 与 setTo() 的区别 cv::Mat::setTo() 是 OpenCV 中用于将图像的像素值设置为一个固定的值,可以选择性地用掩码控制赋值范围。这个函数常用于图像处理中的多种场景,例如图像填充、区
阅读全文
摘要:目录1. clock_t2. clock()2.1 函数定义3. 示例4. 注意事项 在C++中,clock_t 和 clock() 是与时间度量和性能测量相关的库函数,主要用于计算程序运行的时间。 1. clock_t clock_t 是在 <ctime> 或 <time.h> 中定义的一个类型,
阅读全文
摘要:目录1. 语法2. 示例3. 捕获方式4. 可变性(mutable 关键字)5. Lambda表达式的用途总结 C++中的lambda表达式是一种匿名函数,通常用于简化代码,尤其是在处理临时或小型回调函数时。Lambda表达式引入于C++11,并在之后的C++标准中不断增强。它们可以捕获上下文中的变
阅读全文
摘要:目录1. std::sort2. std::reverse3. std::find4. std::copy5. std::equal6. std::for_each7. std::unique8. std::transform总结 #include <algorithm> 是 C++ 标准库中的一个
阅读全文
摘要:目录1. 函数定义2. 示例3. 函数原理4. 典型应用5. 注意事项 cv::minEnclosingCircle() 是 OpenCV 中的一个函数,用于找到能够完全包围给定点集的最小圆(即最小外接圆)。它常用于形状分析或图像处理中的轮廓检测任务,特别是确定某个形状的最小边界圆。 1. 函数定义
阅读全文
摘要:目录1. 类模板结构1.1 常用定义:2. 成员变量3. 构造函数4. 常用操作4.1 加法和减法:4.2 标量乘法和除法:4.3 比较操作:5. 示例6. 应用场景总结 cv::Point 是 OpenCV 库中用于表示二维坐标点的一个模板类,它存储一个点的 x 和 y 坐标。 1. 类模板结构
阅读全文
摘要:目录1. 经典的 for 循环2. 基于范围的 for 循环(C++11 引入)3. 无限 for 循环4. 嵌套 for 循环5. 使用 continue 和 break 控制循环流总结 C++ 中有多种形式的 for 循环,每种形式适合不同的应用场景。 1. 经典的 for 循环 这是 C++
阅读全文
摘要:目录1. 模板参数2. 常见的类型别名3. 基本特性4. 示例总结 cv::Vec<T, cn> 是 OpenCV 中的一个模板类,用于表示固定长度的向量,常用于图像处理和计算机视觉中的坐标、颜色、法线等数据的存储。T 表示元素的类型,cn 表示向量的维度(或通道数)。 1. 模板参数 T:向量元素
阅读全文
摘要:目录1. 函数定义2. 示例3. 常见应用4. 注意事项 cv::findContours() 是 OpenCV 中用于检测图像中的轮廓的函数。 1. 函数定义 void findContours( InputOutputArray image, OutputArrayOfArrays contou
阅读全文
摘要:目录1. 使用场景2. 示例代码3. 示例代码解析3.1 头文件和命名空间3.2 主函数 main3.2.1 创建并初始化矩阵A3.2.2 随机初始化矩阵A的值3.2.3 克隆矩阵3.2.4 使用动态地址操作法进行矩阵操作并计时3.2.5 使用迭代器操作法进行矩阵操作并计时3.2.6 使用指针操作法
阅读全文
摘要:目录1. 函数定义2. 功能3. 示例4. 注意事项总结 在 OpenCV 中,Mat 类的成员函数 ptr<T>() 用于获取指向矩阵数据的指针,允许直接访问底层数据。T 是指针的类型,它通常与矩阵的元素类型对应。通过这个函数,你可以以一种低开销的方式访问和修改矩阵数据。 1. 函数定义 temp
阅读全文
摘要:目录1. 语法2. 示例3. 为什么选择 static_cast总结 static_cast 是 C++ 中的一种类型转换运算符,用于在不同的数据类型之间进行安全转换。与 C 风格的强制类型转换不同,static_cast 更加安全和明确。它主要用于进行类型转换时,确保转换是合法的,并且不会引入不必
阅读全文
摘要:目录1. getTickCount()2. getTickFrequency()3. 综合应用4. 注意事项 getTickCount() 和 getTickFrequency() 是 OpenCV 库中的两个函数,通常用于获取高精度的时间间隔。这两个函数主要用于计时和性能测量。 1. getTic
阅读全文
摘要:目录1. 使用场景2. 示例代码 1. 使用场景 将图像中的某些区域(由 mask 指定的非零区域)设置为 NaN。 SetToNan 函数实现了这一功能。 2. 示例代码 #include<iostream> #include<opencv2/opencv.hpp> using namespace
阅读全文
摘要:目录1. 使用场景2. 语法3. 工作原理4. 示例5. CV_Assert() 与 assert() 比较总结 CV_Assert() 是 OpenCV 中的一个宏,用于在代码执行时进行断言检查,以验证程序中的假设条件是否为真。如果该条件为假,程序会打印错误消息并终止执行。这类似于标准的 C/C+
阅读全文