资源简介
matlab求解图像灰度梯度程序,用于求解图像的灰度梯度值,多幅图像间比较清晰度等。
代码片段和文件信息
%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% this function is used to calculate
%%%% the average gradient of an image.
%%%% editor: denghaibo Email:denghblzu07@gmail.com
%%%% date : 2009-4-15
%%%% 平均梯度可敏感地反映图像对微小细节反差表达的能力,可用来评价图像的模糊程度
%%%% 在图像中,某一方向的灰度级变化率大,它的梯度也就大。因此,可以用平均梯度值
%%%% 来衡量图像的清晰度,还同时反映出图像中微小细节反差和纹理变换特征。
clear
for i1=1:60
CI=num2str(i1); %CI=num2str(350+i1);
imagename=strcat(CI‘次重建图‘‘.jpg‘);
img=imread(imagename);
img=double(img);
[MN]=size(img);
gradval=zeros(MN); %%% save the gradient value of single pixel
diffX=zeros(MN); %%% save the differential value of X orient
diffY=zeros(MN); %%% save the differential value of Y orient
tempX=zeros(MN);
tempY=zeros(MN);
tempX(1:M1:(N-1))=img(1:M2:N);
tempY(1:(M-1)1:N)=img(2:M1:N);
diffX=img-tempX;
diffY=img-tempY;
diffX(1:MN)=0; %%% the boundery set to 0
diffY(M1:N)=0;
diffX=diffX.*diffX;
diffY=diffY.*diffY;
AVEGRAD=sum(sum(diffX+diffY));
AVEGRAD=sqrt(AVEGRAD/2);
AVEGRAD=AVEGRAD/((M-1)*(N-1));
y(i1)=AVEGRAD;
end
x=1:60;
figureplot(xy)grid on
xlabel(‘Reconstruction times‘)ylabel(‘Gray gradiend‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1250 2014-10-25 13:19 huidutidu.m
评论
共有 条评论