数字图像处理实验一
数字图像处理实验报告 实验一 图像增强实验

实验一图像增强实验一、实验目标:掌握图像增强的算法。
二、实验目的:1. 了解灰度变换增强和空域滤波增强的Matlab实现方法2. 掌握直方图灰度变换方法3. 掌握噪声模拟和图像滤波函数的使用方法三、实验内容:(1)图像的点操作、邻域操作算法。
(2)图像的直方图处理算法。
四、实验设备:1.PIII以上微机; 2.MATLAB6.5;五、实验步骤:(1)读入图像:用matlab函数实现图像读入(可读入Matlab中的标准测试图像)(原始图像)(2)实现图像点操作运算(如gamma校正,对数校正等)(3)实现图像的邻域处理(实现均值滤波,拉普拉斯滤波)(4)实现直方图均衡处理matlab 源程序clear all;clc;f=imread('girl_noise.jpg');figure,imshow(f),title('原始图像');[m,n]=size(f);f0= im2double(f); % 整型转换为double 类f1=f0;std_i=zeros(1,m-2);%灰线处理for i=2:m-1%灰线处理std_i(i-1)=std(f0(i,:));if(std_i(i-1)<0.1)for j=1:mf0(i,j)=(f0(i-1,j)+f0(i+1,j))/2;endendendfigure,imshow(f0),title('滤除灰线后的图像');fz=f0-f1;[r,c]=find(fz~=0);%寻找灰线噪声的位置f2=f0;change=0;count=0;for i=3:m-2%白线处理for j=1:mif(abs(f0(i,j)-f0(i-1,j))>0.2&&abs(f0(i,j)-f0(i+1,j))>0.2) count=count+1;endif(count>n*0.8)count=0;change=1;break;endendif(change==1)for k=1:mf0(i,k)=(f0(i-1,k)+f0(i+1,k))/2;endchange=0;count=0;endendfigure,imshow(f0),title('滤除白线后的图像');fz1=f2-f0;[r1,c1]=find(fz1~=0); %寻找白线噪声的位置fn = medfilt2(f0); %反射对称填充figure, imshow(fn),title('中值滤波后的图像');f0 = im2double(fn); % 整型转换为double 类g =2*f0- imfilter(f0,w4, 'replicate'); % 增强后的图像figure, imshow(g),title('高提升滤波图像(A=2)');图像处理结果六、结果分析从上面结果可以看出,带状噪声处理部分,已经基本将带状噪声去除。
数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告(一)实验目的1.理解数字图像处理的基本概念与原理。
2.掌握数字图像处理的基本方法。
3.掌握常用数字滤波器的性质和使用方法。
4.熟练应用数字图像处理软件进行图像处理。
实验器材计算机、MATLAB软件实验内容1.图像的读写与显示首先,我们需要在MATLAB中读入一幅图像,并进行显示。
% 导入图像文件I = imread('myimage.jpg');% 显示图像imshow(I);2.图像的分辨率与色彩空间转换数字图像处理中的一个重要概念是图像的分辨率,通常用像素数量表示。
图像的分辨率越高,代表着图像包含更多的像素,从而更具细节和清晰度。
在数字图像处理中,常常需要将一幅图像从一种色彩空间转换为另一种色彩空间。
RGB色彩空间是最常见的图像色彩空间之一,并且常常作为其他色彩空间的基础。
% 转换图像色彩空间J = rgb2gray(I);% 显示转换后的图像imshow(J);3.图像的增强与滤波图像的增强通常指的是对图像的对比度、亮度和清晰度等方面进行调整,以改善图像的质量和可读性。
数字图像处理中的滤波是一种常用的图像增强方法。
滤波器是一个能够对图像进行局部操作的矩阵,它能够提取或抑制特定的图像特征。
% 对图像进行平滑滤波K = imgaussfilt(J, 1);% 显示滤波后的图像imshow(K);4.数字图像处理在实际应用中的例子数字图像处理在很多实际应用中被广泛应用。
这些应用包括医疗成像、计算机视觉、人脸识别、安防监控等。
下面是数字图像处理在人脸识别应用中的一个简单例子。
% 导入图像文件I = imread('face.jpg');% 进行人脸检测faceDetector = vision.CascadeObjectDetector;bbox = step(faceDetector, I);% 在图像上标记人脸位置IFaces = insertObjectAnnotation(I, 'rectangle', bbox, 'Face');imshow(IFaces);实验结论通过本次实验,我已经能够理解数字图像处理的基本概念与原理,掌握数字图像处理的基本方法,熟练应用数字图像处理软件进行图像处理。
数字图像处理实验——实验一

