如何用matlab 函数图像给图像加一个5*5的窗,

查看: 7178|回复: 13|关注: 0
如何给一副图像加窗?
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
初学MALAB,弱弱问一句,我想给一副图像加汉明窗,具体程序该怎么写呢?
<h1 style="color:# 麦片财富积分
关注者: 7
hanning windows?
是hanning窗吗?
指令时hann(size)
<h1 style="color:# 麦片财富积分
是的,hanning()这个函数是不是1维的,我试了好几次都报错,如果加的话,二维的hanning窗是不是在时域和我源图像相卷积啊
<h1 style="color:# 麦片财富积分
关注者: 7
哦,这个简单
假设一幅图像的size = 128* 256
那么二维的窗口就用两个向量的矩阵乘法就能实现
win = hann(128) * hann(256)' ;& &% 注意有个向量的转置
图像的windows直接用点乘就可以
fwin = f .*
<h1 style="color:# 麦片财富积分
恩,刚也这样做了,对的~谢谢你哦~呵呵:)
<h1 style="color:# 麦片财富积分
关注者: 3
回复 4# zxykook 的帖子
很想知道您这个方法的原理,可是看了半天也没看出来,可以麻烦您解释一下吗?谢谢!
<h1 style="color:# 麦片财富积分
关注者: 7
不太明白你不明白的地方
1. 是hanning窗的数学模型不懂?
& &hanning window的计算式通过一个cos函数来的。在Matlab的hann帮助里有。
2. 是两个相量的乘法不懂?
& &二维的矩阵(M*N)的矩阵,可以由一个M行1列 和一个1行N列的相量相乘(矩阵乘法不用说了吧)得到。 二维的hanning window就是这样做的。
<h1 style="color:# 麦片财富积分
关注者: 3
回复 7# zxykook 的帖子
谢谢您神速地回帖
比如我有一个128*256的矩阵,我想把每一行都乘上128点的hanning窗,是不是也是您这样的解法呢?
<h1 style="color:# 麦片财富积分
关注者: 7
估计你弄错了,应该是“每一行乘上256点的hanning窗”才对吧。
如果这样的话,矩阵在横方向的两头就被削尖了,而纵方向没有。
你自己matlab一下,用mesh,或者surf看看就明白了
<h1 style="color:# 麦片财富积分
关注者: 3
回复 9# zxykook 的帖子
刚才写错了,应该是256点hann……
是这样的,我想把一个语音行向量分帧后成的矩阵中的每一帧(这个分帧函数把每一帧都作为矩阵的一行)都加窗,而不关注列是否加窗。
如果是这样的话,应该就不能用您所给的这种方法了。
可是矩阵中有什么算法才能每一行都乘上一个向量呢?……苦手
Powered by查看: 4006|回复: 2|关注: 0
如何实现图像加窗傅里叶变换
<h1 style="color:# 麦片财富积分
新手, 积分 15, 距离下一级还需 35 积分
求图像频谱,图像大小256*256,加窗傅里叶变换,不知道这个二维的窗怎么做
用的是matlab编程
我写了代码,但是感觉不对
%比如生成hann窗
w=hann(256);
[M,N]=meshgrid(w,w);
Win_han=M.*N;
%图像加窗IMG.*Win_han
f=fft2(IMG.*Win_han,256,256);
F=fftshift(f);
NPS=F.*conj(F)/(256*256);
另外其他窗怎么加,比如三角窗、海明窗,汉宁窗,barret窗,welch窗,请高手指点!
<h1 style="color:# 麦片财富积分
要取窗函数用window函数即可。
加窗的步骤是正确的,没有问题!
<h1 style="color:# 麦片财富积分
关注者: 7
给出一个二维Hann窗的例子
由于hann函数只能得到一个1维的窗。所以要用一个矩阵乘法
f1 = imread('deglena00000.tif');
[N1,N2] = size(f1);
W = hanning(N1) * hanning(N2)';& && && && && && && &
f1_fft = fft2(W.*double(f1));
PS: 你的NPS(normalized cross power sepctrum)计算有误
Powered by本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 matlab 函数图像 的文章

 

随机推荐