精华内容
下载资源
问答
  • 高斯滤波函数、双边滤波函数的MATLAB实现高斯滤波函数双边滤波函数 自己编写滤波函数,剖析滤波内部结构 高斯滤波函数 clc; clear; close all; Image=imread('lena.bmp'); sigma1=0.6; sigma2=10; r=3; % 高斯模板...

    高斯滤波函数、双边滤波函数的MATLAB实现


    自己编写滤波函数,剖析滤波内部结构

    高斯滤波函数

    clc; clear; close all;
    
    Image=imread('lena.bmp');
    sigma1=0.6; sigma2=10; r=3;  % 高斯模板的参数
    NoiseI= imnoise(Image,'gaussian'); % 加噪,添加高斯噪声
    gausFilter1=fspecial('gaussian',[2*r+1 2*r+1],sigma1); % 高斯滤波器
    gausFilter2=fspecial('gaussian',[2*r+1 2*r+1],sigma2);  
    result1=imfilter(NoiseI,gausFilter1,'conv'); % 使用卷积完成滤波
    result2=imfilter(NoiseI,gausFilter2,'conv');
    imshow(Image);title('原图');
    figure;imshow(NoiseI);title('高斯噪声图像');
    figure;imshow(result1);title('sigma1 =0.6高斯滤波');
    figure;imshow(result2);title('sigma2 =10高斯滤波');
    imwrite(uint8(NoiseI),'gr.bmp');
    imwrite(uint8(result1),'gr1.bmp');
    imwrite(uint8(result2),'gr2.bmp');
    % 编写高斯滤波函数实现
    [height,width]=size(NoiseI);                                       
    for x=-r:r
        for y=-r:r
            H(x+r+1,y+r+1)=1/(2*pi*sigma1^2).*exp((-x.^2-y.^2)/(2*sigma1^2));
        end
    end 
    H=H/sum(H(:));  %归一化高斯模板H  
    result3=zeros(height,width);            %滤波后图像  
    midimg=zeros(height+2*r,width+2*r);    %中间图像  
    midimg(r+1:height+r,r+1:width+r)=NoiseI;  
    for ai=r+1:height+r  
        for aj=r+1:width+r  
            temp_row=ai-r; 
            temp_col=aj-r;  
            temp=0;  
            for bi=1:2*r+1 
                for bj=1:2*r+1 
                    temp= temp+(midimg(temp_row+bi-1,temp_col+bj-1)*H(bi,bj));  
                end  
            end  
           result3(temp_row,temp_col)=temp;  
        end  
    end  
    figure;imshow(uint8(result3));title('自己写的高斯滤波'); 
    imwrite(uint8(result3),'gr3.bmp');
    

    高斯噪声图像 :
    高斯噪声图像
    Sigmal=0.6高斯滤波:
    Sigmal=0.6高斯滤波
    Sigmal=10高斯滤波:
    Sigmal=10高斯滤波
    自己写的高斯滤波:
    自己写的高斯滤波

    双边滤波函数

    Image=im2double(imread('lena.bmp'));  
    NoiseI= Image+0.05*randn(size(Image));  % 添加随机噪声
    w=15; % 定义双边滤波窗口宽度  
    sigma_s=6; sigma_r=0.1; % 双边滤波的两个标准差参数  
    [X,Y] = meshgrid(-w:w,-w:w); 
    Gs = exp(-(X.^2+Y.^2)/(2*sigma_s^2)); % 计算邻域内的空间权值
    [hm,wn] = size(NoiseI); 
    result=zeros(hm,wn); 
    for i=1:hm    
        for j=1:wn  
            temp=NoiseI(max(i-w,1):min(i+w,hm),max(j-w,1):min(j+w,wn));
            Gr = exp(-(temp-NoiseI(i,j)).^2/(2*sigma_r^2)); % 计算灰度邻近权值          
            W = Gr.*Gs((max(i-w,1):min(i+w,hm))-i+w+1,(max(j-w,1):min(j+w,wn))-j+w+1); % W为空间权值Gs和灰度权值Gr的成绩           
            result(i,j)=sum(W(:).*temp(:))/sum(W(:));            
        end
    end  
    subplot(1,3,1),imshow(Image),title('原始图像');  
    subplot(1,3,2),imshow(NoiseI),title('随机噪声图像');   
    subplot(1,3,3),imshow(result),title('双边滤波图像'); 
    imwrite(NoiseI,'ng1.bmp');
    imwrite(result,'ng2.bmp');
    

    随机噪声图像:
    随机噪声图像
    双边滤波图像:
    双边滤波图像

    展开全文
  • 简单滤波函数

    2016-07-30 20:18:52
    简单滤波函数
  • matlab均值滤波函数

    2018-06-09 22:21:04
    自己编写的matlab均值滤波函数,其中输入为信号与窗函数大小
  • 高斯滤波函数

    2016-01-05 19:53:59
    基于灰度图像的高斯滤波函数,基于matlab平台的源代码。
  • Lee滤波函数 C++代码

    2017-08-22 09:49:33
    Lee滤波函数,C++代码
  • 针对卷积反投影CT图像重建算法(CBP)中采用传统滤波函数存在图像振荡,抗噪声性能差和图像细节模糊等问题,结合混合滤波器和多点加权平均的思想,提出了一种新的滤波函数即R-L-MS-L滤波函数,采用该滤波函数能够有效地...
  • 方框滤波、均值滤波、高斯滤波及滤波函数相关函数如下: void cv::boxFilter( InputArray _src,OutputArray _dst, int ddepth, Size ksize, Point anchor, bool normalize, int borderType); void cv::blu...

    方框滤波、均值滤波、高斯滤波及滤波函数相关函数如下:

    void cv::boxFilter( InputArray _src,OutputArray _dst, int ddepth,
                    Size ksize, Point anchor,
                    bool normalize, int borderType);
    void cv::blur(InputArray src, OutputArray dst,
              Size ksize, Point anchor, int borderType );
    void cv::GaussianBlur( InputArray _src,OutputArray _dst, Size ksize,
                       double sigma1, doublesigma2,
                       int borderType );

    滤波的简单使用:

    #include "opencv2/core/core.hpp"
    #include "opencv2/highgui/highgui.hpp"
    #include "opencv2/imgproc/imgproc.hpp"
    
    using namespace cv;
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
    //    Widget w;
    //    w.show();
    
        namedWindow("【原图】" );
        namedWindow("BOX【效果图】");
        namedWindow("Blur【效果图】");
        namedWindow("GaussianBlur【效果图】");
    
        Mat srcImg = imread("../imgs/a.jpeg");
        imshow("【原图】" , srcImg);
    
        Mat Boxout;
        cv::boxFilter(srcImg, Boxout, -1, cv::Size(7,7));
        imshow("BOX【效果图】", Boxout);
    
        Mat Blurout;
        cv::blur(srcImg, Blurout, Size(7,7));
        imshow("Blur【效果图】", Boxout);
    
        Mat GaussianBlurout;
        cv::GaussianBlur(srcImg, GaussianBlurout, Size(7,7), 0,0);
        imshow("GaussianBlur【效果图】", GaussianBlurout);
    
        return a.exec();
    }
    

     

    展开全文
  • 阿尔法均值滤波函数

    2015-11-18 15:59:21
    数字图像处理matlab版冈萨雷斯,阿尔法均值滤波函数文件,用于处理被椒盐噪声污染的图像
  • 选择合适的滤波函数是瞳面相位差波前传感器成功实现的关键。以建立的瞳面相位差波前传感器模型为基础,采用模式法进行波前相位的恢复,考察不同类型、不同大小滤波函数对波前恢复效果的影响。结果表明,滤波函数种类...
  • 一维中值滤波函数,调用函数,输入滤波窗口值和初始一维滤波向量,输出滤波后的向量
  • 采用变形镜影响函数对畸变波前的校正过程进行模拟,并利用超高斯滤波函数对模拟的校正效果进行拟合和统计,确定出变形镜交连值与滤波函数平滑因子的定量关系,进而建立和完善了基于滤波函数的分立变形镜波前校正预估...
  • Matlab 最大值滤波 中值滤波 最小值滤波 函数 ordfilt2 ...在MATLAB图像处理工具箱中提供了二维统计顺序滤波函数ordfilt2函数。二维统计顺序滤波是中值滤波的推广,对于给定的n个数值{al ,a2,...,

    Matlab 最大值滤波 中值滤波 最小值滤波 函数 ordfilt2

    【转载】原文出处:http://blog.csdn.net/fengbingchun/article/details/5951629

    ordfilt2函数
    MATLAB图像处理工具箱中提供了二维统计顺序滤波函数ordfilt2函数。二维统计顺序滤波是中值滤波的推广,对于给定的n个数值{al ,a2,...,an},将它们按大小顺序排列,将处于第k个位置的元素作为图像滤波输出,即序号为k的二维统计滤波。ordfilt2函数语法格式为:
    Y=ordfilt2(X,order,domain)

    Y=ordfilt2(X,order,domain,S)

    其功能是:对图像X作顺序统计滤波,order滤波器输出的顺序值,domain为滤波窗口。S是与domain大小相同的矩阵,它是对应domain中非零值位置的输出偏置,这在图形形态学中是很有用的。例如:
    Y=ordfilt2(X,5,ones(3,3)),相当于3×3的中值滤波
    Y=ordfilt2(X,1,ones(3,3)),相当于3×3的最小值滤波
    Y=ordfilt2(X,9,ones(3,3)),相当于3×3的最大值滤波
    Y=ordfilt2(X,1,[0 1 0;1 0 1;0 1 0]),输出的是每个像素的东、西、南、北四个方向相邻像素灰度的最小值。

    个人备注:

    这里,因为模板是3*3,那么邻域内的数据就按1-9由小到大排序,所以函数的第二个参数:5、1、9就分别对应的是中值、最小值、最大值,所以这种参数的设置也就是中值滤波、最小值滤波、最大值滤波。第二个参数的作用取决于模板的大小。

    展开全文
  • 开发环境是基于qt+opencv+vs2013能实现方框滤波,均值滤波等滤波函数,已验证,均能运行,如若需要后续资料,尽可私信我,大家互相学习
  • 直方图反滤波函数

    2015-11-06 14:47:21
    在对图像的直方图进行滤波时,会导致波形有一定的偏移,进而导致得到的波峰和波谷有一定的偏差,提供一个反滤波函数消除这种偏差
  • Matlab常见的一维数据滤波函数 movmean:平均值滤波 movmedian:中值滤波 此外,同类函数还有获取规定窗口下的标准差与方差函数 movstd:求标准差 ; movvar:求方差 ; 其函数的记忆方法为mov+相应函数的名称 ...

    Matlab常见的一维数据滤波函数

    movmean:平均值滤波
    movmedian:中值滤波

    此外,同类函数还有获取规定窗口下的标准差与方差函数
    movstd:求标准差 ;
    movvar:求方差 ;

    其函数的记忆方法为mov+相应函数的名称

    展开全文
  • MATLAB常用的滤波函数比较:均值滤波和中值滤波 均值滤波中值滤波运行结果程序代码 均值滤波 均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,...
  • 最简单实用的卡拉曼滤波函数 放进单片机即可使用。
  • 这是一个中值滤波函数的简单实用例程,环境为VS2017+OpenCV3.4.3.
  • Matlab滤波函数

    千次阅读 2015-01-10 11:28:10
    MATLAB图像处理工具箱提供了基于卷积的图象滤波函数filter2,filter2的语法格式为: Y = filter2(h,X) 其中Y = filter2(h,X)返回图像X经滤波算子h滤波后的结果,默认返回图像Y与输入图像X大小相同。其实filter2和...
  • 卡尔曼滤波函数

    2018-12-05 20:27:20
    这是一个卡尔曼滤波的代码。GUI界面显示形式。
  • matlab常用滤波函数

    2008-11-26 11:24:15
    常用的滤波函数,契比雪夫I,契比雪夫II型滤波器 和巴特沃斯滤波器
  • MATLAB的卡尔曼滤波函数与实例

    千次阅读 多人点赞 2019-04-27 10:46:31
    卡尔曼滤波是很很常用的预测和估计方法,自己学习了也挺久,这里将自己写的卡尔曼滤波函数分享一下。卡尔曼滤波的讲解网上有很多,这里不对此进行叙述,只是对MATLAB中的函数做讲解。函数主体来自...
  • CVI库里的滤波函数

    2009-09-02 21:42:30
    CVI库里的滤波函数,高通,低通,和带同滤波,工程实际很有用
  • 自编二维滤波函数

    2021-01-08 21:17:15
    1. 自编一个二维滤波函数myfilter2(H, A),实现matlab中的filter2函数的功能(边缘采用复制的方式);选择一个空域低通滤波模板,用自编的函数对某图像做平滑. 主程序: // An highlighted block clear;clc; img=...
  • opencv-python 笔记搬运02:几个简单的滤波函数滤波算法几个常用的滤波函数均值滤波函数 cv2.blur( )中值滤波 cv2.medianBlur( )双边滤波 cv2. bilateralFilter( )方框滤波 cv2.boxFilter( )高斯滤波 cv2. Gaussian...
  • 功能:高斯滤波函数 采用C书写的;参数明显,可变 效果不错,可直接使用
  • MATLAB 理想高通滤波函数 数字图像处理
  • imfilter函数叫做实现线性空间滤波函数,主要功能可以实现多维数组的滤波,在图像领域就是对图像进行滤波。 滤波是一个统一的概念,在图像领域,图像的去除噪声点,图像提取边缘,图像平滑,模糊,增强,等等都有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,301
精华内容 2,520
关键字:

滤波函数