有一个matlab的函数文件,但是不知道每一步的意思,求解释
发布网友
发布时间:2022-09-30 02:19
我来回答
共1个回答
热心网友
时间:2024-10-22 11:16
function [corr] = corrfft(f, g)
%计算相关系数,其中f和g为两幅图像,本函数的作用是计算f和g的相关系数
sze = size(f);%%得到图像f的尺寸,sze共2个元素,一个是行数,一个是列数
sze = sze(1);%%sze为图像f的行数
f = flipud(fliplr(f));%%相当于对图像进行逆时针180°旋转
ffft = fft2(f, sze*2, sze*2);
gfft = fft2(g, sze*2, sze*2);%%对图像进行二维傅里叶变换,(sze*2)*(sze*2)控制图像大小,如果图像f和g的大小小于(sze*2)*(sze*2)的话就给其补0,让其尺寸增大为(sze*2)*(sze*2),最终返回结果的尺寸也是(sze*2)*(sze*2)
根据计算相关系数的公式,可以看出是进行二维卷积,所以转换到频率域就是直接相乘
yout = ifft2(ffft.*gfft);%逆变换,yout就是图像ffft和图像gfft的相关系数函数,由于返回图像的尺寸是(sze*2)*(sze*2)
假设sze=256
startpt = sze/2 + 1;%%应该从129开始,即sze/2 + 1
endpt = sze*2 - sze/2+1;%%到384
h = yout(startpt,:);%%令h=yout中的129行
for i = (startpt+1):endpt
h = [h; yout(i,:)];%%把其余的130-384行全部赋给h
end%%上面主要是处理行,下面就是处理列
yout = h(:,startpt);%%把h的第129列赋给yout
for i = (startpt+1):endpt
yout = [yout h(:,i)];%%其余的130-384列赋给youty最终就是
end
y = yout;%%最终的y就是256*256大小
corr = max(max(y));%%找到相关系数函数矩阵中的最大值
求matlab详细解释下这个程序的每一步意思。特别是那些诗句代表了什么...
全局变量定义 global_definitions; % 默认参数配置 number_of_samples = 100; number_of_blocks =24; block_size = 20; overlap_size = 8; output_size = number_of_blocks*block_size - (number_of_blocks-1)*overlap_size; % 载入纹理信息 SOURCE = load_multitexture; % 尺寸信息 [source....
关于matlab的问题 t=0:0.01:2*pi; x=exp(i*t); y=[x;2*x;3*x]'; p...
t=0:0.01:2*pi; %用于建立0到2*pi的一行N列的矩阵,其中步长为0.01,如果不写,默认情况是1 x=exp(i*t); %将指数e的i*t次方赋值给x y=[x;2*x;3*x]'; %建立一个三列x行的矩阵 plot(y); %将y的值成图
谁能帮我解释一下这个程序每一步的意思,谢谢啊,尤其是那个lessthan函数...
首先要知道每个字符串都对应于一个ASCII编码,也就是码数不一样比如空格对应的ASCII十进中数为32,也就是first[32]的位置会存储的代表空格统计到的个数,然后32这个位置数按字符输出的话就是一个空格键,理解这个关键程序也就不难啦;include <stdio.h> //调用stdio库 include <string.h>//调用s...
...这段程序每一步是啥意思啊,能不能帮我解释一下,求帮忙,谢谢!_百度知...
第一个dowhile循环不断将原数字对16取余,得到转为16进制后每一位上的数字,存到数组c里面,直到原数字已经变为0。然后for循环将数组c里面的数字转换成对应的十六进制字母。
matlab中的disp是什么意思?
disp()是Matlab中用于在命令窗口输出消息的函数。它可以输出字符串、数字、矩阵等等。disp()的主要作用有两个:一是输出程序执行过程中的信息,方便程序员查看每一步的结果和过程;二是向用户输出程序的结果,让用户知道程序的运行输出。使用disp()函数输出消息时可以使用一些特殊的符号和语法,以便更好地...
关于求极限,请详细地解释例30中的每一步。也请解释一下(x,y)→(0,0...
见图
问两道有关c语言字符指针的问题,请将程序每一步的意思告诉我,谢谢...
第一题答案:B。理由:*s与*t都是取出此时地址存储的值,while()语句里面的意思是,当指针s与t都不为空并且s指向的值等于t指向的值。。。当s或者t为空或者t与s指向的值不同时,while()结束,返回此时s指向的值减去t指向的值,所以为比较两个字符串的大小;第二题答案:A。理由:x的地址赋值...
求解释下下面单片机程序的每一步是什么意思,谢谢了
既然你还没学汇编,我就不用专业术语给你解释了,用好理解的方法帮你简单解释下,如果有必要我们再讨论 org 0000h ;表示下一条指令的地址是0000h ljmp 0030h ;跳转到30h处的指令 org 0030h cword:mov a,#0c5h ;cword:人为定义的标号,mov a,#0c5h :把0c5h放入a寄存器里 ...
语音信号特征提取用mfcc提取完后的图看不懂,matlab程序,求解释一...
应该是用n个滤波器滤波之后,计算出来的梅尔频谱倒谱系数全部画在一个图中了,12阶就是提取的前12个MFCC参数
matlab lsqcurvefit得出的x的值那2个数到底是什么意思~求解释清楚点...
函数lsqcurvefit返回的数是代拟合函数的参数,不一定是两个数。举例来说,假如你观察数据,打算用下面的函数关系来进行拟合:y = A + B*exp(C*t)其中A、B、C即为拟合参数,也就是调用函数lsqcurvefit应该返回的数 特别提醒,有两点很重要:(1) 所选拟合函数的形式是否适合相应的数据;(2) 拟合...