matlab中的细节
- 进行频域处理时编写自己的滤波器时,使用如下语法较好,网上很多的都是用循环来实现该滤波器,matlab用自带矩阵运算代码好看的多
Butterworth bandpass fitler
H(u,v)=11+[DWD2−D20]2
[M,N]=size(Image);
%创建距离矩阵
u=0:(M-1);
v=0:(N-1);
idx=find(u>M/2);
u(idx)=u(idx)-M;
idy=find(v>N/2);
v(idy)=v(idy)-N;
[U,V]=meshgrid(u,v);
%距离实现四阶Butterworth滤波
D0=0.05*N;
D=U.^2+V.^2;
numerator=D.^0.5*W;
denominator=D-D0^2;
H=1./(1+(numerator./denominator).^8);
%1./这里调试了一会儿= =,蠢死了
H=1-H;
mesh(fftshift(H)),axis off;
- matlab 中提取struct结构体数组里某一维,可以
struct2cell
然后cell2mat
,再提取某行就ok,此时会有多余的维度比如1x1x18这样的矩阵,使用squeeze(a)
这个函数就可以剔除了。 - 提取照片中pattern(棋盘格)板子上的坐标,matlab有自带函数,
detectCheckerboardPoints
查一下就好了。