MATLAB图像处理基础知识学习总结(MATLAB操作命令)

原创 2016年08月29日 20:47:17

matlab一些指令,便于后期查询

这些知识感觉学完还是记不住,这里自己总结了哈,希望能够加强记忆

  • 图象显示

  1. 标准图像显示技术
  2. 特殊图象显示技术

  • 图像运算  

              代数运算

             a.图像相减取绝对值差:K=imabsdiff(I,J)  

             b.图像求补:h=imcomplement(I)

              空间变换

             a.缩放图像

                            imresize

             b.旋转图像

                            imrotate

             c.修建图像

                            mcrop

             d.空间变换

                          imtransform
              图像配准


  • 图像数据变换

      二维傅立叶

iff2

离散余弦

a.   dct2函数

b.    dctmtx函数

其他变换 

1)radon变换:

2)fanbeam变换:

                 

  • 图像分析与增强

        A像素值及统计

             1)impixel :计算像素数据值
             2)improfile:计算和绘制图像中一条或多条线段上的所有象素的灰度值(沿图像路径数据值)
             3)   contour(I,N):(中文意思为轮廓):这个函数显示灰度图的等值线轮廓,能够自动设置坐标对象与显示图像相匹配,这里N指定了等高线的条数
     4)  imhist:    (图像柱状图【直方图】),显示索引图或灰度图的灰度分布,索引的图像只支持一个图层并且只有一个索引彩色通道。
     5)  其他统计方式

图像分析

MATLAB图像分析技术可以提取图像的结构信息,利用edge探测边界

首先回顾一下边缘检测的一般步骤:

边缘检测算法一般包含如下四个步骤:

  1.滤波(去噪)

  2.增强(一般是通过计算梯度幅值)

  3.检测(在图像中有许多点的梯度幅值会比较大,而这些点并不都是边缘,所以应该用某种方法来确定边缘点,比如最简单的边缘检测判据:梯度幅值阈值)

  4.定位(有的应用场合要求确定边缘位置,可以在子像素水平上来估计,指出边缘的位置和方向)

 边缘检测方法比较常用的有基于各种算子的方法,有基于一阶导数的各种算子(Roberts、Sobel、Prewitt等),还有基于二阶导数的拉普拉斯算子等。其中一阶导数一般找梯度极大值。二阶导数找过零点(需要忽略无意义的过零点(即均匀零区))。

1) 灰度图像的边缘检测:edge函数
BW=edge(I,method,thresh,direction/sigma)
其中method可以取‘sobel’【注:在边缘检测中,常用的一种模板是Sobel 算子。Sobel 算子有两个,一个是检测水平边缘的 ;另一个是检测垂直边缘的 
 'prewitt'【注:Prewitt算子是在图像空间利用两个方向模板与图像进行邻域卷积完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。
'roberts'【注:Roberts边缘算子是一个2x2的模板,采用的是对角方向相邻的两个像素之差。从图像处理的实际效果来看,边缘定位较准,对噪声敏感。
'log'【注:用高斯滤波器的拉普拉斯运算对I进行滤波,然后通过寻找0相交检测边缘】
‘zerocross’【注:用指定的滤波器对I滤波厚,寻找0相交边缘检测】
'canny'【 用高斯滤波器计算得到的局部最大梯度来检测边缘】
'thresh'【注:用于指定灵敏阈值】
‘sigma’【指定标准差】
小结:在上面的方法中,canny边缘检测比较清晰,log与zerocross除了有canny检测的轮廓,还有其他的杂边,而剩下边缘检测方法边检测不太全阿。

2)四叉树分解:qtdecomp函数(这部分转自uleen博客       

 
     一个简单的示例(来自MATLAB help for qtdecomp):
原始矩阵:
I =
    1    1    1    1    2    3    6    6
    1    1    2    1    4    5    6    8
    1    1    1    1    7    7    7    7
    1    1    1    1    6    6    5    5
   20   22   20   22    1    2    3    4
   20   22   22   20    5    4    7    8
   20   22   20   20    9   12   40   12
   20   22   20   20   13   14   15   16
>> S = qtdecomp(I,.05) %执行四叉分解,阈值为0.05,实际上的阈值是ceil(0.05*255)=13,因为I是uint8类的
S =
   (1,1)        4
   (5,1)        4
   (1,5)        4
   (5,5)        2
   (7,5)        2
   (5,7)        2
   (7,7)        1
   (8,7)        1
   (7,8)        1
   (8,8)        1

S是一个稀疏阵,全显示为:
>> disp(full(S));
     4     0     0     0     4     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     4     0     0     0     2     0     2     0
     0     0     0     0     0     0     0     0
     0     0     0     0     2     0     1     1
     0     0     0     0     0     0     1     1

过程:

图像的四叉分解

图像的四叉分解


图像的四叉分解

含义:
图像的四叉分解

    3)获得四叉树分解块值:qtdgetblk函数

       4)设置四叉树分解块值:qtsetblk函数

          C 图像调整

            图像调整技术用于图像的改善,包括提高图像信噪比、通过修正图像的颜色和灰度使某些特征更容易识别。

        1)图像灰度调整(imadjust)

       通过调节灰度范围数据,来实现增大或缩小图像对比度效果


            2)使用直方图调整灰度(histeq)

(首先进行直方图均衡,再通过直方图均衡转换灰度图像的亮度值或索引值图像的颜色图值来增强图像对比度,输出图像的直方图近似于给定直方图)
             3)图像色彩加强(decorrstretch)

              

     D 图像平滑

          目的:减少噪声
        3种方法:

1)线性滤波

线性滤波可以从图像中去除特定成分噪音,用imfilter函数实现线性滤波

      B=imfilter(A,H)         其中H为滤波器类型
fspecial:用于建立预定义的滤波算子,其语法格式为:H = fspecial(type)
                                                                                                 H = fspecial(type,para)其中type指定算子的类型,para指定相应的参数;type可以为以下几种:(这部分粘贴来自百度)
                       

'average'

averaging filter

为均值滤波,参数为hsize代表模板尺寸,默认值为[3,3]。

H = FSPECIAL('average',HSIZE) returns an averaging filter H of size

HSIZE. HSIZE can be a vector specifying the number of rows and columns in

H or a scalar, in which case H is a square matrix.

The default HSIZE is [3 3].

折叠'disk'

circular averaging filter

为圆形区域均值滤波,参数为radius代表区域半径,默认值为5.

H = FSPECIAL('disk',RADIUS) returns a circular averaging filter

(pillbox) within the square matrix of side 2*RADIUS+1.

The default RADIUS is 5.

折叠'gaussian'

Gaussian lowpass filter

为高斯低通滤波,有两个参数,hsize表示模板尺寸,默认值为[3 3],sigma为滤波器的标准值,单位为像素,默认值为0.5.

H = FSPECIAL('gaussian',HSIZE,SIGMA) returns a rotationally

symmetric Gaussian lowpass filter

of size HSIZE with standard

deviation SIGMA (positive). HSIZE can be a vector specifying the

number of rows and columns in H or a scalar, in which case H is a

square matrix.

The default HSIZE is [3 3], the default SIGMA is 0.5.

折叠'laplacian'

filter approximating the 2-D Laplacian operator

为拉普拉斯算子,参数alpha用于控制算子形状,取值范围为[0,1],默认值为0.2.

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 ALPHA is 0.2.

折叠'log'

Laplacian of Gaussian filter

为拉普拉斯高斯算子,有两个参数,hsize表示模板尺寸,默认值为[3 3],sigma为滤波器的标准差,单位为像素,默认值为0.5.

H = FSPECIAL('log',HSIZE,SIGMA) returns a rotationally symmetric

Laplacian of Gaussian filter of size HSIZE with standard deviation

SIGMA (positive). HSIZE can be a vector specifying the number of rows

and columns in H or a scalar, in which case H is a square matrix.

The default HSIZE is [5 5], the default SIGMA is 0.5.

折叠'motion'

motion filter

为运动模糊算子,有两个参数,表示摄像物体逆时针方向以theta角度运动了len个像素,len的默认值为9,theta的默认值为0;

H = FSPECIAL('motion',LEN,THETA) returns a filter to approximate, once

convolved with an image, the linear motion of a camera by LEN pixels,

with an angle of THETA degrees in a counter-clockwise direction. The

filter becomes a vector for horizontal and vertical motions.

The

default LEN is 9, the default THETA is 0, which corresponds to a

horizontal motion of 9 pixels.

折叠'prewitt'

Prewitt horizontal edge-emphasizing filter

用于边缘增强,大小为[3 3],无参数

H = FSPECIAL('prewitt') returns 3-by-3 filter that emphasizes

horizontal edges by approximating a vertical gradient. If you need to

emphasize vertical edges, transpose the filter H: H'.

[1 1 1;0 0 0;-1 -1 -1].

折叠'sobel'

Sobel horizontal edge-emphasizing filter

用于边缘提取,无参数

H = FSPECIAL('sobel') returns 3-by-3 filter that emphasizes

horizontal edges utilizing the smoothing effect by approximating a

vertical gradient. If you need to emphasize vertical edges, transpose

the filter H: H'.

[1 2 1;0 0 0;-1 -2 -1].

折叠'unsharp'

unsharp contrast enhancement filter

为对比度增强滤波器。参数alpha用于控制滤波器的形状,范围为[0,1],默认值为0.2.

H = FSPECIAL('unsharp',ALPHA) returns a 3-by-3 unsharp contrast

enhancement filter. FSPECIAL creates the unsharp filter from the

negative of the Laplacian filter with parameter ALPHA. ALPHA controls

the shape of the Laplacian and must be in the range 0.0 to 1.0.

The default ALPHA is 0.2.


   2)中值滤波(medfilt2)

            特点:a.非线性处理方法;b.一定条件下克服了线性滤波模糊问题;c.适用滤除脉冲干扰以及图像扫描噪声;d.对于一些细节多,点、线、尖顶部多不宜用;

   3)自适应滤波(wiener2)

                      针对高斯白噪声的去除效果最好

  • 图像区域处理

             1)区域设置
       通过二值掩模来实现。
                a.形状旋转法:(与图像内容和属性无关)可使用MATLAB中的impoint,imline,imrect,imeclipse,imploy,imfreehand分别用于可拉伸点,可拉伸线,矩形区域,椭圆区域,多边形区域和自由选择区域。
b.属性选择法(与图像属性有关)基于颜色使用roicolor函数
     2)区域滤波
               roifilt2
               a.读入灰度图;b.设置处理区域;c.滤波操作

             3)区域填充
                     roifill

  • 形态学操作
      1)图像膨胀
           imdilate()


             2)图像腐蚀
             imerode()
             3)形态学重建
  • 颜色处理
                显示颜色:
                        get(0,‘ScreenDepth’)

               减少颜色
               转换颜色

相关文章推荐

matlab 图像处理函数总结

函数名称: imcrop 函数功能: 在MATLAB中,该函数用于返回图像的一个裁剪区域。 调用格式: I2 = imcrop(I) X2 = imcrop(X,map) ...

Delphi7高级应用开发随书源码

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

MATLAB数字图像处理(一)图像的基本操作

写在前头:说到数字图像处理,不得不提起MATLAB。这是一款非常方便的仿真软件,绝大多数的图像处理可以用MATLAB完成。   有人问,处理图片,用PS岂不是更好。两者各有优点,如果需要将10000...

Matlab 图像处理总结

学习了一段时间的数字图像处理,现在把我所做的分享出来和大家交流下,因为是用MATLAB GUI 做的,有些界面并未给出,如果你想直接复制运行可能出不来结果, 所以仅仅当作参考。 基本界面 ...

数字图像处理之低通滤波器实现原理及方法(Matlab)

转自http://blog.csdn.net/zhoufan900428/article/details/17194289 1.傅里叶变换与频域         在之前的文中,我们已经...

MATLAB图像处理基础知识

1、MATLAB支持的图像文件格式 (1)JPEG(Joint Photographic Experts Group):一种称为联合图像专家组的图像压缩格式。 (2)BMP(Windows Bit...

MATLAB图像处理笔记_1_基础知识

读取图像% 读取图像 img = imread('filename.jpg');% 查询图像的大小 [m, n] = size(img);% 查询数组的附加信息 whos img显示图像% 方式一 i...

matlab 图像处理基础知识

数字图像文件的类型:BMP,GIF,JPEG,ICO,HDF,PNG,TIFF,DICOM matlab矩阵: 一。矩阵创建 1.普通矩阵的建立:不管是任何的矩阵(向量),都可以直接按行方式输入每个...
  • A4079
  • A4079
  • 2014年03月04日 11:05
  • 693

1.MATLAB图像处理基础知识

在MATLAB中,基本数据结构为数列,大部分图像也是以数列的方式存储的,例如,包含1024列768行的彩色图像,在MATLAB中被存储为1024X768的矩阵;其中,矩阵的值为色彩值。这样就把图像变成...

matlab图像处理基础知识0(双线性插值matlab实现--调整水平和垂直放大倍数)

需求说明:图像处理FPGA实现前期算法准备 当前算法:已通过matlab验证成功 function scaler_bilinear() %--------------------...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MATLAB图像处理基础知识学习总结(MATLAB操作命令)
举报原因:
原因补充:

(最多只允许输入30个字)