# 图像微分（1、2阶导数和拉普拉斯算子）

## 1 一阶导数

，前向差分 forward differencing                  （1.2）

，中心差分 central differencing                     （1.3）

1）前向差分的Matlab实现

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 function dimg = mipforwarddiff(img,direction) % MIPFORWARDDIFF     Finite difference calculations  % %   DIMG = MIPFORWARDDIFF(IMG,DIRECTION) % %  Calculates the forward-difference for a given direction %  IMG       : input image %  DIRECTION : 'dx' or 'dy' %  DIMG      : resultant image % %   See also MIPCENTRALDIFF MIPBACKWARDDIFF MIPSECONDDERIV %   MIPSECONDPARTIALDERIV   %   Omer Demirkaya, Musa Asyali, Prasana Shaoo, ... 9/1/06 %   Medical Image Processing Toolbox   imgPad = padarray(img,[1 1],'symmetric','both');%将原图像的边界扩展 [row,col] = size(imgPad); dimg = zeros(row,col); switch (direction)    case 'dx',    dimg(:,1:col-1) = imgPad(:,2:col)-imgPad(:,1:col-1);%x方向差分计算， case 'dy',    dimg(1:row-1,:) = imgPad(2:row,:)-imgPad(1:row-1,:);  otherwise, disp('Direction is unknown'); end; dimg = dimg(2:end-1,2:end-1);

2）中心差分的Matlab实现

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 function dimg = mipcentraldiff(img,direction) % MIPCENTRALDIFF     Finite difference calculations  % %   DIMG = MIPCENTRALDIFF(IMG,DIRECTION) % %  Calculates the central-difference for a given direction %  IMG       : input image %  DIRECTION : 'dx' or 'dy' %  DIMG      : resultant image % %   See also MIPFORWARDDIFF MIPBACKWARDDIFF MIPSECONDDERIV %   MIPSECONDPARTIALDERIV   %   Omer Demirkaya, Musa Asyali, Prasana Shaoo, ... 9/1/06 %   Medical Image Processing Toolbox   img = padarray(img,[1 1],'symmetric','both'); [row,col] = size(img); dimg = zeros(row,col); switch (direction)     case 'dx',         dimg(:,2:col-1) = (img(:,3:col)-img(:,1:col-2))/2;     case 'dy',         dimg(2:row-1,:) = (img(3:row,:)-img(1:row-2,:))/2;     otherwise,         disp('Direction is unknown'); end dimg = dimg(2:end-1,2:end-1);
 1 

 1 2 I = imread('coins.png'); figure; imshow(I); Id = mipforwarddiff(I,'dx'); figure, imshow(Id);

原图像                                                   x方向1阶导数

Matlab函数

2）quiver：以箭头形状绘制梯度。注意放大下面最右侧图可看到箭头，由于这里计算横竖两个方向的梯度，因此箭头方向都是水平或垂直的。

 1 2 3 4 5 I = double(imread('coins.png')); [dx,dy]=gradient(I); magnitudeI=sqrt(dx.^2+dy.^2); figure;imagesc(magnitudeI);colormap(gray);%梯度幅值 hold on;quiver(dx,dy);%叠加梯度方向

梯度幅值                                   梯度幅值+梯度方向

## 3 二阶导数

（3.1）

## 3.1 普拉斯算子（laplacian operator）

### 3.1.2 概念

（3.2）

1）首先，其一阶差分为

2）因此，二阶差分为

3）因此，1维拉普拉斯运算可以通过1维卷积核 实现

（3.4）

### 3.1.2 应用

Matlab里有两个函数

1）del2

2）fspecial：图像处理中一般利用Matlab函数fspecial

h = fspecial('laplacian', alpha) returns a 3-by-3 filter approximating the shape of the two-dimensional Laplacian operator.
The parameter alpha controls the shape of the Laplacian and must be in the range 0.0 to 1.0. The default value for alpha is 0.2.

• 本文已收录于以下专栏：

## 用拉普拉斯算子进行滤波

from;  http://hi.baidu.com/archiless/blog/item/97a97cd9a12e2...

## Delphi7高级应用开发随书源码

• 2003年04月30日 00:00
• 676KB
• 下载

## 图像锐化——高斯—拉普拉斯算子

/************************************************** * 功能: 设定指定位置的像素灰度 * 参数: imageBuf为目标图像 x,y为要设定像...

## Delphi7高级应用开发随书源码

• 2003年04月30日 00:00
• 676KB
• 下载

## 基于matlab边缘提取的几种方法的比较

1、Matlab简述 Matlab是国际上最流行的科学与工程计算的软件工具，它起源于矩阵运算，已经发展成一种高度集成的计算机语言。有人称它为“第四代”计算机语言，它提供了强大的科学运算、灵活的程序设计...
• GoodShot
• 2013年08月18日 20:48
• 50136

## 边缘检测的微分算子简单比较【1】

• Yukizzz
• 2016年04月27日 11:29
• 1925

## 图像处理之一阶微分应用

• jia20003
• 2012年05月13日 13:18
• 15178

## 图像的二阶微分算子

Laplacian微分算子 定义 最单间的各项同性微分算子是拉普拉斯算子，一个二维图像f(x,y)的拉普拉斯微分算子的定义如下： 将(2)、(3)式代入(1)式得 ...

举报原因： 您举报文章：图像微分（1、2阶导数和拉普拉斯算子） 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)