数字图像处理实验Word下载.docx
- 文档编号:13182694
- 上传时间:2022-10-07
- 格式:DOCX
- 页数:23
- 大小:1.80MB
数字图像处理实验Word下载.docx
《数字图像处理实验Word下载.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
3.掌握图像文件的读写
4.掌握图像的显示
实验内容
练习图像的读取、显示和保存图像数据,步骤如下:
(1)使用命令figure
(1)开辟一个显示窗口
(2).将事先准备好的图片64×
64和256×
256的图片放在同一个窗口中显示为真彩色,并放上颜色条
(3)将它们转化为灰度图,显示在上面的窗口中的下半部分;
(4)取出64×
64和256×
256灰度图中的第1行到第64行和第1列到第64列所有的值显示在figure
(2)中
实验报告要求
纸张大小16开,四号字,有封面,正文(包括:
实验目的,实验内容,实验算法分析,实验步骤,源程序(加中文注释),实验结果(图形),结果分析和讨论
实验原理
1.关于图像矩阵
MATLAB中图像数据以矩阵方式的存储。
所以有必要学会关于矩阵的操作,由于篇幅有限,这里只作简要的介绍,详细内容同学们查找有关的参考书。
²
生成矩阵的函数有:
eye生成单位矩阵ones全1阵zeros全零阵
rand均匀随机阵randn正态随机阵
调用格式:
eye(n)%生成n维的单位阵
eye(m,n)%生成m×
n维的单位阵
eye(size(A))%生成与A同维的单位阵
提取矩阵中的元素
A(i,j)表示矩阵A的第i行、第j列交叉点处的元素;
例1.得到矩阵A第三行第二列的元素
>
A=[1,2,3,4,5;
6,7,8,9,10;
11,12,13,14,15];
A
A=
12345
678910
1112131415
MATLAB的序号排列从第一列第一行到第一列最后一行,直至最后一列最后一行
A(6)
12
A(u,v)提取A的子矩阵,u,v是两个向量,分别指定行与列;
A(L1,:
)表示提取A的L1指定的行、所有列;
A(:
,L2)表示提取A的所有行,L2指定的列;
A(L1,L2)表示提取A的L1指定的行,L2指定的列构成子矩阵。
例2:
提取矩阵A的子矩阵:
A([1,3],:
)%提取A中第1和第三行所有的列元素
ans=
A(:
[2,4,5])%提取A中第2,4,5列所有的行元素
245
7910
121415
例3:
将向量中满足不超过0.5的元素提取出来
rand(‘seed’,0);
%把均匀分布的伪随机发生器置为初始状态
>
x=rand(1,10);
%产生1X10的均布随机矩阵
x=
Columns1through6
0.95010.23110.60680.48600.89130.7621
Columns7through10
0.45650.01850.82140.4447
L=x<
=0.5;
x=x(L)
0.23110.48600.45650.01850.4447
例4删除A的2,4,6列
A=[1,2,3,4,5,6;
7,8,9,10,11,12;
13,14,15,16,17,18];
[2,4,6])=[]
A=135
7911
131517
例5将A扩展为4X4的矩阵
A(4,4)=0
A=1350
79110
1315170
0000
2.图像数据类型及图像类型转换
2.1图像数据类型转换
MATLAB中图像数据矩阵的存储方式为双精度(double)类型即64位浮点数。
而存储图像时MATLAB有时采用无符号整型(uint8)即图像矩阵中的每个数据占用一个字节。
由于大多数运算和函数(比如最基本的矩阵加减运算)都不支持uint8类型,所以运算时通常要将图像转换成double型。
l函数double将数据转换为双精度浮点类型,调用格式为:
lX64=double(x8)/256
例6:
从一幅颜色模型为HSV真彩色图片取出6×
6的数据其为浮点类型的数据,转换为uint8类型
s=imread(‘hr.jpg’);
%读去HSV真彩色图片的数据到矩阵s
imshow(s)%显示图片
s1=s([1:
6],[1:
6],1)
s1=
0.28240.28240.27840.27840.27450.2745
s8=uint8(round(s1*256))%双精度转换为无符号整型,值域为[0,255]
s8=
727271717070
s64=double(s8)/256%uint8转换为双精度型64位,值域为0~1
s64=
0.28130.28130.27730.27730.27340.2734
2.2图像类型及转换
图像类型是指图像在MATLB数据文件中的存储方式。
MATLAB支持4种图像类型,它们是:
真彩色图像-真彩色图像又称RGB图像,它是利用R、G、B3个分量表示一个像素的颜色,对—个尺寸为m×
n的彩色图像来说,在MATLAB中则存储为——个m×
nx3的多维数组。
如果需要知道图像A中(x,y)处的像素RGB值,则使用A(x,y,1:
3)来提取。
索引色图像
灰度图像-存储灰度图像只需要一个数据矩阵,矩阵的每个元素表示对应位置像素的灰度值,灰度图像的数据类型可以是doubIe类型,这时值域为[0,1],也可以uint8类刑,值域是[0,255]
二值图像
rgb2gray函数用于将一幅真彩色图像转换成灰度图像,如果输入的是真彩色图像,则图像可以是uint8或double类型,输出图像I与输入图像类型相同。
如果输入的是调色板,则输入和输出的都是double类型。
其语法格式为:
I=rgb2gray(RGB)%输入RGB为图像数据矩阵
newmap=rgb2gray(map)%输入map为真彩色图像的调色板
im2bw
格式:
BW=im2bw(I,level)
%I代表图像的数据矩阵,level图像二值化域值
2.3图像读写及显示
用于读写图像的函数:
imread函数用于读入各种图像文件,其语法格式为:
A=imread(‘filename.格式’)%注意默认的文件存放目录为x:
\\matlab6.0\work,图像的格式可选:
bmp,hdf,jpg,png,tif,xwd等
imwrite
imwrite函数用于输出图像格式为:
imwrite(A,‘filename.格式’)
image
image是MATLAB提供的最原始的图像显示函数,格式为:
image(x);
%显示有矩阵X表示的图像
Colormap(gray);
%调色板矩阵
imshow
imshow函数是最常用的显示各种图像的函数,格式为:
imshow(I,n);
%显示灰度矩阵I,n设置显示的灰度值范围(级数)
imshow(RGB)%显示真彩色图像
imshowfilename%直接显示图像,但图像数据不在MATLAB的workspace中
显示图像文件
colorbar用于显示颜色条格式为:
colorbar%将颜色条在放置在坐标轴上
subimage
subimage函数在用subplot分割的图像中使用多个调色板显示图像.
subplot(m,n,l)%将图形窗口分解为mXn个部分,l为序号
例7:
显示灰度图片和真彩色图片
参考程序:
RGB=imread('
hr.jpg'
);
subplot(2,2,1)
imshow(RGB)
subplot(2,2,3)
gray1=rgb2gray(RGB);
imagesc(gray1),colormap(gray)
实验二图像几何变换
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 实验