http://blog.sciencenet.cn/blog-95484-803140.html

% %图像灰度变换

% f = imread('E:\2013第一学期课程\媒体计算\实验一\Img\Fig0303(a)(breast).tif');
% g1 = imadjust(f, [0 1], [1 0]);
% g2 = imadjust(f, [0.5 0.75], [0 1]); 
% g3 = imadjust(f,[],[],2);
% subplot(2,2,1), imshow(f), title('原始图像');
% subplot(2,2,2), imshow(g1), title('负片图像');
% subplot(2,2,3), imshow(g2), title('亮度扩展图像');
% subplot(2,2,4), imshow(g3), title('gama=2 图像');

% f1 = imread('E:\2013第一学期课程\媒体计算\实验一\Img\Fig0308(a)(pollen).tif');
% figure,imshow(f1);
% figure,imhist(f1)
% ylim('auto')
% f1g1 = histeq (f1, 256);
% figure,imshow(f1g1)
% figure,imhist(f1g1)
% ylim('auto')

%图像空域滤波
close all;
f = imread('E:\2013第一学期课程\媒体计算\实验一\Img\Fig0318(a)(ckt-board-orig).tif');
subplot(2,2,1), imshow(f), title('原始图像');
g = imnoise(f,'salt & pepper',0.2);
subplot(2,2,2), imshow(g), title('噪声图像');
w = [1/9 1/9 1/9; 1/9 1/9 1/9; 1/9 1/9 1/9]
% w = [0.25 0.25; 0.25 0.25]
% g1 = imfilter(f,w, 'replicate')
% subplot(2,2,3), imshow(g1), title('原始图像均值滤波');
g2 = imfilter(g,w, 'replicate')
subplot(2,2,3), imshow(g2), title('均值滤波');

%medfilt2
g3 = medfilt2(g);
subplot(2,2,4), imshow(g3), title('中值滤波');

%fspecial
% f = imread('E:\2013第一学期课程\媒体计算\实验一\Img\Fig0316(a)(moon).tif');
% w1 = fspecial('prewitt')
% g1 = f- imfilter(f,w1, 'replicate')

% w2 = fspecial('sobel')
% g2 = f-imfilter(f,w2, 'replicate')

% w3 = fspecial('laplacian',0)
% g3 = f-imfilter(f,w3, 'replicate')

% subplot(2,2,1), imshow(f), title('原始图像');
% subplot(2,2,2), imshow(g1), title('prewitt');
% subplot(2,2,3), imshow(g2), title('sobel');
% subplot(2,2,4), imshow(g3), title('laplacian');

%傅里叶变换 
% f = imread('E:\2013第一学期课程\媒体计算\实验一\Img\Fig0315(a)(original_test_pattern).tif');
% F=fft2(f);  %对图像f进行傅里叶变换,得到的图像大小为P*Q
% s = abs(F);
% Fc=fftshift(F);    %将变换原点移到频率矩形的中心
% S=log(1+abs(Fc));   %对频谱图进行对数变换,以便更好显示频谱
% g=real(ifft2(F));  %对傅里叶频谱进行逆变换,显示效果

% subplot(2,2,1), imshow(s,[]), title('傅里叶变换后图像');
% subplot(2,2,2), imshow(abs(Fc),[]), title('将变换原点移到频率矩形的中心');
% subplot(2,2,3), imshow(S,[]), title('频谱图进行对数变换');
% subplot(2,2,4), imshow(g), title('傅里叶频谱进行逆变换图像');
% figure,imshow(f);

%图像频域滤波
%  f = imread('E:\2013第一学期课程\媒体计算\实验一\Img\Fig0515(a)(base-with-control-points).tif');
%  [m,n] = size(f);
%  F = fft2(f);
%  sig = 10;
%  H = lpfilter('gaussian',m, n, sig);
%  G = H.*F;
%  g1 = real(ifft2(G));
%  %空域高斯滤波
%  w = fspecial('gaussian',500,10)
%  g2 =imfilter(f,w, 'replicate')
%  
%  subplot(1,3,1), imshow(f,[]), title('原始图像');
%  subplot(1,3,2), imshow(g1,[]), title('频域高斯滤波');
%  subplot(1,3,3), imshow(g2,[]), title('空域高斯滤波');

conv2、filter2、imfilter的区别

http://www.ilovematlab.cn/thread-293710-1-1.html

今天见到了坛主math以及论坛其他牛人的真容,听完报告感慨良多,一句话加油吧。

-------------------------------------conv2函数----------------------------------------
1、用法

  1. C=conv2(A,B,shape);        %卷积滤波

复制代码

A:输入图像,B:卷积核
       假设输入图像A大小为ma x na,卷积核B大小为mb x nb,则
       当shape=full    时,返回全部二维卷积结果,即返回C的大小为(ma+mb-1)x(na+nb-1)
          shape=same 时,返回与A同样大小的卷积中心部分
          shape=valid  时,不考虑边界补零,即只要有边界补出的零参与运算的都舍去,返回C的大小为(ma-mb+1)x(na-nb+1)

2、实现步骤
    假设输入图像A大小为ma x na,卷积核大小为mb x nb,则MATLAB的 conv2 函数实现流程如下:
        a、对输入图像补零,第一行之前和最后一行之后都补mb-1行,第一列之前和最后一列之后都补nb-1列(注意:conv2不支持其他的边界补充选项,函数内部对输入总是补零)。
        b、关于卷积核的中心,旋转卷积核180度。
        c、滑动卷积核,将卷积核的中心位于图像矩阵的每一个元素。
        d、将旋转后的卷积核乘以对应的矩阵元素再求和。

