OpenCV C++使用傅里叶谱和相角重建图像

关于傅里叶谱和相角的进一步说明:

在频域下,原始图像经过dft变换后,可得到两个矩阵,分别是复数的实部和虚部;Z=A+Bi

在复数坐标系下,某一点像素可由值和角度表示;

如果只保留相角信息,则只需将r=1,即实部和虚部同时缩小r倍;

如果只保留幅值信息,则只需将a值和b值同时设置为r/\sqrt{2}  都设置为45,135,225,315度

如果使用图像a的幅值图像b的相角,则按下图计算

distance1=\sqrt{r1^{2} + i1^{2}}

distance2=\sqrt{r2^{2} + i2^{2}}

distance1/distance2 = r/r2 = i/i2

同理,用a的相位和b的幅值亦可得到;

按照书中妇女图像4.27和白色矩形4.24(上篇文章实验图片)实验

4.27妇女原图和相位图                                             

使用幅值和相角分别重建图像:

使用妇女的相角和矩形的谱   -------    矩形的相角和妇女的谱   分别重建图像:

由此可见:

相角是描述图像中关键的形状特性的;谱(幅值)是描述图像灰度信息的

代码实现:

#include "opencv2/opencv.hpp"

using namespace cv;

//将幅度归一,相角保持不变
void one_amplitude(Mat &complex_r, Mat &complex_i, Mat &dst )
{
    Mat temp[] = {Mat::zeros(complex_r.size(),CV_32FC1), Mat::zeros(complex_r.size(),CV_32FC1)};
    float realv=0.0,imaginv&#

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dwyane05

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值