博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Matlab中psf2otf()函数在opencv中的实现
阅读量:5234 次
发布时间:2019-06-14

本文共 1488 字,大约阅读时间需要 4 分钟。

在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)

下面是对该函数的测试程序:

int main(){    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

你可能感兴趣的文章
生活中的五个球
查看>>
android.os.NetworkOnMainthreadexception处理
查看>>
数据库复习⑥
查看>>
jQuery的中文乱码问题[转]
查看>>
bzoj 2005 & 洛谷 P1447 [ Noi 2010 ] 能量采集 —— 容斥 / 莫比乌斯反演
查看>>
P1631 序列合并
查看>>
Luogu_4886 快递员
查看>>
内存优化文章链接
查看>>
ext4.0 代理 的使用
查看>>
数据检查约束类型和语法
查看>>
AngularJS实战之路由ui-view
查看>>
使用jQuery+huandlebars防止编码注入攻击
查看>>
C#的托管与非托管大难点
查看>>
[转]HTTPS简谈
查看>>
(图片)jsp上传图片,进行缩放处理
查看>>
集合类List,set,Map 的遍历方法,用法和区别
查看>>
HDU-2577-How to Type
查看>>
java日志框架之logback——布局详细说明书地址
查看>>
Java Selenium (十二) 操作弹出窗口 & 智能等待页面加载完成 & 处理 Iframe 中的元素...
查看>>
Scala入门系列(十):函数式编程之集合操作
查看>>