matlab课程设计-图像处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图像处理系统
--学习报告
学号:
姓名:
专业:
日期:
1 使用语言
Matlab
2图像选择及变换
2.1 原始图像选择读取
原始图片如下:
图1 原始图片
MATLAB为用户提供了专门的函数以从图像格式的文件中读写图像数据。
采用的是imrea d函数来实现图像文件的读取操作,采用的格式如下:
A=imread(’filename.fmt’)
该语句用于读取字符串“filename”对应的灰度图像或彩色图像,“fmt”指定了文件的格式。
采用imfinfo函数查询图像文件的信息。其语句格式如下:
Info=imfinfo(‘filename.fmt’)
该语句可以在命令窗口会显示出文件的基本信息。
采用imshow函数进行图像的显示,采用的格式如下:
A=imread(‘filename.fmt’);
imshow(A);
当这种显示方式要求被显示的图像要么在当前目录下或MATLAB的目录下。
采用rgb2gray函数进行真彩色图像与灰阶强度图像的转变,其格式调用如下:A=rgb2gry(‘filename.fmt’);
得到的图像可以进行统计与处理,能完成要求。
图像读入与显示和变化的源代码如下:
close all;
clear all;
x=imread('xuewu.jpg');
imshow(x);
imfinfo('xuewu.jpg')
程序运行结果如下图2所示:
图2 读取后显示图片
命令窗口中,显示如下:
Filename: 'xuewu.jpg'
FileModDate: '27-Dec-2011 08:58:56'
FileSize: 348015
Format: 'jpg'
FormatVersion: ''
Width: 1024
Height: 768
BitDepth: 24
ColorType: 'truecolor'
FormatSignature: ''
NumberOfSamples: 3
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {}2.2 转换图像为灰阶图像
2.2 图像的变换
在后期的处理中,有部分程序需要用到灰阶图片,因此提前将图片进行转换,得到灰阶图片。采用rgb2gray函数进行真彩色图像与灰阶强度图像的转变其格式调用如下:
A=rgb2gry(‘filename.fmt’);
得到的图像可以进行统计与处理。
程序源代码如下:
x1=rgb2gray(x);
figure,imshow(x1)
程序运行结果如下图3所示:
图3 灰阶图片
3 图像处理及代码程序
3.1 图像亮度对比度调整
3.1.1 函数及其参数的说明
亮度的调节采用的是imadd函数,其调用格式如下:
Z=imadd(X,Y);
说明:imadd函数可以将两幅图像相加或在图像上加上一个常量。其中,X 为图像数据矩阵,也可以是M*N*3的RGB图像矩阵。Y可以是与X的格式类型完全的相同图像数据矩阵或者是一个double类型的数值。
对比度的调节采用的是imajust函数,其调用格式如下:
Z=imadjust(X,[low_in,high_in],[low_out,high_out]);
说明:imadjust函数将图像矩阵X中的亮度值线性变换到输出矩阵Z中的新值。输入图像X因为uint8类,uint16类或double类图像,输出图像Z与输入图像X有着相同的数据类型。low_in、high_in、low_out与high_out这四个参数的取值范围不论输入X的数据类型为何都为[0,1]。
3.1.2 源程序及运行结果
源程序如下:
x2=imadd(x1,50); %亮度调节
figure,imshow(x2)
x3=imadjust(x1,[0.3,0.7],[0,1]); %对比度调节
figure,imshow(x3)
运行结果如图4和图5所示:
图4 亮度调节图5 对比度调节
3.2 图像放大和缩小
3.2.1 函数及其参数的说明
对图像进行放大和缩小可以采用imresize函数,其调用格式如下:
B = imresize(A,[mrows ncols], method )
说明:mrows ncols 是选择放大或缩小的倍数,method表示选用的插值方法,其可选值为nearest(最邻近插值法)、bilinear(双线性插值)和bicubic(双三次插值法),并且method的缺省表示为nearest。
3.2.2 源程序及运行结果
源程序如下所示:
clc
x1=imread('91.jpg');
imshow(x1)
title('原图');
Info=imfinfo('91.jpg')
%放大2倍
x2=imresize(x1,2); %最邻近插法
figure,imshow(x2)
title('最邻近插法放大');
x3=imresize(x1,2,'bilinear'); %双线性插值法
figure,imshow(x3)
title('双线性插值法放大'); %缩小到原来的1/5
x4=imresize(x1,0.2); %最邻近插法
figure,imshow(x4)
title('最邻近插法缩小');
x5=imresize(x1,0.2,'bilinear'); %双线性插值法
figure,imshow(x5)
title('双线性插值法缩小');
x6=imrotate(x1,45);
figure,imshow(x6)
%将原始灰度以双线性插值的方式将图像顺时针旋转45°