数字图像处理课程设计 飞机边界的提取与叠加.docx

上传人:b****2 文档编号:489136 上传时间:2023-04-29 格式:DOCX 页数:23 大小:382.88KB
下载 相关 举报
数字图像处理课程设计 飞机边界的提取与叠加.docx_第1页
第1页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第2页
第2页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第3页
第3页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第4页
第4页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第5页
第5页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第6页
第6页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第7页
第7页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第8页
第8页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第9页
第9页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第10页
第10页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第11页
第11页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第12页
第12页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第13页
第13页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第14页
第14页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第15页
第15页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第16页
第16页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第17页
第17页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第18页
第18页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第19页
第19页 / 共23页
数字图像处理课程设计 飞机边界的提取与叠加.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字图像处理课程设计 飞机边界的提取与叠加.docx

《数字图像处理课程设计 飞机边界的提取与叠加.docx》由会员分享,可在线阅读,更多相关《数字图像处理课程设计 飞机边界的提取与叠加.docx(23页珍藏版)》请在冰点文库上搜索。

数字图像处理课程设计 飞机边界的提取与叠加.docx

数字图像处理课程设计飞机边界的提取与叠加

数字图像处理课程设计

 

题目飞机边界的提取与叠加

学院电子信息与电气工程学院

完成时间2015年12月29日

 

 

目录

第一章引言3

第二章数字图像处理的发展背景3

2.1数字图像处理简介3

2.2数字图像处理的目的和主要内容5

2.3数字图像处理的应用5

第三章MATLAB图像处理工具箱.6

3.1MATLAB简介6

3.2MATLAB图像处理常用的基本命令7

3.3数字图像处理的文件类型8

3.4常用图像操作8

第四章飞机边界的提取与叠加11

4.1图像的灰度变换11

4.2图像的二值化12

4.3图形闭运算13

4.4图像边界提取15

4.4.1边缘检测算子原理15

4.4.2几种边缘检测算子的比较16

4.5飞机边界的提取与叠加20

第五章结论22

参考文献22

附录:

程序23

第一章引言

数字图像处理技术在各个行业得到广泛的应用。

其交互式的图形界面是操作者方便使用这些技术的途径。

本题目将编制一个简易的图形界面读取各种格式的原始图像数据,并对它们自动分析和处理,得到所需要的有用信息,并把相关的信息显示出来,以便于工作人员研究分析。

本文是基于MATLAB数字图像处理工具包进行数字图像处理的设计,详细介绍数字图像处理工具的使用方法,并用MATLAB的图像处理工具箱进行了算法的实现。

本文重点论述了图像处理技术部分的理论和实现,根据所学过的图象分析方法,将飞机边界进行提取,并叠加在原图上具体要求:

将RGB图像转换成灰度模式图像,再将其进行二值化,所得图像进行闭运算,去掉暗点和圆角,最后对图像进行边界提取并叠加在原图上并显示所有的图像,对经过处理后的图像和未作处理后的图像进行对比分析

第二章数字图像处理的发展背景

2.1数字图像处理简介

数字图像处理起源于20世纪20年代。

当时人们通过Bartlane海底电缆图片传输系统,从伦敦到纽约传输了一幅经过数字压缩后的照片将传输时间从一周多减少到不到3小时。

使用技术在传输图片时首先在图片传输端进行图像编码,然后在接收端利用特殊的打印设备重构出该图片。

该应用已经包含了数字图像处理的知识,但还称不上真正意义的数字图像处理,因为它没有涉及到计算机。

经过几十年的研究与发展数字图像处理的理论和方法进一步完善,应用范围更加广阔已经成为一门新兴的学科并在向更高级的方向发展。

计算机对图像进行处理的学科主要讲解利用计算机处理图像的基本原理和方法进行去除噪声、增强、复原、分割、提取特征等理论。

数字图像处理的特点:

1易于控制处理效果

2处理精度高再现性好

3图像数据量庞大处理费时

4处理的多样性

5、图像处理技术综合性强掌握难度较大。

