- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.
.
数字图像处理
实验报告
院系:
学号:
XX:
指导教师: 完成时间:
XXXXX
XXXXXXX
XXX
XX XX
2020.02.02
.jz*
.
.
题目一:
(1)将宽为 2n 的正方形图像,用 FFT 算法从空域变换到频域,并用频域图像的
模来进展显示;
(2)使图像能量中心,对应到几何中心,并用频域图像的模来进展显示;
(3)将频域图象,通过 FFT 逆变换到空域,并显示。
该题实现环境为操作系统: Windows 10 操作系统;编程环境: VS2013;部核
心处理算法库: OpenCV。
此题目的具体实现过程及其展示如下所示:
#include opencv2/imgproc.hpp
#include opencv2/highgui.hpp
#include iostream
usingnamespacv;
usingnamespactd;
int main()
{
// 以灰度模式读取原始图像并显示
Mat srcImage= imread(lena.png,0);
if (srcImage.empty())
{
cout 翻开图像失败! endl;
- .jz*
.
.
return-1;
}
imshow(原始图像 , srcImag;
// 将输入图像延扩到最正确的尺寸,边界用 0 补充
int m = getOptimalDFTSize(srcImage.rows);
int n = getOptimalDFTSize(srcImage.cols);
// 将添加的像素初始化为 0.
Mat padded;
copyMakeBordesrcImage, padded,0, m - srcImage.rows,0, n - srcImage.cols,
BORDER_CONSTANT , Scala:r:all(0));
// 为傅立叶变换的结果 (实部和虚部 )分配存储空间。
// 将 planes数组组合合并成一个多通道的数组 plexI
Mat plane]={ Mat_ float(padded), Mat::zeros(padded.siz), CV_32F)};
Mat plexI;
merge(planes,2, plexI);
// 进展就地离散傅里叶变换
dft(plexI, plexI);
// 将复数转换为幅值,即 = log(1 + sqrt(Re(DFT(I))^2 + Im(DFT(I))^2))
split(plexI , plane;
// 将多通道数组 plexI 别离成几个单通道数组, planes[0] = Re(DFT(I),
//planes[1] = Im(DFT(I))
- .jz*
.
.
magnitudplanes[0], planes[1], planes[0]);// planes[0] = magnitude
Mat magnitudeImage= planes[0];
// 进展对数尺度 (logarithmic scale缩)放
magnitudeImage+= Scalar::all(1);
log(magnitudeImage,magnitudeImag;// 求自然对数
// 剪切和重分布幅度图象限
// 假设有奇数行或奇数列,进展频谱裁剪
magnitudeImage= magnitudeImag(eRect(0,0, magnitudeImage.cols -2,
magnitudeImage.rows - 2));
// 重新排列傅立叶图像中的象限,使得原点位于图像中心
int cx = magnitudeImage.cols/ 2;
int cy = magnitudeImage.rows /
原创力文档


文档评论(0)