报告内容:(目的和要求、原理、步骤、数据、计算、小结等)实验一静态图像采集一、实验目的1、了解DSK的工作原理。
2、了解FPGA进行静态图象采集的工作原理。
3、了解DSP的EDMA技术在静态数据采集中的作用。
4、了解DSP的中断技术。
5、了解SDRAM在静态视频中的作用。
6、了解DSP和FPGA在视频数据采集中的同步原理。
二、实验设备计算机、6711DSK、视频板、CCS软件、Webpack软件三、实验原理本实验由视频采集卡上的FPGA和DSK共同完成对摄入图像的静态采集和显示,所为静态采集,就是可以选择采集一幅用户感兴趣的图像,把这幅图像保存到DSK板上的SDRAM中并完成显示。
视频图像由SAA7111进行AD变换和视频解码后输出CCIR601标准的视频数据流送给FPGA以及SDRAM,包括:16位图像数据(高8位为Y信号,低8位为UV信号交叉出现);行同步信号hs(在行消隐期间为高电平,其他时间为低电平);场同步信号vs(在场消隐期间为高电平,其他时间为低电平);行参考信号href(行数据有效期间为高电平)。
在PAL 制下,标准的CCIR601视频数据为864点/行*625/场*50场,一场分为两帧,分别为奇数行和偶数行。
其中每行有效数据为720个点,即herf\维持720个点。
FPGA输出给AL250进行视频显示的信号也需要满足这一格式。
根据这一格式,采集时FPGA将有效,的视频数据存入FPGA的OUTFIFO中,同时以行同步信号作为DSP的中断信号通知DSP取走FIFO 中一行的数据。
DSP收到中断信号后进入中断处理程序,用EDMA从FPGA的OUTFIFO 中读取一行的数据到SDRAM中,再用EDMA将一行的数据从SDRAM搬到视频板INFIFO 中。
FPGA产生显示所需的同步信号和对INFIFO读取的控制信号,控制INFIFO中的数据和同步信号AL250完成显示功能。
为此在这个实验前,需要了解以下知识点:1、视频图像的原理和应用2、DSP原理和应用3、FPGA原理和应用四、实验步骤1、复习有关图象动态采集的基础知识。
数字图像处理实验报告

实 验 内 容
3-2 根据直方图定义,通过结构化编程方式给出 3-1)中灰度图像像素点统计形式的直方图,并与利用 函数调用方式获得的直方图在两个不同窗口中进行比较,两窗口图像名称分别为”编程直方图”、”函 数调用直方图”; 参考函数 imread、size、bar、imhist、image I=imread('panda.jpg'); B=rgb2gray(I); A=uint8(B); [m n]=size(B); s=zeros(m,n); for i=1:m for j=1:n for rank=0:255 if B(i,j)==rank s(rank+1)=s(rank+1)+1; end
在水平和垂直方 列的方式同时显
I=imread('panda.jpg');
subplot(1,3,1);imshow(I)
subplot(1,3,2);imshow(I)
colorbar
subplot(1,3,3);imshow(I)
colorbar('horizontal')
实 验 1)、实验采用的原始图片要求是包含自己头像的照片,图片大小控制在 640×480 之内; 要 2)、实验中的当前工作目录采用 MATLAB 目录下的 work 文件夹。 求
学号
12109940423 指导教师
实验地点
1C06-329
实验成绩
图像灰度统计特性及其相关变换
12 级 1 班 杜云明
实 理解直方图的形成原理,掌握绘制灰度直方图的方法;熟悉图像灰度直方图的变换及直方图均衡化方 验 法;理解图像灰度变换处理在图像增强中的作用;熟悉图像灰度分布统计与图像视觉质量之间的关系; 目 通过工具箱函数调用和结构化编程两种方式实现图像的相关处理,在加深理解基本原理的同时,提高 的 编程实践的技巧和能力。
数字图像处理实验报告

