前向差分(forward difference)

来源:互联网 发布:网络语膜拜是什么意思 编辑:程序博客网 时间:2024/05/16 01:54

写在开头:做一个关于图像处理的项目,论文中提到了前向差分的概念,没有什么概念,就去搜了一点点关于差分的知识,记录一下。

差分

差分定义

设有k+1个点
(x0,y0),,(xk,yk)
前向差分定义为:
[yν]:=yν,ν0,,k
[yν,,yν+j]:=[yν+1,,yν+j][yν,,yν+j1]xν+jxν,ν0,,kj,j1,,k.

后向差分定义为:
[yν]:=yν,ν0,,k
[yν,,yνj]:=[yν,,yνj+1][yν1,,yνj]xνxνj,νj,,k,j1,,k.

举个例子(其中[]是差分运算符):
[y0]=y0
[y0,y1]=y1y0x1x0
[y0,y1,y2]=[y1,y2][y0,y1]x2x0=y2y1x2x1y1y0x1x0x2x0=y2y1(x2x1)(x2x0)y1y0(x1x0)(x2x0)
[y0,y1,y2,y3]=[y1,y2,y3][y0,y1,y2]x3x0

差分满足的性质

差分对于离散点就相当于微分对于连续函数,
两个点的差分:[y0,y1]=y1y0x1x0当距离特别近的时候就是导数的定义

具体的在图像处理里面也还没有用到,所以就没有深究。需要的可以参考维基百科之divided difference;

Matlab实现使用差分进行图像处理

clear;clc;#读出原始图片I = imread('duan.jpeg');#转化为灰度图像%0.2989 * R + 0.5870 * G + 0.1140 * BI = rgb2gray(I);size = size(I);%构造两个矩阵,准备做差分c_x=[I(:,1),I(:,1:size(2)-1)];c_y=[I(1,:);I(1:size(1)-1,:)];%求其x方向的差分grad_x=I-c_x;%求其y方向的差分grad_y=I-c_y;%求梯度grad=(grad_x.^2+grad_y.^2).^1/2;imshow(grad);

结果为:
原图:
这里写图片描述
差分后的图片
这里写图片描述
项目主要就是想将图片转化为素描图像,这只是第一步。

0 0
原创粉丝点击