1、线性空间滤波函数Z = imfilter(X,H,option1,option2,...)

X为输入图像矩阵,H为m*n维的掩膜矩阵,H中的数据类型必须是double类型。掩膜矩阵可以是用户定义,也可以是系统定义好的。返回矩阵Z和X有相同的数据结构和数据类型。

整个函数处理的中间过程都会使用double类型,所以不必担心中间结果的精度。

2、获取系统掩膜函数H=fspecial(type,parameters)

type为字符串,制定了掩膜类型。如'average'表示均值掩膜。H为返回的掩膜矩阵,数据类型为double.

  • 正方形均值掩膜,h=fspecial('average',n),n为掩膜大小,n*n,默认值是3.
  • 高斯低通掩膜,h=fspecial('gaussian',n,sigma),n为掩膜大小n*n,默认为3.sigma为高斯分布方差。
  • 二维拉普拉斯掩膜'laplacian',h=fspecial('laplacian',alpha),alpha控制掩膜形状,范围是[0 1],默认值0.2,
  • 反锐化掩膜'unsharp',h=fspecial('unsharp',alpha)alpha控制掩膜形状,范围是[0 1],默认值0.2
  • 水平锐化掩膜'prewit',h=fspecial('prewit'),如果想用垂直锐化,则用h'
  • sobel水平锐化,h=fspecial('sobel'),如果想用垂直锐化,则用h'
 clear all;
i=imread('./pic/lena256.bmp'); h=fspecial('sobel');
h=h'; z=imfilter(i,h); figure;
subplot(1,2,1)
imshow(i);
title('原始图像')
subplot(1,2,2)
imshow(z)
title('垂直锐化滤波')

3、添加噪声,是用函数Z=imnoise(A,type,parameters);其中A是要添加噪声的图像,type为添加噪声类型,.

  •   高斯噪声Z=imnoise(A,'gausiaan',m,d);其中m是均值,d是方差
  • 注意高斯噪声中,m,d指定时要注意转换,例如,对于uint8类型的图像,添加均值为100,方差为200的高斯噪声,
  • m=100/255,d=200/(255^2);
  • 椒盐噪声Z=imnoise(A,'salt & pepper',d),d范围是[0 ,1],表示噪声密度,即含噪声值的图像区域的百分比。默认值是0.05。噪声是最小值和最大值两种。
  • 泊松分布噪声,Z=imnoise(A,'poisson')
 clear all;
img = imread('./pic/lena256.bmp');
nimg=imnoise(img,'salt & pepper',0.05);
figure;
subplot(1,2,1);
imshow(img);
subplot(1,2,2);
imshow(nimg);

4、多图像平均法,在相同条件下,进行M次重复拍摄的图像相加,取平均作为输出值。z=imlincomb(k1,A1,k2,A2,k3,A,3...);

z=k1*A1+k2*A2+k3*A3...

例子:

 clear all;
img=imread('./pic/lena256.bmp');
n1=imnoise(img,'gaussian',,0.02);
n2=imnoise(img,'gaussian',,0.02);
n3=imnoise(img,'gaussian',,0.02);
n4=imnoise(img,'gaussian',,0.02);
n5=imnoise(img,'gaussian',,0.02); final = imlincomb(0.2,n1,0.2,n2,0.2,n3,0.2,n4,0.2,n5);
figure;
subplot(,,[ ]);
imshow(img);
title('原始图像');
subplot(,,);
imshow(n1);
title('添加高斯噪声后的图像');
subplot(,,);
imshow(final);
title('平均后的图像');