3、实现过程展示
     假设有图像A=[4 3 1 2;0 1 1 3;5 2 0 0], 卷积核B=[1 2 3;0 -1 2;1 1 0]
         a、首先是按照上面的步骤进行补零,如下图外圈红色的为补出的零

<ignore_js_op>

 

Matlab中图像处理实例:灰度变换,空域滤波,频域滤波,傅里叶变换的实现的更多相关文章

  1. matlab中图像处理常见用法

    一. 读写图像文件 1. imread imread函数用于读入各种图像文件,如:a=imread('e:/w01.tif') 注:计算机E盘上要有w01相应的.tif文件. 2. imwrite i ...

  2. MATLAB中图像处理的函数

    表1 图像显示 函数名 功能说明 函数名 功能说明 colorbar 颜色条显示 montage 按矩形剪辑方式显示多帧图像 getimage 从坐标系中获取图像数据 immovie 从多帧索引图像中 ...

  3. 基于MATLAB的中值滤波均值滤波以及高斯滤波的实现

    基于MATLAB的中值滤波均值滤波以及高斯滤波的实现 作者:lee神 1.   背景知识 中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值. 中值滤 ...

  4. matlab中fspecial Create predefined 2-D filter以及中值滤波均值滤波以及高斯滤波

    来源: 1.https://ww2.mathworks.cn/help/images/ref/fspecial.html?searchHighlight=fspecial&s_tid=doc_ ...

  5. Python下opencv使用笔记(图像频域滤波与傅里叶变换)

    Python下opencv使用笔记(图像频域滤波与傅里叶变换) 转载一只程序喵 最后发布于2018-04-06 19:07:26 阅读数 1654  收藏 展开 本文转载自  https://blog ...

  6. 使用MATLAB对图像处理的几种方法(下)

     试验报告 一.试验原理: 图像点处理是图像处理系列的基础,主要用于让我们熟悉Matlab图像处理的编程环境.灰度线性变换和灰度拉伸是对像素灰度值的变换操作,直方图是对像素灰度值的统计,直方图均衡是对 ...

  7. Python下opencv使用笔记(十)(图像频域滤波与傅里叶变换)

    前面以前介绍过空间域滤波,空间域滤波就是用各种模板直接与图像进行卷积运算,实现对图像的处理,这个方案直接对图像空间操作,操作简单.所以也是空间域滤波. 频域滤波说究竟终于可能是和空间域滤波实现相同的功 ...

  8. MATLAB数字图像处理(二)图像增强

    1         图像增强 1.1            直方图均衡化 对于灰度图像,可以使用直方图均衡化的方法使得原图像的灰度直方图修正为均匀的直方图. 代码如下: I2=histeq(I1); ...

  9. opencv的频域滤波

    下面是频域滤波示例程序: 在本程序中,共有五个自定义函数,分别是: 1. myMagnitude(),在该函数中封装了Opencv中的magnitude函数,实现对于复数图像的幅值计算. 2. dft ...

随机推荐

  1. java(7)LinkedList源码

    系统环境 JDK1.7 LinkedList的基本结构 :在JDK1.6中LinkedList是双向引用的环形结构,JDK1.6中是双向引用的线性结构 提醒:看链表代码时最好用笔画下链表结构 有助于理 ...

  2. sencha touch Ext.app.Application

    Ext.app.Application一般用于app.js中 用来初始化整个应用 可以预先加载controllers(控制器),models(模型),stores(数据源),views(视图) 例如: ...

  3. Django配合MySQL学习Django模型外键的建立和使用

    Django 模型建立外键 在模型中建立外键是很简单的,基本操作如下 class Table(models.Model) column_name = models.ForeignKey(other-T ...

  4. Linux大文件已删除,使用df查看已使用的空间并未减少

    今天在一台Linux系统里,使用df命令查看磁盘使用情况,发现/根分区使用了100% 然后删除一大文件/var/lib/pgsql/9.1/pgstartup.log,再使用df查看使用情况,显示内容 ...

  5. 浅析重定向与反弹Shell命令

    0×01    简介 反弹shell在漏洞证明和利用的过程中都是一个直接有力的手段.由于安全工作或者学习的需要,我们或多或少都会接触到各种反弹shell的命令,于是就有了这个能稍微帮助初学者理解的文档 ...

  6. 数据库操作相关(sql语句-php)

    文件:db.config.smarty.php 这个文件主要是用于数据库配置 <?php $db = array( 'host'=>'localhost', 'user'=>'roo ...

  7. Linux命令记录----chkconfig命令

    chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法:chkconfig [--ad ...

  8. JavaScript之prototype对象

    简述prototype: 在js中,每个构造函数都有一个原型属性prototype,因为这个属性的值通常是一个对象,又叫原型对象!你不需要显式的去定义原型对象,因为每个构造函数都会一个原型属性,通常在 ...

  9. parameter/argument

    根据网上一些资料,对parameter和argument的区别,做如下的简单说明.1. parameter是指函数定义中参数,而argument指的是函数调用时的实际参数.2. 简略描述为:param ...

  10. 记一次Castle报错

    CJXX.ServiceTest.PersonRelationMgeSvrTest.GetPersonRelation:SetUp : Castle.MicroKernel.ComponentActi ...