MATLAB之微分处理图像前向差分
2017-12-02 07:58
1041 查看
MATLAB之微分处理图像前向差分
复杂些的滤波算子一般是先利用高斯滤波来平滑,然后计算其1阶和2阶微分。由于它们滤除高频和低频,因此称为带通滤波器(band-pass
filters)。
先介绍必备的图像微分知识。
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
%
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);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%主函数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I = imread('lena1.png');
figure; imshow(I);
forward_dx = mipforwarddiff(I,'dx'); figure, imshow(forward_dx);
forward_dy = mipforwarddiff(I,'dy'); figure, imshow(forward_dy);
原图
x方向
y方向
欢迎大家关注我的公众号,图像处理扣扣群:
相关文章推荐
- matlab图像处理基本函数
- 【图像处理】MATLAB:形态学
- 基于matlab图像锐化处理
- Matlab图像处理(01)-Matlab基础
- matlab中图像的处理和动画的制作
- matlab PCNN 显微图像处理
- matlab通过摄像头获取图像进行处理
- Matlab图像处理学习笔记(一):二值化、开操作、连通区域提取、重心、ROI
- Matlab图像处理基本操作
- MATLAB 图像伪彩色处理
- 肺部胸片图像掩膜和伪彩色处理matlab
- 图像处理Matlab(二)——生成随机点
- Matlab中处理多个图像的索引下标
- MATLAB 图像处理 灰度图 将图像中某一行或者某一列的灰度值 绘制成一条曲线
- 图像边沿平滑处理的matlab实现
- Matlab中如何读出写入图像文件以及对图像的简单处理
- 使用思维导图学习Matlab图像处理(1)——数字图像处理简介
- Matlab图像处理——在任意位置绘制二维箭头的总结
- Matlab图像处理(1)
- 【matlab图像处理】图片生成浮雕效果