处理它的方法和技术称为数字图像处理DIP,DigitalImageProcessing随着计算机和信息技术的发展,数字图像处理的地位和作用越来越突出。

由于其实用价值高,应用范围极为广泛,现已应用于军事技术、政府部门和医疗卫生等多种领域。

图像处理的算法和实践都需要在计算机上实现,将MATLAB软件引入数字信号处理中。

MATLAB软件为数字图像处理提供了功能丰富的工具,通过计算机演示,将抽象的理论转化为形象可视化的图形,可以形象直观地展示出抽象复杂的内容。

2.2数字图像处理的目的和主要内容

数字图像处理的目的:

1.提高图像的视感质量以达到赏心悦目的目的。

2.提取图像中所包含的某些特征或特殊信息便于计算机分析。

3.对图像数据进行变换、编码和压缩便于图像的存储和传输。

图像处理系统平台多为MATLAB

数字图像处理的主要内容:

数字图像处理要求能够利用计算机完成图像信息的基本处理,包括利用计算机对数字图像进行获取、变换、增强、恢复、压缩编码、分割与边缘提取等的方法和原理。

数字图像化即把一组数字用连续的图像表示,便于用图像对数据进行分析处理,以获得形象直观的效果。

数字图像处理内容包括:

(1)图像数字化

(2)图像压缩(3)图像增强(4)图像分析(5)图像恢复(6)图像变换(7)图像分割

2.3数字图像处理的应用

数字图像处理的产生和迅速发展主要受三个因素的影响:

一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。

数字图像处理技术在20世纪60年代末和20世纪70年代初开始广泛应用于医学图像、地球遥感监测和天文学等领域。

其后军事、气象、环境、交通等学科领域的发展也推动了图像处理技术迅速发展。

图像处理的发展将围绕HDTV高清晰度电视的研制开展实时图像处理的理论及技术研究,向着高速、高分辨率、立体化、多媒体化、智能化和标准化方向发展。

图像、图形相结合朝着三维成像或多维成像的方向发展。

硬件芯片研究,把图像处理的众多功能固化在芯片上使之更便于应用新理论与新算法研究。

第三章MATLAB图像处理工具箱.

3.1MATLAB简介

MATLAB是MATrixLABoratory(“矩阵实验室”)的缩写,是由美国MathWorks公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。

是国际公认的优秀数学应用软件之一。

20世纪九十年代的时候,matlab已经成了国际控制界公认的标准计算软件。

2001年推出了matlab6.0版本,其中有simulink工具包。

开发了与外部进行直接数据交换的组件。

同时也推出了符号计算工具包。

它是一种科学计算软件,专门以矩阵的形式处理数据。

MATLAB将高性能的数值计算和可视化集成在一起,构成了一个方便的、界面友好的用户环境,并提供了大量的内置函数。

从而被广泛地应用于科学计算、算法开发—预设计和验证、数据采集、建模仿真与原型设计、数据分析研究与可视化、科学与工程绘图、应用开发环境、控制系统、信息处理、神经网络、图像处理、小波分析等领域的分析、仿真和设计工作,而且利用MATLAB产品的开放式结构,可以非常容易地对MATLAB的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高产品自身的竞争能力。

MATLAB中的数字图像是以矩阵形式表示的,这意味着MATLAB强大的矩阵运算能力用于图像处理非常有利,矩阵运算的语法对MATLAB中的数字图像同样适用。

本文对MATLAB图像处理工具箱进行探索及应用,实验证明该软件功能强大,语言简洁易学,人机界面友好,工具箱具有丰富的技术支持并集成了该领域专家的智慧,应用简单而效果良好。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。

MATLAB包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.

开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.

3.2MATLAB图像处理常用的基本命令

(1)clc擦去一页命令窗口,光标回屏幕左上角

(2)clear从工作空间清除所有变量

(3)clf清除图形窗口内容

(4)who列出当前工作空间中的变量

(5)whos列出当前工作空间中的变量及信息

(6)delete<文件名>从磁盘删除指定文件

(7)whech<文件名>查找指定文件的路径

(9)clearall从工作空间清除所有变量和函数

3.3数字图像处理的文件类型

