[关闭]
@shaobaobaoer 2018-10-27T15:30:29.000000Z 字数 3250 阅读 1559

《数字图像处理》第一次作业 :MATLAB 函数功能与数学原理

matlab 数字图像处理


************************************************************************
> File Name: 《数字图像处理》第一次作业 :MATLAB 函数功能与数学原理
> Author: 罗天涵
> Student-Id: 16121141
> Mail: luotianhan@126.com
************************************************************************

一. 搜集图像处理及其相关网站

二. 体验 google map

我在googlemap上找了找上大和喜马拉雅山的地图。在此附上几个截图

上海大学[]TIM截图20180921135701.png-269kB

喜马拉雅山[]TIM截图20180921135825.png-249.8kB

三.熟悉Matlab图像处理工具包

除了一般我们使用的工具外,还有一些别的内容。包括了绘图和应用程序TIM截图20180921104947.png-50.9kB

比如在绘图页面,我们可以产生出各种各样的图片。【a 为 长度为 100 的数组】

TIM截图20180921104711.png-55.9kB

另外还支持了其他的图片,比如极坐标

TIM截图20180921104736.png-49.6kB

应用程序页面有很多的应用程序,但是我还不是很用的来。随便挑选了一个,输入坐标系。看上去是生成3D模型的。

TIM截图20180921104932.png-99.8kB

四.imadjust

函数用法

函数 imadjust 是用于灰度级图像进行灰度变黄。该函数的一般格式如下所示

  1. G = IMADJUST(I,[LOW_IN; HIGH_IN],[LOW_OUT; HIGH_OUT],GAMMA)

该函数的功能是将图像f中灰度值映射为图像g找那个的新值。也就是将 [LOW_IN; HIGH_IN] 映射到 [LOW_OUT; HIGH_OUT] 之间,不在 in 区间的值则被去除。

参数分析

图像矩阵I

[LOW_IN; HIGH_IN]

[LOW_OUT; HIGH_OUT]

GAMMA

运算分析

对于上述图像,我们可以用一个表达式来概括,如下所示:

那么,曲线(A,C)->(B,D)可以用这个公式概括: 利用两点可求

之后,对所有图像的像素点 进行上述变换,令

最终,矩阵 B 就是 新图G的矩阵

五. imfilter

函数用法

对任意类型数组或多维图像进行滤波(线性)。其函数定义如下:

  1. g = imfilter(f, w, filtering_mode, boundary_options, size_options)

其中,f为输入图像,w为滤波掩模,g为滤波后图像。filtering_mode用于指定在滤波过程中是使用“相关”还是“卷积”。boundary_options用于处理边界充零问题,边界的大小由滤波器的大小确定

参数分析

  选项 描述
w 滤波掩模
filtering_mode ‘corr’ 通过使用相关来完成,该值为默认。
‘conv’ 通过使用卷积来完成
boundary_options ‘X’ 输入图像的边界通过用值X(无引号)来填充扩展 其默认值为0
‘replicate’ 图像大小通过复制外边界的值来扩展
‘symmetric’ 图像大小通过镜像反射其边界来扩展
‘circular’ 图像大小通过将图像看成是一个二维周期函数的一个周期来扩展
size_options ‘full’ 输出图像的大小与被扩展图像的大小相同
‘same’ 输出图像的大小与输入图像的大小相同。这可通过将滤波掩模的中心点的偏移限制到原图像中包含的点来实现,该值为默认值。

运算分析

关于滤波的计算方式,我觉得书上的内容不是很直观,用了网上的几个样例来帮助自己自己理解

一维相关空间滤波

20160601164335401.png-36.1kB

一维卷积空间滤波

20160601164349933.png-36.6kB

二维相关空间滤波

从一维扩展过去,比如说这里的25 (中心点),是通过
得到的

TIM截图20180921103520.png-12.9kB
-->

二维卷积空间滤波,和一维的相似,在此不多做提及,由此可见

以下是 matlab 的验证程序

  1. f =
  2. 0 0 1 0 0
  3. 0 0 1 0 0
  4. 1 1 1 1 1
  5. 0 0 1 0 0
  6. 0 0 1 0 0
  7. w =
  8. 1 2 3
  9. 4 5 6
  10. 7 8 9
  11. >> gd = imfilter(f,w)
  12. >> gd = imfilter(f,w,'full')
  13. gd =
  14. 0 0 9 8 7 0 0
  15. 0 0 15 13 11 0 0
  16. 9 17 33 31 29 15 7
  17. 6 11 27 25 23 9 4
  18. 3 5 21 19 17 3 1
  19. 0 0 9 7 5 0 0
  20. 0 0 3 2 1 0 0

六. fspecial

函数用法

fspecial函数用于建立预定义的滤波算子,其语法格式为:

  1. h = fspecial(type)
  2. h = fspecial(typepara)

其中type指定算子的类型,para指定相应的参数;

参数分析

运算分析

这里就分析一个拉普拉斯滤波器

拉普拉斯滤波器

拉普拉斯算子是n维欧式空间的一个二阶微分算子。它定义为两个梯度向量算子的内积。拉普拉斯滤波器可以有效的鉴别出图像的边缘

此处输入图片的描述

利用差分的方法。可以推出拉普拉斯算子在二维离散平面上的公式为

此处输入图片的描述

也就是书上的

另外,这个函数是近似的。如果把 差分误差 考虑进去(实际上我不知道它是如何算出来的),最终可以得到一个更为通用的拉普拉斯模板,也就是matlab中的 fscpecial('laplacian',alpha)其公式如下所示:

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注