数字图像处理实验报告班级:学号:姓名:实验一DTF变换与余弦变换一、实验内容:用Matlab对某幅图像进行图像的离散付里叶变换、离散余弦变换二、实验目的:1. 掌握傅立叶变换2. 理解频域变换的通用公式3. 掌握离散余弦变换三、实验原理:f=imread(C:\);F=fft2(f);F=fft2(f,P,Q);S=abs(F);Fc=fftshift(F);S2=log(1+abs(Fc));F=ifftshift(Fc);F=ifft2(F);F=real(ifft2(F));dct2f()/idct2()imshow四、源程序:%傅里叶变换clear all;clc;x=imread('C:\Users\K\Desktop\matlab experiment\windows.jpg');y=imread('C:\Users\K\Desktop\matlab experiment\windows1.jpg');subplot(3,2,1);imshow(x);title('x 原图');subplot(3,2,2);imshow(y);title('y 原图');% 傅里叶变换qf=fft2(double(x));lf=fft2(double(y));%取幅度和相位qf1=abs(qf);qf2=angle(qf);lf1=abs(lf);lf2=angle(lf);%进行重建qfr=qf1.*cos(qf2)+qf1.*sin(qf2).*i;lfr=lf1.*cos(lf2)+lf1.*sin(lf2).*i;xr=uint8(abs(ifft2(qfr)));yr=uint8(abs(ifft2(lfr)));subplot(3,2,3);imshow(xr,[]);title('x幅谱与相谱重建'); subplot(3,2,4);imshow(yr,[]);title('y幅谱与相谱重建'); qfrm=qf1.*cos(lf2)+qf1.*sin(lf2).*i;lfrm=lf1.*cos(qf2)+lf1.*sin(qf2).*i;xr1=uint8(abs(ifft2(qfrm)));yr1=uint8(abs(ifft2(lfrm)));subplot(3,2,5);imshow(xr1,[]);title('x幅谱与y相谱重建'); subplot(3,2,6);imshow(yr1,[]);title('y幅谱与x相谱重建');%余弦变换x1=rgb2gray(x);y1=rgb2gray(y);figure(2);subplot(3,2,1);imshow(x1);title('x 原图');subplot(3,2,2);imshow(y1);title('y 原图');dctxchange=dct2(x1);dctychange=dct2(y1);subplot(3,2,3);imshow(log(abs(dctxchange)),[]);title('x图余弦变换幅频');subplot(3,2,4);imshow(log(abs(dctychange)),[]);title('y图余弦变换幅频');subplot(3,2,5);imshow(log(angle(dctxchange)),[]);title('x图余弦变换相频');subplot(3,2,6);imshow(log(angle(dctychange)),[]);title('y图余弦变换相频');%重建dctxchange1=abs(dctxchange);dctxchange2=angle(dctxchange);dctychange1=abs(dctychange);dctychange2=angle(dctychange);figure(2)dctxchanger=dctxchange1.*cos(dctxchange2)+dctxchange1.*sin(dctxch ange2).*i;dctychanger=dctychange1.*cos(dctychange2)+dctychange1.*sin(dctych ange2).*i;dctxchanger=uint8(abs(idct2(dctxchanger)));dctychanger=uint8(abs(idct2(dctychanger)));subplot(221);imshow(dctxchanger,[]);title('x幅谱与相谱重建');subplot(222);imshow(dctychanger,[]);title('y幅谱与相谱重建');dctxchanger=dctxchange1.*cos(dctychange2)+dctxchange1.*sin(dctych ange2).*i;dctychanger=dctychange1.*cos(dctxchange2)+dctychange1.*sin(dctxchange2).*i;dctxchanger1=uint8(abs(idct2(dctxchanger)));dctychanger1=uint8(abs(idct2(dctychanger)));subplot(223);imshow(dctxchanger1,[]);title('x幅谱与y相谱重建');subplot(224);imshow(dctychanger1,[]);title('y幅谱与x相谱重建');五、实验结果:实验二图像点操作一、实验内容:用Matlab对某幅图像进行反变换、对数变换、指数变换、分段线性变换二、实验目的:理解并掌握图像点运算处理三、实验原理:为了突出感兴趣的目标或灰度区间 相对抑制那些不感兴趣的目标或灰度区间常采用分段线性变换法。
数字图像处理实验一报告

