词条 | 平均梯度 |
释义 | 平均梯度即图像的清晰度(definition),反映图像对细节对比的表达能力,计算公式为 图像梯度: G(x,y) = dx i + dy j; dx(i,j) = I(i+1,j) - I(i,j); dy(i,j) = I(i,j+1) - I(i,j); 其中,I是图像像素的值(如:RGB值),(i,j)为像素的坐标。 图像梯度一般也可以用中值差分: dx(i,j) = [I(i+1,j) - I(i-1,j)]/2; dy(i,j) = [I(i,j+1) - I(i,j-1)]/2; 图像边缘一般都是通过对图像进行梯度运算来实现的。 上面说的是简单的梯度定义,其实还有更多更复杂的梯度公式。 white210: 平均梯度(meangradient):指图像的边界或影线两侧附近灰度有明显差异,即灰度变化率大,这种变化率的大小可用来表示图像清晰度。它反映了图像微小细节反差变化的速率,即图像多维方向上密度变化的速率,表征图像的相对清晰程度。平均梯度越大,图像层次越多,也就越清晰。其定义为: 式中:F(i,j)为图像的第i行,第j列的灰度值;M、N分别为图像的总行数和总列数。 单幅图像的平均梯度值计算MATLAB源程序: 说明:该程序的作用是计算输入图像img的平均梯度值AVEGRAD 平均梯度值可以衡量图像细节反差表达的能力,是图形融合结果的一个评价算子之一 function AVEGRAD=avegrad(img) %%%% this function is used to calculate theaverage gradient of an image. %%%%平均梯度可敏感地反映图像对微小细节反差表达的能力,可用来评价图像的模糊程度 %%%%在图像中,某一方向的灰度级变化率大,它的梯度也就大。因此,可以用平均梯度值来衡量图像的清晰度,还同时反映出图像中微小细节反差和纹理变换特征。 img=double(img); [M,N]=size(img); gradval=zeros(M,N); %%% save the gradient value of single pixel diffX=zeros(M,N); %%% save the differential value of X orient diffY=zeros(M,N); %%% save the differential value of Y orient 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; %%% the boundery set to 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 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。