首页 > 代码库 > 图像清晰度评价

图像清晰度评价

http://blog.csdn.net/liuuze5/article/details/50773160

1.灰度差

 

[plain] view plain copy
 
  1. function out_val=difference_absolute(img);  
  2. I=rgb2gray(img);  
  3. [m,n]=size(I);  
  4. f=0.0;  
  5. I=double(I);  
  6. for x=1:m-1;  
  7.     for y=1:n-1;  
  8.         Ix=I(x+1,y)-I(x,y);  
  9.         Iy=I(x,y+1)-I(x,y);  
  10.         f=f+abs(Ix)+abs(Iy);  
  11.     end  
  12. end  
  13. out_val=f/m/n;  


2.边缘强度

 

 

[plain] view plain copy
 
  1. function outval = edge_intensity(img)   
  2. % OUTVAL = EDGE_INTENSITY(IMG)   
  3.    
  4. if nargin == 1   
  5.     img=rgb2gray(img);  
  6.     img = double(img);   
  7.     % Create horizontal sobel matrix   
  8.     w = fspecial(‘sobel‘);   
  9.        
  10.     % Get the size of img   
  11.     [r c ] = size(img);   
  12.        
  13.     gx = imfilter(img,w,‘replicate‘);   
  14.     gy = imfilter(img,w‘,‘replicate‘);   
  15.        
  16.     for m = 1 : r   
  17.         for n = 1 : c   
  18.               
  19.                 g(m,n) = sqrt(gx(m,n)*gx(m,n) + gy(m,n)*gy(m,n));   
  20.               
  21.         end   
  22.     end   
  23.     outval = mean(mean(g));   
  24. else   
  25.     error(‘Wrong number of input!‘);   
  26. end   

 

 

3.main

 

[plain] view plain copy
 
  1. clear all;  
  2. close all;  
  3. clc;  
  4. PathName = ‘.\2\‘;     
  5. FileName = ‘.jpg‘ ;    
  6.    
  7. n=20   
  8. tic  
  9.   
  10. for ii=1:n  
  11.        imageName=strcat(PathName,num2str(ii),FileName);  
  12.        im = imread(imageName);                
  13.        a(ii)=difference_absolute(im);  
  14.        b(ii)=edge_intensity(im);  
  15. end  
  16. toc;  
  17. a=a/max(a);  
  18. b=b/max(b);  
  19. figure(1);plot(a,‘-r+‘);hold on   
  20. plot(b,‘-b*‘);hold on   
  21. xlabel(‘len.s position‘);  
  22. ylabel(‘value‘);  
  23. title(‘清晰度评价函数‘);  


4.输入图片

 

技术分享

5.对两组结果归一化后如下所示:

 技术分享

     第14张图片最清晰,与人眼观察结果一致。

 

对另一组图片进行测试,结果如下:

技术分享

 

 

技术分享

技术分享

 

 

处理效果上边缘算子明显优于灰度差,但时间上消耗很大。

边缘算子:96.872847 seconds.
灰度差:     4.645993 seconds.

图像清晰度评价