静态图像可分为矢量图和位图矢量图:

矢量图是指用数学公式描述的图像。

矢量图形指由代数方程定义的线条或曲线构成的图形。

如:

表示一个圆形矢量图像保存了一个画圆的命令、圆心的坐标、半径的长度等等。

欲显示该圆矢量绘图软件则根据圆的坐标、半径等信息经过方程式计算将圆“画”在屏幕上。

优点文件数据量很小图像质量与分辨率无关这意味着无论将图像放大或缩小了多少次图像总是以显示设备允许的最大清晰度显示。

缺点不易制作色调丰富或色彩变化太多的图像而且绘出来的图像不是很逼真同时也不易在不同的软件间交换文件。

位图(点位图):

位图的基本构图单位是像素。

位图是通过许多像素点表示一幅图像,每个像素具有颜色属性和位置属性。

包含不同色彩信息的像素的矩阵组合构成了千变万化的图像。

位图可以从传统的相片、幻灯片上制作出来或使用数字相机得到。

位图分成如下四种:

单色图像、灰度图像、索引图像和真彩色图像。

3.4常用图像操作

读写图像文件:

1imread

imread函数用于读入各种图像文件,如:

a=imread('e:

\w01.tif')

2imwrite

imwrite函数用于写入图像文件,如:

imwrite(a,'e:

\w02.tif',’tif’)

3imfinfo

imfinfo函数用于读取图像文件的有关信息,如:

imfinfo('e:

\w01.tif')

图像的显示:

1image

image函数是MATLAB提供的最原始的图像显示函数,如:

a=[1,2,3,4;4,5,6,7;8,9,10,11,12];

image(a);

2imshow

imshow函数用于图像文件的显示,如:

i=imread('e:

\w01.tif');

imshow(i);

title(‘原图像’)%加上图像标题

3colorbar

colorbar函数用显示图像的颜色条,如:

i=imread('e:

\w01.tif');

imshow(i);

colorbar;

4figure

figure函数用于设定图像显示窗口,如:

figure

(1);/figure

(2);

5subplot

把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。

Subplot(m,n,p)分成m*n个小窗口,在第p个窗口中创建坐标轴为当前坐标轴,用于显示图形。

6plot

绘制二维图形

plot(y)

Plot(x,y)xy可以是向量、矩阵。

图像类型转换:

1rgb2gray

把真彩图像转换为灰度图像

i=rgb2gray(j)

2im2bw

通过阈值化方法把图像转换为二值图像

I=im2bw(j,level)

Level表示灰度阈值,取值范围0~1(即0.n),表示阈值取自原图像灰度范围的n%

3imresize

改变图像的大小

I=imresize(j,[mn])将图像j大小调整为m行n列

图像运算:

1imadd

两幅图像相加,要求同样大小,同种数据类型

Z=imadd(x,y)表示图像x+y

2imsubstract

两幅图像相减,要求同样大小,同种数据类型

Z=imsubtract(x,y)表示图像x-y

3immultiply

Z=immultiply(x,y)表示图像x*y

4imdivide

Z=imdivide(x,y)表示图像x/y

第四章飞机边界的提取与叠加

4.1图像的灰度变换

照片或电子方法得到的图像,常表现出低对比度即整个图像偏亮或偏暗,为此需要对图像中的每一像素的灰度级进行标度变换,扩大图像灰度范围,以达到改善图像质量的目的。

这一灰度调整过程可用imadjust()函数实现。

灰度变换:

A=rgb2gray(FILENAME,FMT),FILENAME指定图像文件的完整路径和文件名,FMT为图像文件的格式对应的标准扩展名。

程序代码如下:

%读出一幅图像

A=imread('e:

\feiji.jpg');

figure;imshow(A);

text(size(A,2),size(A,1)+15,...

'原图A',...%加上图像标题A

'FontSize',20,'HorizontalAlignment','right');

B=rgb2gray(A);%转换成灰度模式

figure;imshow(B);

text(size(B,2),size(B,1)+15,...

'灰度图B',...%加上图像标题B

运行以上程序得到图1,图2的效果图:

图1图2

灰度图2显示的是对原图1进行灰度变换够的图像。

变换后图像是一幅灰度级均匀分布的图像,这意味着图像灰度的动态范围得到了增加,从而可提高图像的对比度。

4.2图像的二值化

灰度图像的二值化:

利用点运算的阈值理论将灰度图像变为二值图像,为图像分析提供有利的条件,它的操作是根据阈值T,如果图像中某像素的灰度值小于阈值,则该像素的值设置为0,否则像素的值设为255,按下式对图像处理可以得到二值图像。

程序代码如下:

%读出一幅图像

A=imread('e:

\feiji.jpg');

figure;imshow(A);

text(size(A,2),size(A,1)+15,...

'原图A',...%加上图像标题A

'FontSize',20,'HorizontalAlignment','right');

B=rgb2gray(A);

figure;imshow(B);

text(size(B,2),size(B,1)+15,...

'灰度图B',...%加上图像标题B

'FontSize',20,'HorizontalAlignment','right');

level=graythresh(B);%得到合适的阈值

C=im2bw(B,level);%二值化

figure;imshow(C);

text(size(C,2),size(C,1)+15,...

'二值化C',...%加上图像标题C

'FontSize',20,'HorizontalAlignment','right');

运行以上程序:

图3图4

图4是是对灰度变换的图3进行二值化处理得到的二值化图像,经过二值化处理的图像,边缘轮廓鲜明,可以达到突出目标、淡化背景的作用,适合于处理简单的目标和逻辑判断。

4.3图形闭运算

腐蚀和膨胀是依据数学形态学集合论方法发展起来的图像处理方法,起源于岩相对岩石结构的定量描述工作,在数字图像处理和机器视觉领域中得到了广泛的应用,形成了一种独特的数字图像分析方法和理论。

数学形态学是图像处理和模式识领域的新方法,其基本思想是:

用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到图像分析和识别的目的。

优势有以下几点:

有效滤除噪声,保留图像中原有信息,算法易于用并行处理方法有效实现,基于数学形态学的边缘信息提取处理优于基于微分运算的边缘提取算法,提取的边缘比较平滑,提取的图像骨架也比较连续,断点少

腐蚀:

是一种消除边界点,使边界向内部收缩的过程。

可以用来消除小且无意义的物体。

膨胀:

是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。

可以用来填补物体中的空洞。

闭运算:

先膨胀后腐蚀的过程称为闭运算。

用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。

程序代码如下:

A=imread('e:

\feiji.jpg');

figure;imshow(A);

text(size(A,2),size(A,1)+15,...

'原图A',...%加上图像标题A

'FontSize',20,'HorizontalAlignment','right');

B=rgb2gray(A);figure;imshow(B);

text(size(B,2),size(B,1)+15,...

'灰度图B',...%加上图像标题B

'FontSize',20,'HorizontalAlignment','right');

level=graythresh(B);%得到合适的阈值

C=im2bw(B,level);%二值化

figure;imshow(C);

text(size(C,2),size(C,1)+15,...

'二值化C',...%加上图像标题C

'FontSize',20,'HorizontalAlignment','right');

SE=strel('square',3);%设置膨胀结构元素

D=imdilate(C,SE);%膨胀

SE1=strel('arbitrary',eye(5));%设置腐蚀结构元素

E=imerode(C,SE1);%腐蚀

%BW3=bwmorph(c,'open');%开运算

F=bwmorph(C,'close');figure;imshow(F);

text(size(F,2),size(F,1)+15,...

'闭运算F',...%加上图像标题F

'FontSize',20,'HorizontalAlignment','right');

图5图6

图6是对二值化图5进行闭运算得到的图像,

4.4图像边界提取

4.4.1边缘检测算子原理

在图像处理中,有一种十分实用的操作叫做边界提取,在提取了图像的边界后,就可以对图像进行进一步的操作如图像分割,特定区域的提取,骨架提取等等。

边缘检测是一种重要的区域处理方法,边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。

如果一个像素落在边界上,那么它的邻域将成为一个灰度级变化的带。

对这种变化最有用的两个特征是灰度的变化率和方向。

MATLAB工具箱提供的edge()函数可针对sobel算子、prewitt算子、Roberts算子、log算子和canny算子实现检测边缘的功能。

基于灰度的图像分割方法也可以用简单的

MATLAB代码实现。

为了计算方便起见,通常选择一阶和二阶导数来检测边界,利用求导方法可以很方便地检测到灰度值的不连续效果。

常用的边缘提取算子如下:

(1).罗伯特(Robert)算子Robert算子是一种利用局部差分算子寻找边缘的算子,该算子对具有陡峭的低噪声的图像效果较好。

(2).Sobel算子和Prewitt算子

为在检测边缘的同时减少噪声的影响,Prewitt从加大边缘检测算子的模板大小出发,由2×2扩大到3×3来计算差分算子,如表2所示。

采用Prewitt算子不仅能检测边缘点,而且能抑制噪声的影响。

Sobel在Prewitt算子的基础上,采用带权的方法计算差分,该算子不仅能检测边缘点,而且能进一步抑制噪声影响,但检测的边缘较宽。

(3)Canny算子

Canny算了检测边缘的方法是寻找图像梯度的局部极大值,梯度是用高斯滤波器的导数计算的。

该方法使用两个阈值来分别检测强边缘和弱边缘,而且仅当弱边缘与强边缘相连时,弱边缘才会包含在输出中。

此方法不容易受噪声的干扰,能够检测到真正的弱边缘。

因此,Canny算子在图像处理中应用越来越广泛。

它依据图像边缘检

4.4.2几种边缘检测算子的比较

常用的边界检测算子有罗伯特(Robert)算子、Sobel算子和canny算子。

在MATLAB中,系统提供edge函数,其功能是利用各种边界检测算子来检测灰度图像的边界。

函数edge的用法有以下几种:

1.BW=edge(I);

2.BW=edge(I,method);

3.BW=edge(I,method,thresh);

4.BW=edge(I,method,thresh,direction)

其中:

I:

输入图像;

method:

提取边界的方法,共有六种可取的值,即共有六种可使用:

’sobel’,’prewitt’,’roberts’,’log’,’zerocross’,’canny’,缺省时使用’sobel’;

thresh:

指定的阈值,所有不强于thresh的边都被忽略;

direction:

对于’sobel’和’prewitt’方法指定方向,可取为:

’horizontal’和’vertical’,’both’(缺省值)

BW:

返回的二值图像,其中1代表找到的边界。

在这些方法中,canny是较为优秀的一种,该方法使用两种不同的阈值分别检测强边界和弱边界,并且仅当弱边界和强边界相连时,才将弱边界包含在输出图像中。

因此,这种方法不容易被噪声干扰,更容易检测到真正的弱边界。

分别调用’sobel’,’prewitt’,’roberts’,’log’,’zerocross’和’canny’六种方法检测图像rice.tif的边界。

程序如下:

I=imread('rice.tif');

BW1=edge(I,'sobel');

BW2=edge(I,'prewitt');

BW3=edge(I,'roberts');

BW4=edge(I,'log');

BW5=edge(I,'zerocross');

BW6=edge(I,'canny');

imshow(I);title('图1:

rice.tif原图','fontsize',14,'position',[128,280,0]);

figure;imshow(BW1);title('图2:

sobel算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW2);title('图3:

prewitt算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW3);title('图4:

roberts算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW4);title('图5:

log算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW5);title('图6:

zerocross算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW6);title('图7:

canny算子提取的边界','fontsize',14,'position',[128,280,0])

运行结果如下:

图7图8图9

图10图11图12

图13

从上面结果我们可以看出,canny算子提取的边界较为完整。

在不用edge中第三种参数时,系统自动选择阈值,我们可以用函数的如下调用格式来看系统为我们选择的阈值是多少,我们先看如下程序为我们带来的结果:

I=imread('rice.tif');

[BW1,th1]=edge(I,'sobel');

th1str=num2str(th1)

imshow(I);

title('图1:

rice.tif原图','fontsize',14,'positio

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2