filtercomparison.zip

  • 大井
    了解作者
  • matlab
    开发工具
  • 1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2020-10-09 16:02
    上传日期
该文件对比了导向滤波与其他滤波的性能,导向滤波的结果最好
filtercomparison.zip
  • filtercomparison.m
    2.5KB
内容介绍
clear all close all I=imread('C:\Users\Administrator\Desktop\计算机视觉-图像去雾\Emma.jpg'); %读取保存路径下的图片 J=imnoise(I,'gaussian',0,0.01); K= double(J)/255.0; sigma_d=1; sigma_r=0.3; regularization = 0.01; filterSize=double(uint8(3*sigma_d)*2+1); filterRadius=ceil((filterSize-1)/2);%滤波半径 A=medfilt3(K); %进行3*3模板中值滤波 B=imfilter(K,fspecial('average',3));%进行3*3模板均值滤波 C=imfilter(K,fspecial('gaussian',3));%进行3*3模板高斯滤波 %% I=padarray(K,[filterRadius,filterRadius],'replicate'); G=padarray(K,[filterRadius,filterRadius],'replicate'); D=btfColorImage(I,G,sigma_d,sigma_r,filterRadius);%进行双边滤波 E=imguidedfilter(K,rgb2gray(K), 'NeighborhoodSize',[3 3], 'DegreeOfSmoothing', regularization*diff(getrangefromclass(rgb2gray(K))).^2); subplot(231),imshow(J);title('(a)原图像','Fontsize',16); subplot(232),imshow(A);title('(b)3*3模板中值滤波','Fontsize',16); subplot(233),imshow(B);title('(c)3*3模板均值滤波','Fontsize',16); subplot(234),imshow(C);title('(d)3*3模板高斯滤波','Fontsize',16); subplot(235),imshow(D);title('(e)3*3模板双边滤波','Fontsize',16); subplot(236),imshow(E);title('(f)3*3模板导向滤波','Fontsize',16); function J=btfColorImage(I,G,sigma_d,sigma_r,filterRadius) x=-filterRadius:filterRadius; y=-filterRadius:filterRadius; [xx,yy]=meshgrid(x,y); spatialKernel=exp(- (xx.^2+yy.^2)/(2*sigma_d^2)); [rows,cols,~]=size(I); rc=zeros(size(I(:,:,1))); gc=zeros(size(rc)); bc=zeros(size(gc)); if size(G,3)==1 temp=G; G(:,:,1)=temp; G(:,:,2)=temp; G(:,:,3)=temp; end parfor y=filterRadius+1:rows-filterRadius for x=filterRadius+1:cols-filterRadius roi= I(y-filterRadius:y+filterRadius,x-filterRadius:x+filterRadius,:); roidif=zeros(size(roi)); roidif(:,:,1)=roi(:,:,1)-G(y,x,1); roidif(:,:,2)=roi(:,:,2)-G(y,x,2); roidif(:,:,3)=roi(:,:,3)-G(y,x,3); roidif=roidif.^2; roidif=roidif(:,:,1)+roidif(:,:,2)+roidif(:,:,3); tonalKernel =exp(- roidif/(2*sigma_r^2)); W=(tonalKernel.*spatialKernel); k=sum(W(:)); RC=W.*roi(:,:,1); GC=W.*roi(:,:,2); BC=W.*roi(:,:,3); rc(y,x)=sum(RC(:))/k; gc(y,x)=sum(GC(:))/k; bc(y,x)=sum(BC(:))/k; end end rc=rc(filterRadius+1:end-filterRadius,filterRadius+1:end-filterRadius); gc=gc(filterRadius+1:end-filterRadius,filterRadius+1:end-filterRadius); bc=bc(filterRadius+1:end-filterRadius,filterRadius+1:end-filterRadius); J=cat(3,rc,gc,bc); end
评论
    相关推荐
    • 图像去雾算法源代码c++.zip
      图像去雾c++版源代码,实现效果还不错,可直接运行。
    • 基于偏振信息的图像去雾算法研究.rar
      一种利用图像偏振信息的去雾方法,利用偏振成像系统获取 3个任意角度或 2个正交角度偏振 图像作为输入。
    • 图像去雾程序.zip
      有雾图像会导致系统辨识度低、无法识别等问题,极大地降低系统的工作性能和成像效果。目前的去雾算法有三种,分别是直方图去雾法、何凯明的暗通道法和单尺度同态滤波方法。
    • 基于VS和OPencv的暗通道图像去雾参考资料
      包括滤波算法等可用代码及相关说明文档,但是未整合到平台,不能直接运行
    • 图像去雾 darkchannel MATLAB实现
      1暗通道先验,2导向滤波算法。图像去雾 darkchannel MATLAB实现。
    • 基于暗通道和导向滤波图像去雾算法C++实现
      基于暗通道和导向滤波图像去雾算法C++实现
    • haze:Python实现经典图像去雾算法
      haze:Python实现经典图像去雾算法
    • 图像去雾和界面程序.zip
      有雾图像会导致系统辨识度低、无法识别等问题,极大地降低系统的工作性能和成像效果。目前的去雾算法有三种,分别是直方图去雾法、何凯明的暗通道法和单尺度同态滤波。同时还包含交互展示界面
    • 导向滤波matlab版本代码合集.rar
      导向滤波matlab代码相关合集,包含增强算法,羽化算法,滤波平滑算法等。导向滤波(Guided Filtering)和双边滤波(BF)、最小二乘滤波(WLS)是三大边缘保持(Edge-per...它在图像去雾,图像抠图上均有相应的应用。
    • codesforimageprocessing.rar
      实现简单图像处理,包括256色转灰度图、Hough变换、Walsh变换、中值滤波、二值化变换、亮度增减、傅立叶变换、反色、取对数、取指数、图像平移、图像旋转、图像细化、图像缩放、图像镜像、均值滤波、对比度拉伸、拉普拉斯锐化(边缘检测)、方块编码、梯度锐化、灰度均衡、直方图均衡、离散余弦变换、维纳滤波处理、逆滤波处理、阈值变换、高斯平滑。