实验一:数字图像处理中MA TLAB使用基础实验1.实验目的1.掌握MATLAB 的基本操作。
2.了解数字图像处理在MATLAB中的基本处理过程。
3.学习图像处理的简单操作方法4. 熟悉运用Matlab指令进行图像旋转和缩放变换。
2 实验步骤.1 读入并显示一幅图像在MA TLAB命令窗内输入如下命令:clear;close all;I=imread(‘lena.bmp’); %需将MA TLAB窗口上Current Directory栏内路径改为图像存% 路径放Imshow(I);检查内存中图像的信息Whos改变图像大小并保存图像I2=imresize(I,0.5); %图像缩小为原来的一半figure,imshow(I2); %用figure创建一个新窗口,避免图像显示时覆盖原来图像imwrite(I2,’文件名.bmp’);多幅图像在同一个窗口内显示figure,subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(I2);2读入一幅RGB图像,提取出它的三个颜色分量, 将这幅图像装换为灰度图像,并显示灰度图像的直方图I=imread('lena.jpg');Figure,imshow(I(:,:,1));Figure,imshow(I(:,:,2));Figure,imshow(I(:,:,3));I1=rgb2gray(I);Figure,imshow(imhist(I1));3 .将以上部分操作集成为.M文件,使其按脚本文件进行批处理:点击MA TLAB窗口上File菜单,选择New-〉M—File,在弹出的Edit编辑器内输入如下程序4. 给定一幅图像,如lena.bmp,分别将其顺时针旋转450,逆时针旋转300。
I=imread('lena.bmp');K1=imrotate(I,45,'bilinear','crop');K2=imrotate(I,-30,'bilinear','crop');5. 给定一幅图像,如lena.bmp,以不同灰度级(2、4、16、64、128个)显示,比较显示的不同效果。
数字图像处理实验1 MATLAB图像处理编程基础 实验报告

实验报告课程名称数字图像处理实验项目MATLAB图像处理编程基础指导教师学院光电信息与通信工程__专业电子信息工程班级/学号学生姓名______ __________实验日期______ _成绩______________________实验1 MATLAB图像处理编程基础一、实验目的1.了解MATLAB产品体系和了解MATLAB图像处理工具箱。
2.掌握MATLAB的基本应用方法。
3.掌握MATLAB图像存储/图像数据类型/图像类型。
4.掌握图像文件的读/写/信息查询。
5.掌握图像显示--显示多幅图像、4种图像类型的显示方法、特殊图像的显示技术6.编程实现图像类型间的转换和图像算术操作。
二、实验的硬件、软件平台硬件:计算机软件:操作系统:Windows XP应用软件:MATLAB 7.0.1三、MATLAB图像处理工具箱的功能图像处理工具箱是一个函数的集合,它扩展了matlab数值计算环境的能力。
这个工具箱支持了大量图像处理操作,包括:空间图像变换 Spatial image transformations形态操作 Morphological operations邻域和块操作 Neighborhood and block operations线性滤波和滤波器设计 Linear filtering and filter design格式变换 Transforms图像分析和增强 Image analysis and enhancement图像登记 Image registration清晰化处理 Deblurring兴趣区处理 Region of interest operations四、说明使用MATLAB进行图像处理所需函数调用步骤在Command Window中,以命令行单句调用某一函数只需写xxx(函数名)xxxxxxx)这样就可以调用了.五、给出MATLAB图像处理工具箱的数据类型和4种基本图像类型工具箱里的函数都是M文件,可以通过type function_name来查看代码,也可以通过写自己的matlab函数来扩展工具箱。
数字图像处理实验一图像的基本操作和基本统计指标计算实验报告

