⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gauss.m

📁 包括图像分析的四部分代码:matlab扩散和高斯函数
💻 M
字号:
function Ig=gauss(I,ks,sigma2)%private function: gauss (by Guy Gilboa):% Ig=gauss(I,ks,sigma2)% ks - kernel size (odd number)
% sigma2 - variance of Gaussian

[Ny,Nx]=size(I);
hks=(ks-1)/2;  % half kernel size
if (Ny<ks)   % 1d convolutin
	x=(-hks:hks); 
	flt=exp(-(x.^2)/(2*sigma2));  % 1D gaussian	flt=flt/sum(sum(flt));  % normalize   % expand
   x0=mean(I(:,1:hks)); xn=mean(I(:,Nx-hks+1:Nx));	eI=[x0*ones(Ny,ks) I xn*ones(Ny,ks)];	Ig=conv(eI,flt);	Ig=Ig(:,ks+hks+1:Nx+ks+hks);  % truncate tails of convolution   
else
   %% 2-d convolution	x=ones(ks,1)*(-hks:hks); y=x'; 
	flt=exp(-(x.^2+y.^2)/(2*sigma2));  % 2D gaussian	flt=flt/sum(sum(flt));  % normalize   % expand
   if (hks>1)
      xL=mean(I(:,1:hks)')'; xR=mean(I(:,Nx-hks+1:Nx)')';
   else
      xL=I(:,1); xR=I(:,Nx);
   end
   eI=[xL*ones(1,hks) I xR*ones(1,hks)];
   if (hks>1)
      xU=mean(eI(1:hks,:)); xD=mean(eI(Ny-hks+1:Ny,:));  
   else
   	xU=eI(1,:); xD=eI(Ny,:);   
   end	eI=[ones(hks,1)*xU; eI; ones(hks,1)*xD];	Ig=conv2(eI,flt,'valid');end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -