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中去相关对比度拉伸——decorrstretch

【功能】使用去相关拉伸增强图像相关区域的颜色。 【语法介绍】 ·S=decorrstretch(I)对图像I进行去相关拉伸。I通常为RGB图像。返回值S与I具有相同的维数和...

radon变换介绍

简介 图像投影,就是说将图像在某一方向上做线性积分(或理解为累加求和)。如果将图像看成二维函数f(x, y),则其投影就是在特定方向上的线性积分,比如f(x, y)在垂直方向上的线性积分就是其在x轴...

MATLAB一些简单的图像处理程序

1 I=imread('pout.tif'); figure,imshow(I); [m,n]=size(I); Inew=zeros(floor(m/2),n); for i=1:m for...

Matlab保存图像的方法总结

1

Matlab数字图像处理之图像运算

由于这段时间在做一个图像处理与三维重建的项目,其中数字图像处理的知识是必不可少的,学习matlab也有一段时间了,所以现在抽点时间将这段时间所学的东西做个小总结,加深理解的同时也方便以后有需要时可以查...

MATLAB图像处理_感悟和总结

两个星期的图像处理研究学习差不多告一段落; 真的应了一句话,只有你接触某个领域,才真正可以体会到某个领域的魅力所在: 到目前为止

Matlab图像处理

Matlab 图像处理       MATLAB知识实验一 Matlab语言、数字图象基本操作一、实验目的 1、复习MATLAB语言的基本用法; 2、掌握MATLAB语言中图象数据与信息的读取方...
  • zhywsh
  • zhywsh
  • 2010-09-05 21:29
  • 8959

MATLAB数字图像处理(三)空间滤波

滤波是图像处理中常用的技术,可以锐化图像、模糊图像、去除噪声、增强图像等等。这里只讲空间滤波,频率域滤波将在以后讲。 空间滤波:简单来说,是用一个模板(3x3矩阵、5x5矩阵…一般为奇数)扣在图像上...

Matlab数字图像处理基础【3】

第三章 图像的灰度映射和直方图均衡化 目录: 3.1 图像的灰度映射     3.1.1 imadjust函数     3.1.2 自定义灰度映射函数 3.2 直方图均衡化     3.2.1 imh...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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