图像的线性空间滤波matlab实现的更多相关文章

  1. 图像三维灰度分布图——matlab

    p=imread('C:\Users\wangd\Documents\MATLAB\1.jpg'); g=rgb2gray(p); % 转为灰阶图 gg=double(g); % 转为数值矩阵 gg= ...

  2. opencv 图像的线性混合

    1 线性混合理论 g(x) = (1-α)*f1(x) + α*f2(x) 其中,α代表图像的权重 #include<iostream> #include<opencv2/openc ...

  3. 积分图像 分类: 图像处理 Matlab 2015-06-06 10:30 149人阅读 评论(0) 收藏

    积分图像(integral image)是一种快速计算矩形区域之和的数据结构,常利用它对算法进行加速.积分图像中处的值是原始灰度图像的左上角与当前点所围成的矩形区域内所有像素点的灰度值之和,即: 其中 ...

  4. 数字图像处理:图像的灰度变换(Matlab实现)

    (1)线性变换:通过建立灰度映射来调整源图像的灰度. k>1增强图像的对比度:k=1调节图像亮度,通过改变d值达到调节亮度目的:0 i = imread('theatre.jpg');i = i ...

  5. 简单的线性分类——MATLAB,python3实现

    看李政轩老师讲的Kernel,讲的非常好!前面有几道作业题,用MATLAB简单做了下,不知道对不对,错误之处还请指出. 题目是这样的. 一.MATLAB版本: clear; clc % 生成train ...

  6. 图像频谱图画图——matlab

    I =imread('C:\Users\wangd\Desktop\in000155.jpg'); %读入原图像文件 I1 = rgb2gray(I); subplot(,,);imshow(I1); ...

  7. 一个自带简易数据集的模拟线性分类器matlab代码——实验训练

      %%%% Tutorial on the basic structure of using a planar decision boundary %%%% to divide a collecti ...

  8. 图像像素灰度内插(Matlab实现)

    常用的像素灰度内插法:最近邻元法.双线性内插法.三次内插法 %%像素灰度内插 factor = 0.75;%缩放比 u = 0.6;v = 0.7; itp1 = uint8(zeros(ceil(h ...

  9. 马尔科夫随机场(MRF)及其在图像降噪中的matlab实现

    (Markov Random Field)马尔科夫随机场,本质上是一种概率无向图模型 下面从概率图模型说起,主要参考PR&ML 第八章 Graphical Model (图模型) 定义:A g ...

随机推荐

  1. CentOS 7 中 hostnamectl 的使用

    hostnamectl 是在 centos7 中新增加的命令,它是用来修改主机名称的,centos7 修改主机名称会比以往容易许多. 用法 # hostnamectl -h -h --help 显示帮 ...

  2. (转)初识 Lucene

    Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能.Lucene 目前是 Apache Jakarta 家族中的一个开源项目. ...

  3. 如何将xml转为python中的字典

    如何将xml转为python中的字典 import cElementTree as ElementTree class XmlListConfig(list): def __init__(self, ...

  4. matlab中将矩阵按照行打乱顺序的一个例子

    来自百度百科: A = [1, 2, 3; 4, 5, 6; 7, 8, 9; 10, 11, 12] rowrank = randperm(size(A, 1)); % 随机打乱的数字,从1~行数打 ...

  5. (剑指Offer)面试题1:赋值运算符函数

    题目: 如下为类型CMyString的声明,请为该类型添加赋值运算符函数. class CMyString{public:    CMyString(char* pData=NULL);    CMy ...

  6. 开源 免费 java CMS - FreeCMS1.9 会员权限管理

    项目地址:http://www.freeteam.cn/ 会员权限管理 管理会员可使用的权限.会员在使用某一特定功能时,如投稿.可依据此会员所在会员组是否有投稿权限来决定会员能否够使用投稿功能. 1. ...

  7. 如何用7-zip创建自解压文件,7Z软件如何使用

    1 要创建自解压文件,一般都是双击直接解压到C盘的Program Files文件夹里面,或许还需要在桌面创建一个快捷方式之类的.但是一般的绿色软件除了复制到Program Files还需要运行一下绿化 ...

  8. STL - Map - 运行期自定义排序

    RuntimeStringCmp.cpp #include <string> using namespace std; // function object to compare stri ...

  9. head 命令(转)

    原文:http://www.cnblogs.com/peida/archive/2012/11/06/2756278.html head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结 ...

  10. Mapreduce实例-分组排重(group by distinct)

    public class GroupComparator implements RawComparator<MyBinaryKey> { @Override public int comp ...