声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3470|回复: 1

[转帖][讨论] Matlab 中的图像处理

[复制链接]
发表于 2005-8-24 09:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
MATLAB自1984年由美国MathWorks1公司推向市场以来,历经十几年的发展,现已成为国际公认的最优秀的科技应用软件。<BR>  MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。<BR>  谈到MATLAB,就不能不涉及MathWorks公司的另一重要的伴随产品Simulink。Simulink是用来对真实世界的动力学系统建模、模拟和分析的软件。Simulink提供了基于MATLAB核心的数值、图形、编程功能的一个块状图界面,通过块与块的联线和属性设置,用户很容易构建出符合特定要求的模型,并对模型进行分析和模拟。<BR>MATLAB的组成<BR>  MATLAB大家庭有许多成员,包括应用程序开发工具、工具箱、数据存取工具、学生产品、状态流图、模块集、代码生成工具等。<BR>  其中,应用程序开发工具包括了MATLAB编译器、C/C++数学库、MATLAB Web服务器、MATLAB运行服务器,这些工具可以建立和发布独立于MATLAB环境的应用程序;工具箱实际上是一些高度优化并且是面向专门应用领域的函数的集合。仅随软件提供的工具箱可支持的领域就有信号和图象处理、控制系统设计、最优化、金融工程、符号数学、神经网络等等。工具箱的最大的特点是它的开放性,几乎所有函数都是用MATLAB语言写成的(只有少数工具箱的某些函数是使用C语言写成的动态库函数),因而可以直接阅读和加以改写,用户也可以自行开发适合特定领域的工具箱;数据存取工具提供了从外部数据源获取数据的简易途径,这些数据源包括外部硬件和外部数据库(与JDBC、ODBC兼容);而学生产品则是专门针对美国和加拿大地区的学生而发布的MATLAB的简易和廉价版本。<BR>  状态流图是一个专门针对事件驱动系统建模和设计的图形化的模拟环境;模块集是面向应用领域的模块(Simulink的基本单位)的集合,这些模块可以直接用于Simulink模型中;代码生成工具可以从Simulink模型或状态流图中产生可定制的C和Ada代码,以便实现快速原型和硬件在线模拟。<BR>MATLAB的特点<BR>  总的来说,该软件有三大特点。一是功能强大。具有数值计算和符号计算、计算结果和编程可视化、数学和文字统一处理、离线和在线计算等功能;二是界面友善、语言自然。MATLAB以复数处理作为计算单元,指令表达与标准教科书的数学表达式相近;三是开放性强。该公司本身就推出了30多个应用工具箱,而世界上超过200家公司开发出与MATLAB兼容的第三方产品,这些产品向用户提供更多的工具箱、模块集、与其他商业产品的接口等。下面仅对第二个特点作一些解释。<BR>  语言自然是MATLAB深受用户喜爱的重要原因之一。在MATLAB中,基本的计算单元是矩阵,复数或实数则可以理解为1×1的矩阵。MATLAB的很多运算都是直接针对矩阵的,所以表示起来也就特别方便。例如,复数“A=3+2i”,在MATLAB中表示就是“A=3+2i”。又如,要计算两个矩阵C、D的乘积,可以表示为“C×D”,而不像大多数计算机语言那样需要用户编写循环语句来实现。<BR>  MATLAB的这些特点使它获得了对应用学科(特别是边缘学科和交叉学科)的极强适应力,并很快成为应用学科计算机辅助分析、设计、教学,乃至科技文字处理不可缺少的基础软件。<BR>MATLAB与图象处理<BR>  图象处理工具包是由一系列支持图象处理操作的函数组成的,所支持的图象处理操作有:几何操作、区域操作和块操作;线性滤波和滤波器设计;变换(DCT变换);图象分析和增强;二值图象操作等。<BR>  图象处理工具包的函数,按功能可以分为以下几类:图象显示;图象文件输入与输出;几何操作;象素值和统计;图象分析与增强;图象滤波;线性二维滤波器设计;图象变换;领域和块操作;二值图象操作;颜色映射和颜色空间转换;图象类型和类型转换;工具包参数获取和设置等。<BR>  和其他工具包一样,用户还可以根据需要书写自己的函数,以满足特定的需要。也可以将这个工具包和信号处理工具包或小波工具包等其他工具包联合起来使用。<BR>  由于图象操作很多,这里仅仅以图象的噪声消除和边缘检测为例,来说明该工具包的基本使用方法。<BR>  图象的噪声消除操作<BR>  在图象处理中,经常要对噪声污染的图象进行去噪操作。图象处理工具包提供了多种消除或降低噪声的方法。不同的方法应用于不同种类的噪声。这些方法是:线性滤波、中值滤波和自适应滤波等。此外为了模拟各种噪声的作用,工具包还提供了imnoise()函数,通过这个函数,可以向图象加入各种不同的噪声。<BR>  当然,图象降质的原因是多种多样的,可以根据不同的降质原因建立相应的数学模型,由于MATLAB强大的数学功能,无论使用连续或是离散方法,都是可能的。举个最简单的例子,如果图象降质是由于附加了背景噪声图案而引起,那么只要知道了背景图案,两幅图相差就可以较好的恢复原图象。这在MATLAB中用两个矩阵相减就可实现。<BR>  图象的边缘检测<BR>  为了进一步显示MATLAB的友好的用户界面功能,下一个例子是随工具包带的一个名为“edgedemo”的演示程序(代码也是可见的)。<BR>  在MATLAB集成环境中运行edgedemo,将出现一个图形窗口界面,这是一个典型的MATLAB应用程序和用户交互的图形界面。MATLAB5.1版以后,这个界面可以很方便地用软件所带的图形用户界面生成工具(GUI tools)生成。<BR>  本例是对名为“Rice”的图象应用“Sobel”算子,用户还可以设定检测的阈值和方向等参数。实际上,这个演示程序使用了工具包提供的“edge”函数,该函数以图象强度作为输入参数之一,输出一幅二值图象,图象中象素值为“1”,表示的是边缘上的点,“0”表示非边缘点。该函数提供了6种检测边缘的方法,如“Sobel”、“Prewitt”等。针对每种方法又可设置不同类型和数目的参数,下面的调用即是一例。<BR><BR>  其中“THRESH”规定了检测的敏感性阈值,凡是边强度小于这个阈值,就不认为是检测到了边界。“DIRECTION”规定了检测的方向,它的值是一个字符串,用来表示只检测水平方向的边界(当为“horizontal”时),还是只检测垂直方向的边界(当为“vertical”时)。它的默认值是“both”,表示同时检测两个方向的边界。由前面讲的MATLAB函数调用的特点,默认的调用就可简单地表示为如下语句。<BR><BR>  如果连阈值也不想自己指定,而由函数本身根据图象的性质来自动确定,但又想在函数返回时知道这个值,这时的调用可表示为如下语句。<BR><BR>  可以看到,函数的返回值实际上有多个(“BW”和“thresh”),但由于用中括号括起表示为一个矩阵,所以又可认为只有一个返回参数,这也体现了MATLAB引入矩阵概念的统一性和优越性。<BR>  正是由于MATLAB的各种优势和特点,在国外的高等院校里,MATLAB已经成为大学生、硕士生、博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB已经成为研究和解决各种具体工程问题的一种标准软件。<BR>
回复
分享到:

使用道具 举报

发表于 2009-6-7 08:59 | 显示全部楼层
只是一个简单的介绍而已
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-5 11:29 , Processed in 0.069652 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表