首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【从学习OpenCV 4】直方图归一化

经过几个月努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从学习OpenCV 4》。...如果换一张图像直方图统计结果或者将直方图绘制到一个尺寸更小图像中时,可能需要将统计数据缩小原来三十分之一、五十分之一甚至更低。...这种方式可以保证每个灰度统计结果都是0到100%之间数据,实现统计结果归一化,但是这种方式也存在一个弊端,就是再CV_8U类型图像中,灰度值有256个等级,平均每个像素灰度值所占比例0.39%...,这个比例非常低,因此为了更直观绘制图像直方图,常需要将比例扩大一定倍数后再绘制图像。...输出结果是一个CV_32F类型矩阵,可以将输入矩阵作为输出矩阵,或者重新定义一个矩阵用于存放输出结果。

1.5K30

独家|OpenCV 1.7 离散傅里叶变换

翻译:陈之炎 校对:李海明 本文约2400字,建议阅读5分钟本文大家介绍了OpenCV离散傅里叶变换。 目标 本小节将寻求以下问题答案: 什么是傅立叶变换,为什么要使用傅立叶变换?...getOptimalDFTSize()函数返回一个最优尺寸图像,使用copyMakeBorder()函数扩展图像(将增加像素值初始化为边界: 复数实部和虚部开辟存储空间 傅立叶变换结果是复数...为了方便可视化,对结果值象限重新排列,使得原点()对应图像中心。 归一化 归一化目的也是为了便于可视化。...经过运算之后,获得了幅度值,但这些数值仍然超出了图像显示范围(从到一),为此,利用cv::normalize()函数对幅度值进行归一化,取值在到一范围之内。...OpenCV扫描图像、查找表和测量时间(附链接) 独家|OpenCV 1.3 矩阵掩膜操作(附链接) 独家|OpenCV 1.4 对图像操作 独家|OpenCV 1.5 利用OpenCV叠加(混合)

91730
您找到你想要的搜索结果了吗?
是的
没有找到

【从学习OpenCV 4】直方图匹配

经过几个月努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从学习OpenCV 4》。...直方图匹配操作能够有目的增强某个灰度区间,相比于直方图均衡化操作,该算法虽然多了一个输入,但是其变换后结果也更灵活。...示例中目标直方图灰度值2以下概率都为0,灰度值3累积概率0.16,灰度值4累积概率0.35,原图像直方图灰度0时累积概率0.19。...0.19距离0.16距离小于距离0.35距离,因此需要将图像灰度值0匹配成灰度值3。...同样,原图像灰度值1累积概率0.43,其距离目标直方图灰度值4累积概率0.35距离0.08,而距离目标直方图灰度值5累积概率0.64距离0.21,因此需要将图像灰度值1匹配成灰度值4

2.5K30

【从学习OpenCV 4】图像模板匹配

经过几个月努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从学习OpenCV 4》。...由于模板图像尺寸小于待匹配图像尺寸,同时又需要比较两张图像一个像素灰度值,因此常采用在待匹配图像中选择与模板相同尺寸滑动窗口,通过比较滑动窗口与模板相似程度,判断待匹配图像中是否含有与模板图像相同内容...第三个参数相似性矩阵,滑动窗口与模板相似性系数存放在滑动窗口左上角第一个像素处,因此输出相似性矩阵尺寸要小于原图像尺寸,如果image尺寸W×H,模板图像尺寸w×h,则输出图像尺寸(W-w...因为在模板匹配中原图像不需要进行尺寸外延,所以滑动窗口左上角可以移动范围要小于原图像尺寸。无论输入是彩色图像还是灰度图像,函数输出结果都是单通道矩阵。...通过寻找输出矩阵最大值或者最小值得到只是一个像素点,需要以该像素点矩形区域左上角,绘制与模板图像同尺寸矩形框,标记出最终匹配结果。

1.1K10

opencv】带你再学一遍直方图

rectangle( img, //输入图像 pt1, //矩阵一个定点 pt2, //矩阵对角线上另一个顶点 color, //线条颜色(RGB)或亮度(灰度图像...= int(double(img_num[i]) / double(all)*r); //对灰度值i进行归一化 //opencv图像像素坐标系原点在左上角 Point ps(i *...可以看到右下角红色直方图柱形。 因为不明显,所以我们将上面程序第23行归一化高再乘100来扩大,就可以明了看出各灰度值所占比例了。 ? 好了!...opencv给了一个内置函数equalizeHist来帮助我们完成直方图均衡化,这是个无脑函数,有两个输入,一个是原图像,另一个就是与原图像同大小输出图像。我们先看看用该函数均衡化后结果: ?...r0是我们图像某个像素点灰度值,T(r0)就是映射函数,S0就是映射后灰度值。上式中我们r0本来0,映射后为1.33。 再看一个: ?

58520

图像处理-灰度变换-直方图

均衡化算法 直方图均衡化实际也是一种灰度变换过程,将当前灰度分布通过一个变换函数,变换为范围更宽、灰度分布更均匀图像。...通常均衡化选择变换函数是灰度累积概率,直方图均衡化算法步骤: 计算原图像灰度直方图 P(S_k)=n_kn,其中n像素总数,n_k灰度级S_k像素个数 计算原始图像累积直方图 CDF...(灰度图为255)直接应用该方法得到图像灰度直方图 将灰度直方图进行归一化,计算灰度累积概率; 创建灰度变化查找表 应用查找表,将原图像变换为灰度均衡图像 均衡化过程中,必须要保证两个条件...对于每一个T(s)(假设其像素值ss),找到在G(Z)中与其差值最小那个G(z)值(假设对应像素值zz),那么规定化后就把ss变换为zz。...//第一个参数表示输入图像,必须灰度图(8位,单通道图) //第二个参数表示输出图像 //该函数采用如下法则对输入图像进行直方图均衡化: //1:计算输入图像直方图

1.3K20

计算机视觉 OpenCV Android | 特征检测与匹配之角点检测——Harris角点检测与Shi-Tomasi角点检测

API,返回/输出一个与输入图像大小一致Mat对象, 这个Mat对象一个坐标(i,j)都是对应输入图像对应坐标(i,j)像素响应值R, 要先将这个Mat对象归一化, 再循环每一个Mat...---- 引子 前面两章笔记(图像操作、基本特征检测) 主要讲述了OpenCV图像处理模块主要知识与API使用; 本章笔记记录OpenCV中另外一个重要模块——feature2d模块, 该模块主要功能是检测图像特征...blockSize:根据特征值与特征向量计算矩阵M大小,常见取值2。 ksize Sobel:算子梯度计算,常见取值3。 k:系数大小,取值范围0.02~0.04。...Shi与Carlo Tomasi一起提出来, 他们当时所发表论文名为>, 这也是为什么OpenCV中使用同名函数来表示Shi-Tomasi角点检测原因...每个像素点有自己一个响应值R,去全局像素最大RRmax; minDistance:最终返回角点之间最小距离,小于这个距离则角点被丢弃。 mask:默认全部

1.1K30

人脸识别系列一 | 特征脸法

PCA算法大致思路如下: 对图片进行预处理:将图片灰度化,调整到统一尺寸,进行光照归一化等。...将图片转换为一个向量:经过灰度化处理图片是一个矩阵,将这个矩阵每一行连到一起,则可以变为一个向量,将该向量转换为列向量。...将数据集中所有图片都转换为向量后,这些数据可以组成一个矩阵,在此基础上进行均值化处理,就是将所有人脸在对应维度求平均,得到一个平均脸(average face)向量,每一个人脸向量减去该向量,从而完成均值化处理...将经过均值化处理图像向量组合在一起,可以得到一个矩阵。通过该矩阵可以得到PCA算法中协方差矩阵。...在绝大多数情况下,图片数量n远小于图片维度m,故在PCA算法执行过程中,起作用只有m-1个,这个过程简要描述如下:设协方差矩阵如下: 其中矩阵经过均值化后由n张图片组成矩阵,设原始图片向量维度

1.5K40

【从学习OpenCV 4】图像计算与应用

该函数用于计算图像连通域几何矩和中心距以及归一化几何矩。函数第一个参数是待计算矩输入图像或者2D坐标集合。...函数第二个参数是否将所有非0像素值视为1标志,该标志只在第一个参数输入图像类型数据时才会有作用。...函数会返回一个Moments类变量,Moments类中含有几何矩、中心距以及归一化几何矩数值属性,例如Moments.m00是阶矩,Moments.m01和Moments.m10是一阶矩。...parameter:特定于方法参数(现在不支持) 该函数用于实现在图像或者轮廓中寻找与模板图像或者轮廓像素匹配区域。函数一个参数是原灰度图像或者轮廓,第二个参数是模板图像或者轮廓。...函数第三个参数是两个轮廓Hu矩匹配计算方法标志,可以选择参数和每种方法相似性计算公式在表7-6给出。函数最后一个参数在目前OpenCV 4版本中没有意义,可以将参数设置0。

1.4K30

数据读取与数据扩增方法

故其可以与opencv或pillow结合使用,只需要传入像素值矩阵,matplotlib便可以接手处理接下来想要完成操作。...pillow提供了常见图像读取和处理操作,它比opencv更为轻巧,且可以与ipython notebook无缝集成。 使用Image.open()读取图片储存为一个对象,并非是numpy矩阵。...OpenCV OpenCV一个跨平台计算机视觉库。...其发展非常早,拥有众多计算机视觉、数字图像处理和机器视觉等功能,OpenCV是今天介绍得所有图像库中最全面也最强大库,学习成本也相对要高很多。...无论如何,我们神经网络会认为这些是不同图像。从而完成数据扩增(Data Augmentation)操作。 ? 1. 数据扩增为什么有用? 在深度学习模型训练过程中,数据扩增是必不可少环节。

1.3K10

图像边缘检测--OpenCV之cvCanny函数

结论是:实现图像边缘检测,就是要用离散化梯度逼近函数根据二维灰度矩阵梯度向量来寻找图像灰度矩阵灰度跃变位置,然后在图像中将这些位置点连起来就构成了所谓图像边缘(图像边缘在这里是一个统称,包括了二维图像边缘...常见滤波方法主要有高斯滤波,即采用离散化高斯函数产生一组归一化高斯核(具体见“高斯滤波原理及其编程离散化实现方法”一文),然后基于高斯核函数对图像灰度矩阵每一点进行加权求和(具体程序实现见下文)...2.1 对原始图像进行灰度化         Canny算法通常处理图像灰度图,因此如果摄像机获取是彩色图像,那首先就得进行灰度化。...因此,判断C点灰度与这两个点灰度大小即可判断C点是否其邻域内局部最大灰度点。如果经过判断,C点灰度值小于这两个点中一个,那就说明C点不是局部极大值,那么则可以排除C点边缘。...完成非极大值抑制后,会得到一个二值图像,非边缘灰度值均为0,可能为边缘局部灰度极大值点可设置其灰度128。

46020

C++ OpenCV直方图计算

上述直方图概念是基于图像像素值,其实是对图像梯度,每个像素角度、等一切图像属性值,我们都可以建立直方图。这个才是直方图概念真正意义,不过是基于图像像素灰度直方图是最常见。...直方图最常见几个属性: -dmis 表示维度,对灰度图像来说只有一个通道值 dmis=1 -bins 表示在维度中子区域大小划分,bins=256,划分为256个级别 -range 表示值得范围,灰度值范围...代码演示 新建一个项目opencv-0020,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法 ? ? 直方图计算代码 ? ? ? ? ?...参数说明如下: &rgb_planes[0]: 输入数组(或数组集) 1: 输入数组个数 (这里我们使用了一个单通道图像,我们也可以输入数组集 ) 0: 需要统计通道 (dim)索引 ,这里我们只是统计了灰度...Mat(): 掩码( 0 表示忽略该像素), 如果未定义,则不使用掩码 r_hist: 储存直方图矩阵 1: 直方图维数 histSize: 每个维度bin数目 histRange: 每个维度取值范围

2K20

【从学习OpenCV 4】图像读取函数imread

函数用于读取指定图像并将其返回给一个Mat类变量,如果图像文件不存在、破损或者格式不受支持时,则无法读取图像,此时函数返回一个矩阵,因此可以通过判断返回矩阵data属性是否空或者empty()函数是否真来判断是否成功读取图像...该函数第一个参数以字符串形式给出待读取图像地址,第二个函数是设置读取图像形式,默认参数是以彩色图形式读取,针对不同需求可以更改参数,在OpenCV 4.1中给出了13种模式读取图像形式,总结起来分别是以原样式读取...、灰度图读取、彩色图读取、多位数读取、在读取时将图像缩小一定尺寸等形式读取,具体可选择参数及作用在表2-3种给出,这里需要指出是,将彩色图像转成灰度图通过编解码器内部转换,可能会与OpenCV程序中将彩色图像转成灰度结果存在差异...从学习OpenCV 4往期推荐 【从学习OpenCV 4】Windows系统中安装OpenCV 4 【从学习OpenCV 4】Ubuntu系统中安装OpenCV 4 【从学习OpenCV 4...】opencv_contrib扩展模块安装 【从学习OpenCV 4】Mat类介绍 【从学习OpenCV 4】Mat类构造与赋值 【从学习OpenCV 4】Mat类支持运算 【从学习OpenCV

3.1K20

数字图像处理知识点总结概述

归一化直方图: 1.1直方图对比: 方法描述:有两幅图像patch(当然也可是整幅图像),分别计算两幅图像直方图,并将直方图进行归一化,然后按照某种距离度量标准进行相似度测量。...基于NMF分解方法:将非负矩阵分解可以体现图像主要信息矩阵与系数矩阵,并且可以对基矩阵赋予很好解释,比如对人脸分割,得到基向量就是人“眼睛”、“鼻子”等主要概念特征,源图像表示矩阵加权组合...可以把它看成是一个二维浮点型数组,二维矩阵,或者单通道浮点型图像。...在灰度直方图均衡化处理中对图像映射函数可定义:g = EQ (f),这个映射函数EQ(f)必须满足两个条件(其中L图像灰度级数): (1)EQ(f)在0≤f≤L-1范围内是一个单值单增函数。...所以,要使用开运算去除目标外孤立点。 4.9、为什么闭运算可以去除目标内孔? 目标内孔,属于周围都是值1,内部空洞值0.目的是去除周围都是1像素中间0值。

1.2K20

纹理特征提取方法:LBP, 灰度共生矩阵

具体步骤如下: 图像划分若干N × N图像子块(如16 × 16),计算每个子块中每个像素LBP值; 对每个子块进行直方图统计,得到N × N图像子块直方图; 对所有图像子块直方图进行归一化处理...; 连接所有子块归一化直方图,便得到了整幅图像纹理特征。...即当灰度图像灰度值阶数N时,灰度共生矩阵N × N矩阵; 2....以上述情景2中矩阵例: 原矩阵: [图片] 归一化后,矩阵形式变为: [图片] B....滑动窗口移动 一个滑动窗口计算结束后,该窗口就可以移动一个像素点,形成另一个小窗口图像,重复进行上一步计算,生成新窗口图像共生矩阵和纹理特征值; 以此类推,滑动窗口遍历完所有的图像像素点后,整个图像就形成了一个由纹理特征值构成一个纹理特征值矩阵

6.1K90

OpenCV线性滤波(均值滤波,方框滤波,高斯滤波)

即以当前像素点中心,求窗口内所有灰度和,以其平均值作为中心像素新灰度值。 均值滤波有平均均值滤波和加权均值滤波。...均值滤波可以模糊图像从而得到图像大致描述。 方框滤波 方框滤波和均值滤波原理是类似的,因为均值滤波是方框滤波归一化表现。在OpenCV中,方框滤波使用模板如下: ?...高斯滤波就是对整幅图像进行加权平均过程,每一个像素点值,都由其本身和邻域内其他像素值经过加权平均后得到。...高斯滤波具体操作是:用一个模板(或称卷积、掩模)扫描图像一个像素,用模板确定邻域内像素加权平均灰度值去替代模板中心像素点值。 一维高斯分布 ? 通常我们在使用时候都取标准正态分布。...; 参数2:输出图像; 参数3:卷积核大小; 参数4:表示高斯核函数在X方向标准偏差; 参数5:表示高斯核函数在Y方向标准偏差;如果sigmaY,则将其设置等于sigmaX;如果两个都为

4.6K10

【从学习OpenCV 4】图像像素统计

经过几个月努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从学习OpenCV 4》。...我们可以将数字图像理解成一定尺寸矩阵矩阵中每个元素大小表示了图像中每个像素亮暗程度,因此统计矩阵最大值,就是寻找图像灰度值最大像素,计算平均值就是计算图像像素平均灰度,可以用来表示图像整体亮暗程度...这里我们见到了一个数据类型Point,该数据类型是用于表示图像像素坐标,由于图像像素坐标轴以左上角坐标原点,水平方向x轴,垂直方向y轴,因此Point(x,y)对应于图像行和列表示Point...第二到第五个参数分别是指向最小值、最大值、最小值位置和最大值位置指针,如果不需要寻找某一个参数,可以将该参数设置NULL,函数最后一个参数是寻找最值得掩码矩阵,用于标记寻找上述四个值范围,参数默认值...int rows = 0 3. ) cn:转换后矩阵通道数。 rows:转换后矩阵行数,如果参数,则转换后行数与转换前相同。 ?

1.7K10
领券