转 单幅图像的平均梯度值计算 MATLAB源程序 【更新】
(2011-04-15 11:15:10)
标签:
it |
单幅图像的平均梯度值计算 MATLAB源程序 【更新】
2009-04-15 15:59
|
说明:该程序的作用是计算输入图像img的平均梯度值AVEGRAD
function AVEGRAD=avegrad(img) %%%%%%%%%%%%%%%%%%%%%%%%% %%%% this function is used to calculate %%%% the average gradient of an image. %%%% editor: denghaibo Email:denghblzu07@gmail.com %%%% date : 2009-4-15 %%%% 平均梯度可敏感地反映图像对微小细节反差表达的能力,可用来评价图像的模糊程度 %%%% 在图像中,某一方向的灰度级变化率大,它的梯度也就大。因此,可以用平均梯度值 %%%% 来衡量图像的清晰度,还同时反映出图像中微小细节反差和纹理变换特征。 img=double(img); [M,N]=size(img); gradval=zeros(M,N); %%% save the gradient value of single pixel diffX=zeros(M,N); diffY=zeros(M,N); tempX=zeros(M,N); tempY=zeros(M,N); tempX(1:M,1:(N-1))=img(1:M,2:N); tempY(1:(M-1),1:N)=img(2:M,1:N); diffX=img-tempX; diffY=img-tempY; diffX(1:M,N)=0; diffY(M,1:N)=0; diffX=diffX.*diffX; diffY=diffY.*diffY; AVEGRAD=sum(sum(diffX+diffY)); AVEGRAD=sqrt(AVEGRAD/2); AVEGRAD=AVEGRAD/((M-1)*(N-1)); end |

加载中…