
学生姓名: 专业班级: 通信
指导教师: 工作单位: 信息工程学院
题 目: MATLAB图像处理
初始条件:
(1)MATLAB软件
(2)数字信号处理与图像处理基本知识
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
(1)能够对图像亮度和对比度变化调整,并比较结果;
(2)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的和旋转操作,并保存,比较几种插值的效果;
(3)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果;
(4)对图像加入各种噪声,比较效果。
时间安排:
第12周:安排任务,分组
第13-14周:设计仿真,撰写报告
第15周:完成设计,提交报告,答辩
指导教师签名: 年 月 日
系主任(或责任教师)签名: 年 月 日
摘 要
数字图像处理技术是20世纪60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应用前景。
MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。 MATLAB中集成了功能强大的图像处理工具箱。由于MATLAB语言的语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式,而且这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势。
本文基于MATLAB的图像处理的基本运算,首先对图像进行了亮度和对比度的调整、旋转、缩放等操作,然后对图像进行了直方图统计和直方图均衡,最后对图像加入了各种噪声并进行了去噪处理。
关键词:数字图像处理,MATLAB
1 绪论
1.1 数字图像处理简介
数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。
数字图像处理有以下6种常用方法:
1)图像变换
由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅立叶变换可在频域中进行数字滤波处理)。目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。
2)图像编码压缩
图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。
3)图像增强和复原
图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;如强化低频分量可减少图像中噪声影响。图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立“降质模型”,再采用某种滤波方法,恢复或重建原来的图像。
4)图像分割
图像分割是数字图像处理中的关键技术之一。图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一。
5)图像描述
图像描述是图像识别和理解的必要前提。作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。对于特殊的纹理图像可采用二维纹理特征描述。随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法。
6)图像分类(识别)
图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类,近年来新发展起来的模糊模式识别和人工神经网络模式分类在图像识别中也越来越受到重视。
1.2 MATLAB简介
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
Matlab语言有如下特点:
1)编程效率高
它是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,且比Basic、Fortran和C等语言更加接近我们书写计算公式的思维方式,用Matlab编写程序犹如在演算纸上排列出公式与求解问题。因此,Matlab语言也可通俗地称为演算纸式科学算法语言由于它编写简单,所以编程效率高,易学易懂。
2)用户使用方便
Matlab语言是一种解释执行的语言(在没被专门的工具编译之前),它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。人们用任何一种语言编写程序和调试程序一般都要经过四个步骤:编辑、编译、连接以及执行和调试。各个步骤之间是顺序关系,编程的过程就是在它们之间作瀑布型的循环。Matlab语言与其它语言相比,较好地解决了上述问题,把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作快速排除输入程序中的书写错误、语法错误以至语意错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言。
3)扩充能力强
高版本的Matlab语言有丰富的库函数,在进行复杂的数算时可以直接调用,而且Matlab的库函数同用户文件在形成上一样,所以用户文件也可作为Matlab的库函数来调用。因而,用户可以根据自己的需要方便地建立和扩充新的库函数,以便提高Matlab使用效率和扩充它的功能。另外,为了充分利用Fortran、C等语言的资源,包括用户已编好的Fortran,C语言程序,通过建立Me调文件的形式,混合编程,方便地调用有关的Fortran,C语言的子程序。
4)语句简单,内涵丰富
Mat1ab语言中最基本最重要的成分是函数,其一般形式为「a,6,c……] = fun(d,e,f,……),即一个函数由函数名,输入变量d,e,f,……和输出变量a,b,c……组成,同一函数名F,不同数目的输入变量(包括无输入变量)及不同数目的输出变量,代表着不同的含义(有点像面向对象中的多态性。这不仅使Matlab的库函数功能更丰富,而大大减少了需要的磁盘空间,使得Matlab编写的M文件简单、短小而高效。
5)高效方便的矩阵和数组运算
Matlab语言象Basic、Fortran和C语言一样规定了矩阵的算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符,而且这些运算符大部分可以毫无改变地照搬到数组间的运算,有些如算术运算符只要增加“·”就可用于数组间的运算,另外,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。在此基础上,高版本的Matlab已逐步扩展到科学及工程计算的其它领域。因此,不久的将来,它一定能名符其实地成为“万能演算纸式的”科学算法语言。
6)方便的绘图功能
Matlab的绘图是十分方便的,它有一系列绘图函数(命令),例如线性坐标、对数坐标,半对数坐标及极坐标,均只需调用不同的绘图函数(命令),在图上标出图题、XY轴标注,格(栅)绘制也只需调用相应的命令,简单易行。另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。这种为科学研究着想的设计是通用的编程语言所不及的。
2 图像的获取
2.1 图像的读取与保存
利用函数imread()可完成图形图像文件的读取,其调用格式为:
a=imread(filename,fmt)
[X,map]=imread(filename,fmt)
[...]=imread(filename)
[...]=imread(filename,idx) (只对TIF格式的文件)
[...]=imread(filename,ref) (只对HDF格式的文件)
通常,读取的大多数图像均为8bit,当这些图像加载到内存中时,Matlab就将其存放在类uint8中。此为Matlab还支持16bit的PNG和TIF图像,当读取这类文件时,Matlab就将其存贮在uint16中。对于索引图像,即使图像阵列的本身为类uint8或类uint16,imread函数仍将颜色映象表读取并存贮到一个双精度的浮点类型的阵列中。
利用函数imwrite()可以完成对图像数据的保存操作,语法:
imwrite(A,filename,fmt)
imwrite(X,map,filename,fmt)
imwrite(...,filename)
imwrite(...,Param1,Val1,Param2,Val2...)
A可以是一个M -的- N的(灰度图像)或M -的- N的按3(真彩色图像)阵列,但它不能是一个空数组。至于TIFF文件,A可以是一个m -的- N的× 4数组,包含颜色数据,使用的CMYK色彩空间。对于GIF文件,A可以是一个m -的- N的按1由- P的含灰度或索引图像阵列 - RGB图像不支持。
程序如下:
ren=imread('C:\\matlab7\我的 %读取图像路径
figure
subplot(1,1,1)
imshow(ren); %显示图像
title('原彩色图')
imwrite(ren,'C:\\matlab7\我的\
得到的彩色图像如下
图2.1 原彩色图
说明:所选择的彩色图的像素为1600*900。
3 图像的处理
3.1 图像的亮度和对比度调整
图像的亮度和对比度调整分别使用函数imadjust()和rgb2gray()函数。
3.1.1 图像的亮度调整
图像的亮度调整使用imadjust()函数,其调用格式如下:
J = imadjust(I)
J = imadjust(I,[low_in; high_in],[low_out; high_out])
J = imadjust(I,[low_in; high_in],[low_out; high_out],gamma)
newmap = imadjust(map,[low_in; high_in],[low_out; high_out],gamma)
RGB2 = imadjust(RGB1,...)
其中gamma 表示映射性质,默认值是1 ,表示线性映射。
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
figure
subplot(1,2,1)
imshow(ren); %显示图像
title('原彩色图')
y=imadjust(ren,[0.15 0.6], [0 1]); %增亮图像
subplot(1,2,2)
imshow(y);
title('增亮图')
进行增亮处理后的图像与源图像的对比图:
图3.1 进行增亮处理后的图像
结果比较:增量处理后的图像的亮度明显高于原图像。
3.1.2 图像的对比度调整
图像的对比度调整使用函数rgb2gray()。其调用格式为:I = rgb2gray(RGB)。
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
figure
subplot(1,2,1)
imshow(ren); %显示图像
title('原彩色图')
y=rgb2gray(ren); %RGB图像转换为灰度图像
subplot(1,2,2)
imshow(y);
title('灰度图')
转化后得到的灰度图如下:
图3.2 转化后的灰度图
3.2 区域图像的选取与保存
在MATLAB中,用函数imcrop实现对图像的剪切操作。无论待处理图像是二维还是三维数据,该函数都能对其进行操作。下图是对三维图像的截图:
其调用格式如下:
I = imcrop
I2 = imcrop(I)
X2 = imcrop(X, map)
I = imcrop(h)
I2 = imcrop(I, rect)
X2 = imcrop(X, map, rect)
[...] = imcrop(x, y,...)
[I2 rect] = imcrop(…)
[X,Y,I2,rect] = imcrop(…)
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
figure
subplot(1,2,1)
imshow(ren); %显示图像
title('原彩色图')
x=imcrop(ren,[0 0 600 600]); %截图
subplot(1,2,2)
imshow(x);
保存图像
title('截图')
截图后得到的图像如下:
图3.3 截图处理后的图像
3.3 利用算法对图像的处理
3.3.1 最近邻插值法
最近邻插值法:也称作零阶插值,就是令变换后像素的灰度值等于距它最近的输入像素的灰度值。 特点:造成的空间偏移误差为像素单位,计算简单。但当图像中的像素灰度级有细微变化时,该方法会在图像中产生人工的痕迹。
3.3.1.1 图像的放大和缩小
图像的放大和缩小使用函数imresize(A,scale,method),其中的scale代表图像的放大(或缩小)倍数,若取值大于0小于1,则缩小scale倍。若取值大于1,则放大相应的倍数。Method代表图像的放大(或缩小方式),通常有三种方式:nearest,bilinear,bicubic。其调用格式如下:
B = imresize(A, scale)
B = imresize(A, [mrows ncols])
[Y newmap] = imresize(X, map, scale)
[...] = imresize(..., method)
[...] = imresize(..., parameter, value, ...)
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
figure
subplot(1,2,1)
imshow(ren); %显示图像
title('原彩色图')
x=imresize(ren,2,'nearest'); %最近邻插值法放大
subplot(1,2,2)
imshow(x);
title('最近邻插值法放大');
最近邻插值法发达处理后的图像:
图3.4 最近邻最近邻插值法放大处理后的图像
ren=imread('C:\\matlab7\我的读取图像路径
figure
subplot(1,2,1)
imshow(ren); %显示图像
title('原彩色图')
x=imresize(ren,0.5,'nearest'); %最近邻插值法缩小
subplot(1,2,2)
imshow(x);
title('最近邻插值法缩小');
图3.5 最近邻最近邻插值法缩小处理后的图像
结果说明:处理后看不出来放大(或缩小)的效果,这是由于坐标轴的原因,如果把处理后的图片保存起来,再把处理后的文件打开,就可以看到比较明显的放大(或缩小)效果。
3.3.1.2 图像的旋转
1)上下翻转:
上下翻转使用函数flipud(),其调用格式为B = flipud(A)。
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
huidutu=rgb2gray(ren); %RGB图像转换为灰度图
subplot(1,2,1)
imshow(huidutu);
title('原图');
huidutu=flipud(huidutu); %上下翻转
subplot(1,2,2)
imshow(huidutu);
title('上下翻转');
图3.6 最近邻插值法上下翻转处理后的图像
2)左右翻转:
左右翻转使用函数fliplr(),其调用格式为B = fliplr(A)
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
huidutu=rgb2gray(ren); %RGB图像转换为灰度图
subplot(1,2,1)
imshow(huidutu);
title('原图');
huidutu=fliplr(huidutu); %左右翻转
subplot(1,2,2)
imshow(huidutu);
title('左右翻转');
图3.7 最近邻插值法左右翻转处理后的图像
3)任意角度翻转
任意角度翻转使用函数imrotate(),其调用格式如下:
B = imrotate(A,angle)
B = imrotate(A,angle,method)
B = imrotate(A,angle,method,bbox)
其中的angle为图像翻转角度,可以为负值。Method为图像的处理方式,通常有三种方式:nearest,bilinear,bicubic。
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
huidutu=rgb2gray(ren); %RGB图像转换为灰度图
subplot(1,2,1)
imshow(huidutu);
title('原图');
x=imrotate(huidutu,30,'nearest','crop') %任意角度翻转翻转
subplot(1,2,2)
imshow(x);
title('任意角度翻转');
图3.8 最近邻插值法任意角度翻转处理后的图像
3.3.2 双线性插值法
双线性插值,又称为双线性内插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。
3.3.2.1 图像的放大和缩小
图像的双线性插值放大算法中,目标图像中新创造的象素值,是由源图像位置在它附近的2*2区域4个邻近象素的值通过加权平均计算得出的。双线性内插值算法放大后的图像质量较高,不会出现像素值不连续的的情况。然而次算法具有低通滤波器的性质,使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊
由于用双线性插值法对图像进行处理调用的函数与最近邻插值法相同,故在此不再做说明。
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
figure
subplot(1,2,1)
imshow(ren); %显示图像
title('原彩色图')
x=imresize(ren,5,'bilinear'); %双线性插值法放大图像
subplot(1,2,2)
imshow(x);
title('双线性插值放大');
图3.9 双线性插值法放大处理后的图像
ren=imread('C:\\matlab7\我的读取图像路径
figure
subplot(1,2,1)
imshow(ren); %显示图像
title('原彩色图')
x=imresize(ren,0.5,'bilinear'); %双线性插值法缩小图像
subplot(1,2,2)
imshow(x);
title('双线性插值法缩小');
图3.10 双线性插值法缩小处理后的图像
说明:处理后看不出来放大(或缩小)的效果,这是由于坐标轴的原因,如果把处理后的图片保存起来,再把处理后的文件打开,就可以看到比较明显的放大(或缩小)效果。
3.3.2.2 图像的旋转
任意角度翻转
采用双线性插值法对图像进行任意角度旋转处理,只需将imrotate()函数中method换成'bilinear'即可完成操作。
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
huidutu=rgb2gray(ren); %RGB图像转换为灰度图
subplot(1,2,1)
imshow(huidutu);
title('原图');
x=imrotate(huidutu,30,'bilinear','crop') %任意角度翻转翻转
subplot(1,2,2)
imshow(x);
title('任意角度翻转');
图3.11 双线性插值法任意角度翻转处理后的图像
3.4 图像的直方图统计和直方图均衡
3.4.1 图像的直方图统计
图像的直方图统计使用函数imhist()。其调用格式如下:
imhist(I)
imhist(I, n)
imhist(X, map)
[counts,x] = imhist(...)
其中,x矩阵的数据是0~255灰度值的统计个数,如果直接对x矩阵数据进行图形图显示,由于有256个数据,在坐标系中就会很密集,为了更清楚的显示条形图,所以在程序设计时,把x数据进行部分提取:
x1=x(1:10:256);
horz=1:10:256;
bar(horz,x1);
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
huidutu=rgb2gray(ren); %RGB图像转换为灰度图像
x=imhist(huidutu); %直方图统计
x1=x(1:10:256);
horz=1:10:256;
bar(horz,x1);
title('直方图统计')
图3.12 直方统计图
3.4.2 图像的直方图均衡
对图像进行直方图均衡处理,用函数histeq(),其同样只使用于二维数据,所以也要对二维和三维数据分开处理。其调用格式如下:
J = histeq(I, hgram)
J = histeq(I, n)
[J, T] = histeq(I,...)
newmap = histeq(X, map, hgram)
newmap = histeq(X, map)
[newmap, T] = histeq(X,...)
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
huidutu=rgb2gray(ren); %RGB图像转换为灰度图像
subplot(1,2,1)
imshow(huidutu);
title('灰度图')
h=histeq(huidutu); %直方图均衡
subplot(1,2,2)
imshow(h);
title('直方图均衡')
图3.13 直方均衡图
结果比较:进行直方图均衡后,由图3.13可以看出,原先暗的区域变亮了,处理后的图像的效果要好于元灰度图。
3.5 图像的噪声加入与滤波处理
3.5.1 加高斯噪声
对图像加入高斯噪声,使用函数imnoise()。其调用格式如下:
J = imnoise(I,type)
J = imnoise(I,type,parameters)
J = imnoise(I,'gaussian',m,v)
J = imnoise(I,'localvar',V)
J = imnoise(I,'localvar',image_intensity,var)
J = imnoise(I,'poisson')
J = imnoise(I,'salt & pepper',d)
J = imnoise(I,'speckle',v)
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
figure
subplot(1,2,1)
imshow(ren); %显示图像
title('原彩色图')
x=(ren);
y=imnoise(x,'gaussian',0,0.05); %加高斯噪声
subplot(1,2,2)
imshow(y);
title('加高斯噪声')
图3.13 加高斯噪声后的图像
3.5.2 加椒盐噪声
对图像加入椒盐噪声,使用函数imnoise()。调用格式如下:
J = imnoise(I,type)
J = imnoise(I,type,parameters)
J = imnoise(I,'gaussian',m,v)
J = imnoise(I,'localvar',V)
J = imnoise(I,'localvar',image_intensity,var)
J = imnoise(I,'poisson')
J = imnoise(I,'salt & pepper',d)
J = imnoise(I,'speckle',v)
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
figure
subplot(1,2,1)
imshow(ren); %显示图像
title('原彩色图')
y=imnoise(x,'salt & pepper',0.04); %加椒盐噪声
subplot(1,2,2)
imshow(y);
title('加椒盐噪声')
图3.14 加椒盐噪声后的图像
结果比较:可以看出,对图像加入高斯噪声和椒盐噪声后图像的效果有明显的不同,高斯噪声服从正态分布,而椒盐噪声是黑白相间的亮暗点噪声。
3.5.3 高斯噪声的自适应滤波处理
对高斯噪声的自适应滤波处理,使用函数wiener2(),调用格式如下:
J = wiener2(I, [m n], noise)
[J, noise] = wiener2(I, [m n])
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
huidutu=rgb2gray(ren); %RGB图像转换为灰度图
subplot(1,2,1)
imshow(huidutu);
title('灰度图')
x=(ren);
y=imnoise(huidutu,'gaussian',0,0.05); %加高斯噪声
z=wiener2(y,[5 5]); %自适应滤波
subplot(1,2,2)
imshow(z);
title('高斯噪声—自适应滤波')
图3.15 自适应滤波处理后的图像
3.5.4 椒盐噪声的中值滤波处理
对椒盐噪声进行中值滤波处理,使用函数medfilt2(),调用格式如下:
B = medfilt2(A, [m n])
B = medfilt2(A)
B = medfilt2(A, 'indexed', ...)
B = medfilt2(..., padopt)
程序如下:
ren=imread('C:\\matlab7\我的读取图像路径
huidutu=rgb2gray(ren); %RGB图像转换为灰度图像
subplot(1,2,1)
imshow(huidutu);
title('灰度图')
x=(huidutu);
y=imnoise(x,'salt & pepper',0.04); %加椒盐噪声
z=medfilt2(y,[5 5],'symmetric'); %中值滤波
subplot(1,2,2)
imshow(z);
title('椒盐噪声--中值滤波');
图3.16 中值滤波处理后的图像
4 总结及心得体会
通过这次的课程设计,我了解了数字图像处理的基础知识,学会了一些基本的算法,也进一步熟悉了MATLAB的使用。
与前一次的基础强化训练相比,感觉这次的课设要容易很多。主要原因是有了以前的基础,并掌握了相应的设计方法。利用MATLAB进行数字图像的处理,关键就是要学会使用相应的MATLAB函数,可以通过上网、查阅书籍等多种方式来获得相关的知识。
我认为像这样的课程设计是很有意义的。首先,本次课程设计为我们下学期即将学习的数字信号处理课程奠定了基础,在课程设计的过程中,我查阅了很多数字信号处理的资料,学到了很多有关数字信号处理的知识。其次,它可以提高我们的动手能力,让我们把平时所学到的知识真正的运用于实际,让我们体会到专业课学习的乐趣。最后,课程设计的过程中,我们也多多少少的会与其他同学进行交流学习,通过交流和讨论,我们可以发现自身的不做,找出差距,共同进步。
5 参考文献
[1] 王洪元主编.《MATLAB语言以及在电子信息工程中的应用》.清华出版社 2004.12
[2] 李文锋编著.《图形图像处理与应用》.中国标准出版社 2006.06
[3] 贺兴华等著.《MATLAB7.X图像处理》.人民邮电出版社 2006.11.01
[4] 刘文耀编著.《数字图像采集与处理》.电子工业出版社 2007.08.01
[5] 陈怀琛主编. 《数字信号处理教程——MATLAB释义与实现》.电子工业出版社 2004.06
[6] 徐建华编著.《图像处理与分析》.科学出版社 1994.05
[7] 赵树杰编著.《数字图像处理》.西安电子科技大学出版社 2000.03
附件6:
本科生课程设计成绩评定表
| 姓 名 | 邵全江 | 性 别 | 男 |
| 专业、班级 | 通信工程0804班 | ||
| 课程设计题目:MATLAB图像处理 | |||
| 课程设计答辩或质疑记录: 1、为什么图像进行尺寸放大缩小的变换后窗口输出的图片跟原图片是一样大小? 答:处理后看不出来放大(或缩小)的效果,这是由于坐标轴的原因,如果把处理后的图片保存起来,再把处理后的文件打开,就可以看到比较明显的放大(或缩小)效果。 2、同样是加噪声,为什么高斯噪声和椒盐噪声后图像的效果有明显的不同? 答:因为高斯噪声服从正态分布,而椒盐噪声是黑白相间的亮暗点噪声。 3、双线性支持放大(缩小)与最近邻插值放大(缩小)有什么不同? 答:最临近插值算法是一种最基本、最简单的图像缩放算法,效果也是最不好的,放大后的图像有很严重的马赛克,缩小后的图像有很严重的失真;效果不好的根源就是其简单的最临近插值方法引入了严重的图像失真。而双线型内插值算法就是一种比较好的图像缩放算法,它充分的利用了源图中虚拟点四周的四个真实存在的像素值来共同决定目标图中的一个像素值,因此缩放效果比简单的最邻近插值要好很多。 | |||
| 成绩评定依据: | |||
| 最终评定成绩(以优、良、中、及格、不及格评定) | |||
年 月 日
