matlab中psf2otf作用,Matlab中psf2otf()函数在opencv中的实现
在Matlab中有个psf2otf()函数,可以将小尺寸的点扩散函数,扩大尺寸,并作二维傅里叶变换,opencv中没有这个函数,所以编了这么个函数:
/*****************************
Mat psf2otf(const Mat&psf, Size outSize=Size(3,3))
参数说明:
psf——输入的点扩散函数;
outSize——是输出otf的尺寸;
在本程序中,还调用了circShift()函数,该函数具体参见:
http://www.cnblogs.com/phoenixdsg/p/8425336.html
本程序中,还调用了mymax()函数和myMagnitude()函数,难度不大自己想办法吧。
*******************************/
下面是psf2otf()函数的定义:
{
Mat otf;if(countNonZero(psf)&&!psf.empty())
{
Size psfSize=psf.size();
Size paddSize=outSize-psfSize;
copyMakeBorder(psf,otf,paddSize.height/2,paddSize.height/2,
paddSize.width/2 ,paddSize.width/2,
BORDER_CONSTANT,Scalar(0));
circShift(otf,-otf.size().height/2,-otf.size().width/2);
otf=fft(otf);//计算psf的元素个数
int nElem=psf.cols*psf.rows;double nOps=0;int nfft=nElem/psfSize.width;
nOps+=nfft+psfSize.width*log2(psfSize.width)*nfft;
nfft=nElem/psfSize.height;
nOps+=nfft+psfSize.width*log2(psfSize.height)*nfft;//将复数otf分解成实部real和虚部imagin
Mat planes[2];
split(otf,planes);double imagin_max=mymax(abs(planes[1]));double mag_max=mymax(myMagnitude(otf));if((imagin_max/mag_max)
}returnotf;
}
下面是对该函数的测试程序:
intmain()
{
Mat mat=(Mat_(3,3)<<
0,-1,0,-1,4,-1,0,-1,0);
Mat otf=psf2otf(mat);
cout<
}
输出结果如下:
原文:https://www.cnblogs.com/phoenixdsg/p/9058044.html
matlab中psf2otf作用,Matlab中psf2otf()函数在opencv中的实现相关推荐
- abs在c 语言中的作用是什么,abs()函数以及C ++中的示例
C ++abs()函数 abs()函数是cmath标头的库函数,用于查找给定数字的绝对值,它接受一个数字并返回绝对值. 注意: abs()函数也在头文件中声明,但它与整数值兼容,在C ++ 11中,a ...
- python中rand函数是什么意思_科学网-Python中*和**作用及随机数产生函数 np.random.rand()/numpy.random.unifo...-张伟的博文...
[第一部分] Python中的 * 和 ** ,能够让函数支持任意数量的参数,它们在函数定义和调用中,有着不同的目的! 一. 打包参数 * 的作用:在函数定义中,收集所有位置参数到一个新的元组,并将整 ...
- matlab数学建模作用,matlab数学建模基础
1.数据的导入和保存 1.1数据的导入 matlab中导入数据的函数通常为load load matlab.mat matlab中常用的导入数据的函数为importdata,用法如下: importe ...
- matlab双引号作用,matlab中单引号(')的含义是什么,以及如何将其改为python
简短回答: MATLAB中的'算子是矩阵(共轭)转置算子.它使矩阵在维度上翻转,并得到矩阵的复共轭(第二部分是使人困惑的部分),简单的回答是,在Python中,a'的等价物是np.atleast_2d ...
- 图像识别中距离变换的原理及作用详解,并附用OpenCV中的distanceTransform实现距离变换的代码
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 距离变换的定义是计算一个图像中非零像素点到最近的 ...
- c语言中怎么调用自己定义的函数,c语言中怎么调用自己定义的函数?
一,函数调用的一般形式为: 函数名(实参列表); 实参可以是常数.变量.表达式等,多个实参用逗号,分隔. 在C语言中,函数调用的方式有多种,例如: 在函数调用中还应该注意的一个问题是求值顺序的问题.所 ...
- 桌面中计算机作用,云桌面技术在计算机机房管理中的作用研究
林朝晖 摘 要:对于探讨云桌面技术在计算机机房管理中作用,文章首先分析云桌面技术的内涵和应用优势,然后分析云桌面技术在计算机机房管理中的作用,包括:设计思路作用.系统虚拟化软件和软件服务云的作用. ...
- matlab里subsystem作用,matlab中的subsystem是什么,怎么建立?
是MATLAB子系统!请点击以下地址查看 http://www.91xiu.com/edu/f/2008/12/29/4289.shtmlMatlab 子系统的创建.装帧及受控执行 2008-10-2 ...
- python中round作用,python的round函数的解释
0x01 round的疑问 简单测试round函数,有些情况会让你很疑惑. 为啥四舍五入有时候不起作用, 这涉及到的底层浮点数保存的问题.学习过逆向或者汇编的话, 都知道浮点数的精度问题. 0x02 ...
- fclose在c语言中的作用,c语言fcloseall函数用法实例介绍
c语言fcloseall函数用法实例介绍.fcloseall函数的返回值,函数 fcloseall() 将所有打开的流与其底层的文件或功能集合关闭.任何缓冲的数据都将首先被写入,使用 fflush(3 ...
最新文章
- Comperhend the OP-sizeof deeply!
- BLE 绑定流程(转自襄坤在线)
- HBase Shell基本操作
- 机器学习A-Z~简单线性回归
- java equals比较_Java中equals()和==的比较
- Html5中Canvas(画布)的使用
- 源码安装 nginx 并设置为 service
- latex放一张大图在作者和正文之间
- linux ftp下载geo,GEO数据下载及处理详细过程
- WebRTC-NACK、Pacer和拥塞控制和FEC
- Excel 简单线性回归图表制作
- 在c语言中出现的int错误类型,【揭秘】C语言类型转换时发生了什么?
- spicy(三)compiling analyzers
- vmware 网络不可达
- python开发对电脑要求高吗_学python对电脑配置有要求么
- 实验室设计SICOLAB第三方检测中心实验室设计
- keep-alive原理
- 进化算法--遗传算法
- 【ASP.NET】Global.asax与Web.config
- 关于Chrome浏览器瀑布流
热门文章
- C++ Concurrency in Action 2nd Edition
- 顾沛《抽象代数》2.0环、子环和商环习题解答
- MySQL数据库W版与L版转换_mysql博文总结
- ATM(异步传输模式)
- css html文字淡入淡出,Css淡入淡出
- Centos6 安装yum
- java 将pdf文件转成高清图片(多张合并成一张)
- [INFO1110课件讲解 一] USYD悉尼大学INFO1110 ED lessons Week1 课件 作业 assignment讲解
- postfix邮件服务器迁移,记一次搭建Postfix邮件服务器(上篇)
- 爱情 何为爱情(搜集)