zoukankan      html  css  js  c++  java
  • 图像处理-线性滤波-1 基础(相关算子、卷积算子、边缘效应)

    这里讨论利用输入图像中像素的小邻域来产生输出图像的方法,在信号处理中这种方法称为滤波(filtering)。其中,最常用的是线性滤波:输出像素是输入邻域像素的加权和。

    1.相关算子(Correlation Operator)

    定义:image,  即image ,其中h称为相关核(Kernel).

            

      步骤:

            1)滑动核,使其中心位于输入图像g的(i,j)像素上

            2)利用上式求和,得到输出图像的(i,j)像素值

            3)充分上面操纵,直到求出输出图像的所有像素值

    例:

    A = [17  24   1   8  15            h = [8   1   6
         23   5   7  14  16                     3   5   7
          4   6  13  20  22                     4   9   2]
         10  12  19  21   3            
         11  18  25   2   9]

    计算输出图像的(2,4)元素=image

    image

    Matlab 函数:imfilter(A,h)

    2.卷积算子(Convolution)

    定义:image ,image ,其中

       步骤:

            1)将核围绕中心旋转180度

            2)滑动核,使其中心位于输入图像g的(i,j)像素上

            3)利用上式求和,得到输出图像的(i,j)像素值

            4)充分上面操纵,直到求出输出图像的所有像素值

           例:计算输出图像的(2,4)元素=image 

           image

    Matlab 函数:Matlab 函数:imfilter(A,h,'conv')% imfilter默认是相关算子,因此当进行卷积计算时需要传入参数'conv'

    3.边缘效应

    当对图像边缘的进行滤波时,核的一部分会位于图像边缘外面。

    image

    常用的策略包括:

    1)使用常数填充:imfilter默认用0填充,这会造成处理后的图像边缘是黑色的。

    2)复制边缘像素:I3 = imfilter(I,h,'replicate');

    image

       

    4.常用滤波

    fspecial函数可以生成几种定义好的滤波器的相关算子的核。

    例:unsharp masking 滤波

    1 I = imread('moon.tif');
    2 h = fspecial('unsharp');
    3 I2 = imfilter(I,h);
    4 imshow(I), title('Original Image')
    5 figure, imshow(I2), title('Filtered Image')

    转自:http://www.cnblogs.com/pegasus/archive/2011/05/19/2051416.html

  • 相关阅读:
    巧用数据流让 Word 文档在线阅读
    《开源公开课分享》:Java开源框架案例分享
    存储过程
    opencv求取RGB分量
    opencv中的矩阵操作
    三维高斯模型 opencv实现
    线性均值滤波和中值滤波的比较
    opencv 画延长线
    MATLAB曲线绘制
    如何在博客园发博客时插入优酷视频
  • 原文地址:https://www.cnblogs.com/wangduo/p/5978639.html
Copyright © 2011-2022 走看看