【小白】Open-CV 学习笔记 -5.5.2 离散傅里叶变换相关函数详解
目录
- 1.dft()函数
- 2.返回DFT最优尺寸大小:getOptimalDFTSize()函数
- 3.扩充图像边界:copyMakeBorder()函数
- 4.计算二维矢量的幅值:magnitude()函数
- 5.计算自然对数:log()函数
- 6.矩阵归一化:normalize()函数
1.dft()函数
dift函数的作用是对一维或二维浮点数数组进行正向或反向离散傅里叶变换。
函数格式:
void dift(InputArray src, OutputArray dst, int flags=0, int nonzeroRows=0)
参数说明:
第一个参数,InputArray src,输入矩阵,可以为实数或者虚数
第二个参数,OutputArray dst,函数调用后的结果存储在这里,其尺寸和类型取决于标识符,即第三个参数flags
第三个参数,int flags,转换的标识符,有默认值0,取值可以为表6.1中标识符的结合
第四个参数,int nonzeroRows,默认值0。当此参数设为非零时(最好是取值为想要处理的那一行的值,比如C.rows),函数会假设只有输入矩阵的第一个非零行包含非零元素(没有设置DFT_INVERSE标识符),或只有输出矩阵的第一个非零行包含非零元素(设置了DFT_INVERSE标识符)。这样函数就可以对其他进行高效的处理,以节省时间开销。
2.返回DFT最优尺寸大小:getOptimalDFTSize()函数
getOptimalDFTSize()函数返回给定向量尺寸的傅里叶最优尺寸大小。因为当图像的尺寸是2、3、5的倍数时,计算速度最快。因此为了提高离散傅里叶变换的运行速度,需要扩充图像,具体扩充多少由此函数计算。
函数格式:
int getOptimalDFTSize(int vecsize)
参数说明:
int vecsize,向量尺寸,即图片的rows、cols
3.扩充图像边界:copyMakeBorder()函数
copyMakeBorder()函数能够扩充图像边界
函数格式:
void copyMakeBorder(InputArray src, OutputArray dst, int top, int bottom, int left, int right, int borderType, const Scalar& Value=Scalar())
参数说明:
第一个参数,InputArray src,输入矩阵,即源图像,填Mat类的对象即可
第二个参数,OutputArray dst,函数调用后的结果存储在这里,需要和源图像有一样的尺寸和类型,且size应该为Size(src.cols+left+right, src.rows+top+bottom)
接下来的4个参数分别为int top,int bottom,int left,int right,分别表示在源图像上各扩充多少个像素,如top=2,bottom=2,left=2,right=2表示在源图像上的上下左右各扩充两个像素宽度的边界。
第七个参数,borderType,边界类型,常见取值为BORDER_CONSTANT。
第八个参数,const Scalar& value,有默认值Scalar(),可以理解为默认值为0。当borderType取值为BORDER_CONSTANT,这个参数表示边界值。
4.计算二维矢量的幅值:magnitude()函数
magnitude()函数用于计算二维矢量的幅值。
函数格式:
void magnitude(InputArray x, InputArray y, OutputArray magnitude)
参数说明:
第一个参数,InputArray x,表示矢量的浮点型X坐标值,即实部
第二个参数,InputArray y,表示矢量的浮点型Y坐标值,即虚部
第三个参数,OutputArray magnitude,输出幅度值,和第一个参数x有着一样的尺寸和类型
magnitude()函数原理:
5.计算自然对数:log()函数
傅里叶变换的幅度范围大道不适合在屏幕上显示。高值在屏幕上显示为白点,低值为黑点,高低值的变化无法有效分辨。为了在屏幕上凸显出高低变化的连续性,可以用对数尺度类替换线性尺度,公式如下:
log()函数的功能是计算每个数组元素绝对值的自然对数
函数格式:
void log(InputArray src, OutputArray dst)
参数说明:
第一个参数,InputArray src,输入图像
第二个参数,OutputArray dst,输出图像,得到的绝对值
log()函数原理如下:
C是一个很大的负数
6.矩阵归一化:normalize()函数
函数格式:
void normalize(InputArray src, OutputArraydst, double alpha=1, double beta=0, int norm_type=NORM_L2, int dtype=-1,InputArray mask=noArray() )
参数说明:
第一个参数,InputArray src,输入矩阵,即源图像,填Mat类的对象即可
第二个参数,OutputArray dst,函数调用后的结果存储在这里,需要和源图像有一样的尺寸和类型
第三个参数,double alpha,规划后的最大值,有默认值1
第四个参数,double beta,规划后的最小值,有默认值0
第五个参数,int norm_type,归一化类型,有NORM_INF, NORM_L1, NORM_L2和NORM_MINMAX可选,默认值NORM_L2
第六个参数,int dtype,默认值-1。负值时,输出矩阵与src同样类型,否则它和src有同样通道数,且图像深度为CV_MAT_DEPTH(dtype)
第七个参数,InputArray mask,可选的操作掩膜,默认值noArray()
【小白】Open-CV 学习笔记 -5.5.2 离散傅里叶变换相关函数详解相关推荐
- Ext.Net学习笔记22:Ext.Net Tree 用法详解
上面的图片是一个简单的树,使用Ext.Net来创建这样的树结构非常简单,代码如下: <ext:TreePanel runat="server"><Root> ...
- python列表和元组的应用_python学习笔记之列表(list)与元组(tuple)详解
前言 最近重新再看python的基础知识,感觉自己还是对于这些知识很陌生,需要用的时候还是需要翻书查阅,还是先注重基础吧--我要重新把python的教程阅读一遍,把以前自己忽略的部分学习,加强练习和记 ...
- 【Azure 架构师学习笔记】-Azure Data Factory (4)-触发器详解-事件触发器
本文属于[Azure 架构师学习笔记]系列. 本文属于[Azure Data Factory]系列. 接上文[Azure 架构师学习笔记]-Azure Data Factory (3)-触发器详解-翻 ...
- 【matcovnet学习笔记】objective,top1error,top5error详解
[matcovnet学习笔记]objective,top1error,top5error详解 排名前1和前5的错误率是衡量某些解决方案成功与否的重要单位 ,要理解这三个概念,关键是要看懂下面这个多类误 ...
- 【C++】【学习笔记】【递归与回溯问题详解与例题】排列问题;组合问题;二维平面回溯;flood fill问题;搜索问题(八皇后);
目录 七.递归和回溯 1.回溯 2.回溯应用 - 排列问题 2.回溯应用 - 组合问题 3.回溯应用 - 二维平面 4.回溯应用 - floodfill算法 问题 4.回溯应用 - 搜索问题 - 八皇 ...
- [学习笔记 ]IAR的链接配置.icf文件详解——RT1052芯片的链接文件
本文主要通过以下几个部分解释IAR中的链接配置icf文件: 1.参考解析IAR的ILink链接器icf配置文件介绍icf文件作用以及icf文件主要内容: 2.介绍icf常使用的命令 3.RT1052芯 ...
- Flutter学习笔记08-Padding Row Column Flex Expanded组件详解
学习视频地址:https://www.bilibili.com/video/BV1S4411E7LY?p=27&spm_id_from=pageDriver&vd_source=cee ...
- Apollo星火计划学习笔记第六讲——Apollo感知模块详解实践2感知基础
Apollo学习笔记 零.目录 一.Apollo感知框架介绍 1.1 检测和分类 1.2 跟踪 1.3 感知模块代码结构 1.3.1 感知模块入口 二.Lidar障碍物检测.红绿灯识别 2.1 Lid ...
- Apollo星火计划学习笔记——第四讲Part2 Apollo定位模块详解与实践
引言 内容概要,学习目标 了解自动驾驶定位的作用 熟悉常见的自动驾驶定位方法 掌握整个Apollo定位模块框架 独立开发定位模块 1. 定位的作用 1.1 定位及其相关知识点 定位: 获取当前的地理位 ...
最新文章
- LeetCode刷题记录13——705. Design HashSet(easy)
- 软件工程技术基础-(软件复用技术)
- directory not found for option
- (0045) iOS 开发之MBProgressHUD 源码学习
- 人脸属性迁移学习笔记
- python画五角星填充不同颜色_Python绘制分形树(一)
- python企业级框架_Python六大开源框架对比:Web2py略胜一筹
- Eclipse使用时的一些小积累
- 树莓派html5播放器,树莓派|5 个很适合在课堂上演示的树莓派项目
- 计算机网络 | IP协议相关技术与网络总结 :DNS、ICMP、DHCP、NAT/NAPT、通信流程
- 文献记录(part89)--I-k-means-+:An iterative clustering algorithm based on an enhanced k -means
- oracle文件IO错误,ORA-01114: 将块写入文件 16 时出现 IO 错误 (块 # 1734107)
- 韩顺平 php 聪明的小猫代码,聪明的小猫作文600字
- Asp.Net递归遍历页面控件实例
- H3CSE园区-STP
- 用户生命周期分析全攻略
- 2021金九银十面试季!java开发微信公众号图片上传功能
- ICS课程学习(1)——概述
- AQS抽象队列同步器原理详解
- java语言程序设计与数据结构基础篇,2万字20个项目实例