实验一图像的基本操作和基本统计指标计算一、实验目的熟悉MATLAB图像处理工具箱,在掌握MATLAB基本操作的基础上,本课程主要依靠图像处理工具箱验证和设计图像处理算法。
对于初学者来说,勤学多练、熟悉MATLAB图像处理工具箱也是学号本课程的必经之路。
了解计算图像的统计指标的方法及其在图像处理中的意义。
了解图像的几何操作,如改变图像大小、剪切、旋转等。
二、实验主要仪器设备(1)台式计算机或笔记本电脑(2)MATLAB(安装了图像处理工具箱,即Image Processing Toolbox(IPT))(3)典型的灰度、彩色图像文件三、实验原理(1)将一幅图像视为一个二维矩阵。
(2)利用MATLAB图像处理工具箱读、写和显示图像文件。
①调用imread函数将图像文件读入图像数组(矩阵)。
例如“I=imread(‘tire.tif’);”。
其基本格式为:“A=imread(‘filename.fmt’)”,其中,A为二维矩阵,filename.为文件名,fmt为图像文件格式的扩展名。
②调用imwrite函数将图像矩阵写入图像文件。
例如“imwrite(A,’test_image.jpg’);”。
其基本格式为“imwrite(a,filename.fmt)”。
③调用imshow函数显示图像。
例如“imshow(‘tire.tif’);”。
其基本格式为:I为图像矩阵,N为显示的灰度级数,默认时为256。
(3)计算图像有关的统计参数。
四、实验内容(1)利用MATLAB图像处理工具箱和Photoshop读、写和显示图像文件。
(2)利用MATLAB计算图像有关的统计参数。
五、实验步骤(1)利用“读图像文件I/O”函数读入图像Italy.jpg。
(2)利用“读图像文件I/O”的iminfo函数了解图像文件的基本信息:主要包括Filename(文件名)、FileModDate(文件修改时间)、Filesize(文件尺寸)、Format(文件格式)、FormatVersion (格式版本)、Width(图像宽度)、Height(图像高度)、BitDepth(每个像素的位深度)、ColorType (彩色类型)、CodingMethod(编码方法)等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大学实验报告学院:计算机科学与技术专业:信息安全班级:131 姓名学号实验组实验时间2016/4/22 指导教师成绩实验项目名称图像基本操作实验目的利用MATLAB软件,熟悉图像的数据矩阵操作、图像的类型转换及图像的存储等基本操作。
1.熟悉图像矩阵的基本操作2.掌握图像数据类型转换及图像类型转换3.掌握图像文件的读写4.掌握图像及灰度图像直方图的显示5.掌握图像缩放和旋转实验要求利用MATLAB软件,熟悉图像的数据矩阵操作、图像的类型转换及图像的存储等基本操作。
1.熟悉图像矩阵的基本操作2.掌握图像数据类型转换及图像类型转换3.掌握图像文件的读写4.掌握图像及灰度图像直方图的显示5.掌握图像缩放和旋转实验原理1.关于图像矩阵MATLAB中图像数据以矩阵方式的存储。
所以有必要学会关于矩阵的操作,由于篇幅有限,这里只作简要的介绍。
生成矩阵的函数有:eye 生成单位矩阵 ones全1阵 zeros 全零阵rand 均匀随机阵 randn 正态随机阵2.图像数据类型及图像类型2.1 图像数据类型转换MATLAB中图像数据矩阵的存储方式为双精度(double)类型即64位浮点数。
而存储图像时MATLAB有时采用无符号整型(uint8)即图像矩阵中的每个数据占用一个字节。
由于大多数运算和函数(比如最基本的矩阵加减运算)都不支持uint8类型,所以运算时通常要将图像转换成 double型。
函数double将数据转换为双精度浮点类型,调用格式为:X64=double(x8) /2562.2 图像类型及转换在MATLAB中,一幅图像可能包含一个数据矩阵,也可能有一个颜色映像表矩阵。
MATLAB图像处理工具箱支持四种图像类型,其区别在于数据矩阵元素的不同含意。
它们是:● 真彩色图像● 索引图像● 灰度图像● 二值图像(1)真彩色图像真彩色图像又称RGB图像,对于一个尺寸为M×N的彩色图像来说,在MATLAB中则存储为一个M×N×3的多维数组,像素的颜色由保存在像素位置上的R、G、B的强度值的组合来确定。
如果需要知道图像A中(x,y)处的像素值,则可以使用这样的代码A(x,y,1:3)。
(2)索引图像MATLAB中的索引图像包含两个结构,一个是调色板,一个是图像数据矩阵。
调色板是一个m×3的色彩映射矩阵,矩阵的每一行都代表一种色彩,与真彩色图像相同,通过3个分别代表红、绿、蓝颜色强度的双精度数,形成一种特定的颜色。
调色板通常和索引图像存在一起,当读入图像时,MATLAB同时加载调色板和图像。
(3)灰度图像灰度图像就是只有强度信息,而没有颜色信息的图像。
存储灰度图像只需要一个数据矩阵,矩阵的每个元素表示对应位置像素的灰度值,灰度图像的数据类型可以是doubIe类型,这时值域为[0,1],也可以uint8类刑,值域是[0,255]。
(4)二值图像二值图像就是只有黑白两种值的图像,我们可以把它看作是特殊的灰度图像。
二值图像只需一个数据矩阵来存储,每个像素只取0或1。
MATLAB提供了若干函数,用于图像类型的转换,这些函数如下所示:●rgb2gray 将RGB图像转换成灰度图像●Gray2ind 将灰度图像转换成索引图像●Im2bw 设定阈值将图像转换为二值图像●Im2double 将图像数据阵列转换为double型●Im2unit8 将图像数据阵列转换为unit8型●Im2unit16 将图像数据阵列转换为unit16型●Ind2gray 将索引图像转换为灰度图像●Ind2rgb 将索引图像转换成真彩色图像2.3 图像读写及显示MATLAB为用户提供了专门的函数以从图像格式的文件中读写图像数据。
(1)图像文件的读取利用imread函数可以完成图像文件的读取操作,常见调用格式为:A = imread(FILENAME,FMT)其作用是将文件名用字符串FILENAME表示的、扩展名用字符串FMT(表示图像文件格式)表示的图像文件中的数据读到矩阵A中。
如果FILENAME所指的为灰度图像,则A为M×N的二维矩阵;如果FILENAME所指的为RGB图像,则A为M×N×3的三维矩阵。
(2)图像文件的写入(保存)利用imwrite函数完成图像的写入操作,也完全支持上述各种图像文件的格式,其常用的调用格式为:imwrite(A,FILENAME,FMT)(3)图像文件的显示MATLAB的图像处理工具箱提供了多种图像显示技术。
例如,imshow函数可以直接从文件显示多种类型的图像;image函数可以将矩阵作为图像显示;colorbar函数可以用来显示颜色条。
●imshow函数是最常用的显示各种图像的函数,格式为:●imshow(I,n); %显示灰度矩阵I, n设置显示的灰度值范围(级数),默认值为256。
●imshow(RGB) %显示真彩色图像●imshow filename %直接显示图像,但图像数据不在MATLAB的workspace中。
可以将多幅图像显示在一个图形窗口中,达到这一目的有两种方法:一种方法是联合使用subplot函数和imshow函数,但此方法在一个图形窗口只能有一个调色板;另一种方法是联合使用subplot函数和subimage函数,此方法可在一个图形窗口内使用多个调色板。
subplot函数将一个图形窗口划分为多个显示区域,其调用格式如下:subplot(m,n,p)subplot函数将图形窗口划分为m(行)×n(列)个显示区域,并选择第p个区域作为当前绘图区。
(4)灰度直方图的显示MATLAB图像处理工具箱提供了imhist函数来计算和显示图像的直方图,imhist函数的语法格式为:imhist(I, n)imhist(X, MAP)其中imhist(I,n)计算和显示灰度图像I的直方图,n为指定的灰度级数目,默认值为256。
imhist(X, MAP)计算和显示索引色图像X的直方图,map为调色板。
3.图像的几何运算3.1 图像的缩放MATLAB图像处理工具箱中的函数imresize可以用三种方法对图像进行插值缩放,如果不指定插值方法,则默认为最邻近插值法。
imresize函数的语法格式为:B = imresize(A, m, method), 返回原图像A的m倍放大的图像(m小于1时效果是缩小)。
这里参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。
B = imresize(A, [numrows numcols]),返回的图像B具有由[numrows numcols]指定的行、列数。
3.2 图像的旋转在工具箱中的函数imrotate可用上述三种方法对图像进行插值旋转,默认的插值方法也是最邻近插值法。
imrotate的语法格式为:B = imrotate(A, angle, method)函数imrotate对图像进行旋转,参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。
一般说来旋转后的图像会比原图大,超出原图部分值为0。
实验仪器Pc一台,MATLAB7.0实验步骤练习图像的读取、显示和保存图像数据,步骤如下:(1)使用命令figure(1)开辟一个显示窗口(2)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内显示RGB 图像、二值图像和灰度图像,注上文字标题。
(3)保存转换后的灰度图像和二值图像(4)在同一个窗口显示转换后的灰度图像的直方图(5)将原RGB图像的R、G、B三个分量图像显示在figure(2)中,观察对比它们的特点,体会不同颜色所对应的R、G、B分量的不同之处。
(6)将图像放大1.5倍,插值方法使用三种不同方法,显示放大后的图像,比较不同插值方法的结果有什么不同。
将图像放大到其它倍数,重复实验;(7)图像顺时针旋转30度,插值方法使用三种不同方法,显示旋转后的图像并比较结果有什么不同。
实验内容实验数据clc;close allclear allI=imread('flower','jpg');subplot(2,2,1),imshow(I),title('原图像')Ibw=im2bw(I);imwrite(Ibw,'flowernbw','jpg');subplot(2,2,2),imshow(I),title('二值图像')Igray=rgb2gray(I);imwrite(Igray,'flowergray','jpg');subplot(2,2,3),imshow(Igray),title('灰度图像') subplot(2,2,4),imhist(Igray),title('灰度直方图')clc;close allclear allfigure(2);I=imread('flower','jpg');I1=I(:,:,1);subplot(1,3,1),imshow(I1),title('红色分量')I2=I(:,:,2);subplot(1,3,2),imshow(I2),title('绿色分量')I3=I(:,:,3);subplot(1,3,3),imshow(I3),title('蓝色分量')clc;close allclear allI=imread('flower','jpg');Iscale1=imresize(I,2.5);Iscale2=imresize(I,2.5,'bilinear');Iscale3=imresize(I,2.5,'bicubic');imwrite(Iscale1,'flowerfazj','jpg');imwrite(Iscale2,'flowerfasxx','jpg');imwrite(Iscale3,'flowerfassc','jpg');figure(3):imshow(Iscale1),title('最邻近法放大2.5倍'); figure(4):imshow(Iscale2),title('双线性插值放大2.5倍'); figure(5):imshow(Iscale3),title('双三次插值放大2.5倍'); Irot1=imrotate(I,30);Irot2=imrotate(I,30,'bilinear');Irot3=imrotate(I,-30,'bicubic');实验总结通过这次实验我们利用MATLAB软件,熟悉图像的数据矩阵操作、图像的类型转换及图像的存储等基本操作。