实验二 数字图像Matlab基本操作
实验2 Matlab绘图操作
实验2 Matlab 绘图操作实验目的:1、 掌握绘制二维图形的常用函数;2、 掌握绘制三维图形的常用函数;3、 掌握绘制图形的辅助操作。
实验内容:1. 设sin .cos x y x x ⎡⎤=+⎢⎥+⎣⎦23051,在x=0~2π区间取101点,绘制函数的曲线。
2. 已知: y x =21,cos()y x =22,y y y =⨯312,完成下列操作:(1) 在同一坐标系下用不同的颜色和线性绘制三条曲线; (2) 以子图形式绘制三条曲线;(3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。
3.已知:ln(x x e y x x ⎧+≤⎪⎪=⎨⎪+>⎪⎩20102,在x -≤≤55区间绘制函数曲线。
4. 绘制极坐标曲线sin()a b n ρθ=+,并分析参数a 、b 、n 对曲线形状的影响。
5.在xy 平面内选择区域[][],,-⨯-8888,绘制函数z =6. 用plot 函数绘制下面分段函数的曲线。
,(),,x x f x x x x ⎧++>⎪==⎨⎪+<⎩235000507. 某工厂2005年度各季度产值(单位:万元)分别为:450.6、395.9、410.2、450.9,试绘制柱形图和饼图,并说明图形的实际意义。
8. 在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点。
(1).y x =-205(2)sin()cos ,sin()sin x t tt y t tπ=⎧≤≤⎨=⎩303详细实验内容:1.设sin .cos x y x x ⎡⎤=+⎢⎥+⎣⎦23051,在x=0~2π区间取101点,绘制函数的曲线。
>> x=(0:2*pi/100:2*pi);>> y=(0.5+3*sin(x)/(1+x.^2))*cos(x); >> plot(x,y)2.已知: y x =21,cos()y x =22,y y y =⨯312,完成下列操作: (1)在同一坐标系下用不同的颜色和线性绘制三条曲线; >> x= linspace(0, 2*pi, 101);>> y1=x.*x; >> y2=cos(2x); >> y3=y1.*y2;plot(x,y1,'r:',x,y2,'b',x,y3, 'ko')(2)以子图形式绘制三条曲线;>> subplot(2,2,1),plot(x,y1)subplot(2,2,2),plot(x,y2)subplot(2,2,3),plot(x,y3)(3)分别用条形图、阶梯图、杆图和填充图绘制三条曲线。
实验二图像基本操作参考程序
实验二图像基本操作一、实验目的1、熟悉及掌握图像的采样原理,实现图像的采样过程,进行图像的灰度转换。
2、理解直方图的概念及应用,实现图像直方图的显示,及通过直方图均衡和直方图规定化方法对图像进行修正。
二、实验环境MATLAB 6.5以上版本、WIN XP或WIN2000计算机三、相关函数图像的增强1、直方图imhist函数用于数字图像的直方图计算或显示,imhist(I, n)计算和显示图像I的直方图,n为指定的灰度级数目,默认为256。
如果I是二值图像,那么n仅有两个值。
[counts,x] = imhist(...)返回直方图数据向量counts,相应的色彩值向量x。
如:i=imread('e:\w01.tif');imhist(i);2 、直方图均衡化histeq函数用于数字图像的直方图均衡化,J = histeq(I, n) 均衡化后的级数n,缺省值为64。
J = histeq(I, hgram) "直方图规定化",即将原是图象I 的直方图变换成用户指定的向量hgram (即指定另一幅图像的直方图数据向量)。
如:i=imread('e:\w01.tif');j=histeq(i,N);对图像i执行均衡化,得到具有N个灰度级的灰度图像j,N缺省值为643、灰度调整imadjust函数用于数字图像的灰度或颜色调整,J = imadjust(I) 将灰度图像I 中的亮度值映射到J 中的新值并使1%的数据是在低高强度和饱和,这增加了输出图像J 的对比度值。
J = imadjust(I,[low_in; high_in],[low_out; high_out])将图像I中的亮度值映射到J中的新值,即将low_in至high_in之间的值映射到low_out至high_out之间的值。
low_in 以下与high_in 以上的值被剪切掉了,也就是说,low_in 以下的值映射到low_out,high_in 以上的值映射到high_out。
实验二Matlab图像基础
实验二 Matlab图像基础一、实验目的1、了解matlab支持的图像文件格式、图像类型和数据类型。
2、掌握MATLAB中如何实现图像的读写、显示、图像类型的转换。
二、实验原理(一)图像文件格式、图像类型和图像数据类型1.MATLAB支持的几种图像文件格式:1)PCX格式。
可处理1、4、8、16、24位等图像数据。
文件内容包括文件头、图像数据、扩展调色板数据。
2)BMP格式,即位图文件,整幅图可视为一个数字矩阵。
它包括1、4、8、24位非压缩图像,8位RLE(行程编码)图像。
文件内容包含文件头、位图信息数据块和图像数据。
选择BMP格式保存一幅灰度模式图像时,可选择以Windows格式保存。
而且在选中4位或8位位图时,还可选压缩(RLE)项,在用RLE方式压缩保存后图像将毫无损失。
这是用得最广的图像格式之一,在本文中都对这种格式的图像进行操作。
3)HDF格式。
有8位,24位光栅图像数据集。
4)JPEG格式。
是一种联合图像专家组的图像压缩格式,是目前所用对静止灰度或彩色图像的压缩标准。
它实际上定义了3种编码系统:a.基于DCT的有损编码基本系统,可用于绝大多数压缩场合;b.用于高压缩比、高精度或渐进重建应用的扩展编码系统;c.用于无失真应用场合的无损系统。
JPEG没有规定文件格式、图像分辨率或所用的彩色空间模型,这使它就有可能适用于MATLAB。
5)TIFF格式。
处理1、4、8、24位非压缩图像,1、4、8、24位packbit 压缩图像,1位CCITT压缩图像等。
文件内容包括:文件头、参数指针表与参数域、参数数据表和图像数据四部分。
它是一种用途广泛的文件格式,其特点是可移植性好,几乎所有的扫描仪及在Windows、Macintosh平台上常用的版面设计软件都支持TIFF文件格式。
以这种格式保存的图像文件结构比较复杂,在不压缩存放时文件比较大。
6)XWD格式。
1、8位Zpixmaps, Xybitmaps, 1位XYPixmaps。
实验二 Matlab图像处理实验
实验二Matlab图像处理实验一、实验目的1、了解Matlab平台下的图像编程环境;2、读入、显示、检查内存中的图像;3、实现直方图均衡化、保存图像、检查新生文件的内容及一些相关的操作。
二、实验内容1、双击桌面上的matlab图标,启动matlab软件。
2、在MATLAB界面右侧“command window”中输入相应的代码,读入并显示一副图像。
3、检查内存中的图像4、改变图像大小(0.8)5、将彩色图像转化为灰度图像,通过save函数,将R、G、B值分别保存成.mat 文件(R.mat,G.mat,B.mat),将灰度图像保存(imwrite),其灰度值用.mat文件保存。
6、实现直方图的均衡化,画出原始图像及其直方图,以及处理之后图像及其直方图(在一个图形窗口中画出)7、保存图像三、实验结果及代码clear;%清空MATLAB工作平台的所有变量close all;%关闭已打开的图形窗口img1 = imread('C:\Users\1\Desktop\实验\Image.jpg');%读入图像文件figure(2);subplot(321);imshow(img1);title('原彩色图');subplot(322);img = imresize(img1,0.8);%改变图像大小imshow(img);title('缩小后的彩色图像');subplot(323);gray = rgb2gray(img);%将彩色图像转化为灰度图像imwrite(gray,'C:\Users\1\Desktop\实验\hui_1.tif'); imshow(gray);title('灰度图像');%实现直方图的均衡化subplot(324)imhist (gray);title('灰度图像直方图');subplot(325);imgGray2 = histeq(gray);%直方图均衡化imshow(imgGray2);title('均衡化灰度图像');subplot(326);imhist(imgGray2);%获取图像数据直方图title('均衡化灰度图像直方图');img = imread('C:\Users\1\Desktop\实验\hui_1.tif'); R = gray(:,:,1);G = gray(:,:,2);B = gray(:,:,3);save('R.mat',R)save('G.mat',G)save('B.mat',B)Gray = img();save('Gray.mat','Gray')如图上图所示,包括原彩色图像、灰度图像、均衡化后的彩色图像、缩小后的彩色图像、原直方图和均衡后的直方图。
数字图象处理实验报告《matlab基本操作 》
武汉工程大学
《数字图像处理》实验报告2
专业班级
实验时间
学生学号
实验地点
学生姓名
指导教师
实验项目
数字图像基本操作
实验类别
基础性
实验学时
%读入原始图像
f=imread('pollen.tif');
%显示原始图像
subplot(3,2,1);imshow(f);
title('original image');
subplot(3,2,2);imhist(f);
title('original image histogram');
%将原始图像均衡化,目的是与后面的规定化做对比
subplot(121),imshow(a);
title('原图为:');
subplot(122),imshow(c); %显示处理后的图像
title('均衡化后的图为:');
通过以上变换后总的效果为:
%读入原始图像
f=imread('pollen.tif');
%显示原始图像
iptsetpref('ImshowAxesVisible','on')
c2=A2*(1/((2*pi)^0.5)*sig2); %设置c2=A2*(1/sqrt(2*pi)*sig)),即高斯函数的系数部分;
k2=2*(sig2^2); %设置指数部分的分母,即(1/2*sig^2),同上
数字图像Matlab实验操作手册(2010)
Matlab 7.6简单入门Matlab是Mathworks公司推出的科技应用软件.●启动点击Matlab/bin/matlab.exe, 打开Matlab的工作窗(或指令窗)●Matlab的使用方式①指令行操作之直接交互工作方式;②使用matlab编程语言之程序设计方式.●交互方式的使用:在Matlab工作窗中一般输入以下三种指令行:①命令②表达式③赋值语句:变量=表达式●Matlab的程序工作方式step 1. File→New→M-file %打开Matlab程序工作窗Editor/Debugger;step 2.编写Matlab程序;Tools→Run●基本命令:quit %退出Matlabclc %清除指令窗口clear %从内存中清除变量和函数clf %清除当前图pack %合并工作内存中的碎块dir %列出文件cd %改变或显示当前工作目录disp %显示矩阵和文字内容size %确定矩阵的维数demo %演示程序help %在线帮助delete %删除文件whos %列出工作内存中的变量细节xpimage %图像处理性能的演示imagedemo %同上●基本函数figure %创建图形窗口image %创建图形窗口imshow %显示图像colormap %设置配色图rgb2hsv %将rgb图像转换成hsv图像hsv2rgb %将hsv图像转换成rgb图像rgb2ycbcr %将rgb图像转换成ycbcr图像ycbcr2rgb %将ycbcr图像转换成rgb图像abs %幅值fft2 %二维快速Fourier变换ifft2 %二维快速Fourier反变换log %自然对数dct2 %二维快速余弦变换idct2 %二维快速余弦反变换image %与imshow相似imfinfo %显示图像参数●数据类型及运算1.Matlab的基本数据类型为矩阵(实数等皆看成1*1的矩阵),矩阵的基本运算同线性代数:A+B %矩阵相加A-B%矩阵相减A*B %矩阵相乘A.*B %矩阵对应元素相乘2.标量与矩阵进行运算的规定:S+B=sE+Bs-B=sE-BB-s=B-sEs*B=sE*B3.其他运算:inv(B)=B-1A^n=A n, A.^n=(a ij^n)exp(A)=(exp(a ij))log(A)=(log(a ij))f(A)=(f(a ij))A’=A/●矩阵的输入直接输入A=[1 2 3;4 5 6;7 8 9]矩阵编辑器edit A●指令行结果的输出(有如下三个要点)指令行后有分号, 不输出结果指令行后无分号, 输出运算结果表达式后按回车, 则ans=之后, 给出结果●冒号运算符设A是m*n矩阵B=A(:,r) %由第r列元素组成的矩阵B=A(s,:) %由第s行元素组成的矩阵B=A(s1:s2,r1:r2) %取A的子矩阵B=A([1 3 5],:) %由A的1,3,5行组成的矩阵●给矩阵作标志L=X<=0.5; %标志矩阵X中其值小于0.5的元素的位置(小于0.5的元素替换为1, 其余为零,作成一个新矩阵)●Laplacian算子del2( )%五点离散拉普拉斯算子●Matlab程序控制流1.注释%号为串首元素的一行字符串2.循环结构实验1 Matlab基本运算习题1 四则运算.习题2 矩阵运算.实验2 认识数字图像imfinfo('test.jpg') %显示图像文件1.jpg的属性习题1 读一幅图像(灰度值图像或彩色图像), 研究其图像参数.A=imread ('test.jpg'); %读图像1.jpg,并将像素值阵列赋给矩阵Aimshow(A); %显示图像AA ↙%显示图像A的像素值(若图像过大,显示时间就会过长,按ctrl+C终止)whos↙%显示内存中各变量的类型,包括A显示图像A的一个局部:B=A(1:100,1:100,:);C= A(101:200, 101:200,:);imshow(B);imshow(C);subplot(1,3,1),imshow(A);subplot(1,3,2),imshow(B);subplot(1,3,3),imshow(C);习题2 读一幅彩色图像,以灰度值图像的形式显示其RGB各分量,并比较之.B=imread('test.jpg'); %读彩色图像test.jpg,并将像素值阵列赋给矩阵Bimshow(B); %显示图像BB ↙%显示图像B的像素值whosBR=B(:,:,1); %B的红色分量BG=B(:,:,2); %B的绿色分量BB=B(:,:,3); %B的蓝色分量imshow(BR);imshow(BG);imshow(BB);whos%将三幅图像放在一起进行比较:subplot(1,3,1),imshow(BR);subplot(1,3,2),imshow(BG);subplot(1,3,3),imshow(BB);习题4读一幅彩色图像,以彩色图像的形式显示其RGB各分量,并比较其异同.BRR=B;BRR(:,:,2)=0; %去掉B的绿色分量BRR(:,:,3)=0; %去掉B的蓝色分量imshow(BRR);BGG=B;BGG(:,:,1)=0;BGG(:,:,3)=0; %去掉B的红、蓝色分量imshow(BGG);BBB=B;BBB(:,:,1)=0;BBB(:,:,2)=0; %去掉B的红、绿色分量imshow(BBB);%将三幅图像放在一起进行比较:subplot(1,3,1),imshow(BRR);subplot(1,3,2),imshow(BGG);subplot(1,3,3),imshow(BBB);习题5读一幅彩色图像,进行颜色模式转换,以灰度值图像的形式显示其HSI各分量,并比较其异同.C=rgb2hsv(B); %将彩色图像进行模式转换H=C(:,:,1);S=C(:,:,2);I=C(:,:,3);imshow(H); %显示B的色度分量imshow(S); %显示B的饱和度分量imshow(I); %显示B的亮度分量习题6 研究imwrite,将一个矩阵里的数据写进一个jpg图像文件里.习题7 傅立叶变换与滤波total_time_t=10; %总时间dalta_t=0.01; %采样间隔frequency=1/ dalta_t;dalta_u=frequency /N;N= total_time_t / dalta_t; %采样点数t=0: dalta_t: total_time_t;y=sin(2*pi*t)+sin(4*2*pi*t)+sin(8*2*pi*t); subplot(4,1,1);plot(t,y);%显示10秒原始信号ffty=fft(y); %y 的傅立叶变换u=N/2+1; %取y 的傅立叶变换数据用于显示 half_ffty= ffty (1:u);i=0: frequency /N: frequency /2; % frequency/N 为频率域空间采样频率 subplot(4,1,2);plot(i,abs(half_ffty));%显示信号的傅立叶变换h=5;w=4;%清除频率为4的信号,清除宽度为h ffty (N-w/dalta_u-h:N-w/dalta_u+h)=0; ffty (w/dalta_u-h:w/dalta_u+h)=0; w=8; %清除频率为8的信号,清除宽度为h ffty (N-w/dalta_u-h:N-w/dalta_u+h)=0; ffty (w/dalta_u-h:w/dalta_u+h)=0; half_ffty = ffty (1:u);subplot(4,1,3);plot(i,abs(half_ffty));%显示滤波以后的信号的频谱z=ifft(ffty);subplot(4,1,4);plot(t,real(z)); %显示滤波以后的信号12345678910-50505101520253035404550050010000510152025303540455005001000012345678910-202习题8 对图象进行压扩变换 %clear all; I=imread('A.jpg'); imshow(I);pause;tt=255;maxmax=log(1+tt*tt)/log(1+tt);y=(255/maxmax)*log(1+double(I)*tt)/log(1+tt);yy=uint8(y);imshow(yy);习题9 第二章讲义第33页,对图象进行像素复制整数倍放大. clear all;I=imread('AA.jpg');II=size(I);t=2;X=II(1)*t;Y=II(2)*t;B=zeros(X,Y);for i=1:X/tfor j=1:Y/tB(i*t-1,j*t-1)=I(i,j);B(i*t-1,j*t)=I(i,j);B(i*t,j*t-1)=I(i,j);B(i*t,j*t)=I(i,j);endendimwrite(uint8(B),'b.bmp','bmp');习题10 对图像进行任意角度旋转clear all;I=imread('AA.jpg');II=size(I)theta=1.2;X=fix(sqrt(II(1)*II(1)+II(2)*II(2))+1);Y=X;B=zeros(X,Y,3);% x-x0=cos(theta)*(i-i0)-sin(theta)*(j-j0)% y-y0=sin(theta)*(i-i0)+cos(theta)*(j-j0)x0=fix(II(1)/2);y0=fix(II(2)/2);i0=fix(X/2);j0=fix(Y/2);for i=1:Xfor j=1:Yx=fix(x0+cos(theta)*(i-i0)-sin(theta)*(j-j0));y=fix(y0+sin(theta)*(i-i0)+cos(theta)*(j-j0));if x>1 && x<II(1) && y>1 && y<II(2)B(i,j,1)=I(x,y,1);B(i,j,2)=I(x,y,2);B(i,j,3)=I(x,y,3);endendendimshow(uint8(B));imwrite(uint8(B),'b.bmp','bmp');习题11 图像渐变clear allX1=imread('x1.jpg');X2=imread('x2.jpg');XX1=size(X1);XX2=size(X2);Y=X1;I=min(XX1(1),XX2(1));J=min(XX2(2),XX2(2));for i=1:9for xxx=1:Ifor yyy=1:JY(xxx,yyy,:)=i/10*X1(xxx,yyy,:)+(1-i/10)*X2(xxx,yyy,:);endendZ=uint8(Y);subplot(3,3,i),imshow(Z);end习题12 对bmp图象文件进行操作实验3 图像增强直接灰度变换习题1 图象反转习题2对数变换习题3幂次变换AA=imread('A.jpg');CC=double(AA(:,:,1))+double(AA(:,:,2))+double(AA(:,:,3)); BB=CC;WH=size(CC);W=WH(1);H=WH(2);for i=1:Wfor j=1:HBB(i,j)=CC(i,j)+255*(1/(CC(i,j)+1))*CC(i,j);%BB(i,j)=255-CC(i,j);%BB(i,j)=255/log(155)*log(1+CC(i,j));endendcolormap(gray);subplot(1,2,1),imagesc(AA);subplot(1,2,2),imagesc(BB);习题4 位面图切割colormap(gray);bb=imread('head.jpg');for k=1:8cc=rem(double(bb),2^k);ee=fix(cc/2^(k-1));ff=ee*250;subplot(2,4,k),imagesc(ff);title(k-1);end;10020030050100150200250300110020030050100150200250300210020030050100150200250300310020030050100150200250300410020030050100150200250300510020030050100150200250300610020030050100150200250300710020030050100150200250300● 数据隐藏b=imread('a.bmp');% c=b(:,:,1);bb=imread('b.bmp');%请用图画做一个水印图象b.bmp 与a.bmp 规格要相同 cc=rem(double(bb),2); for k=1:8d=double(c)+2^(k-1)*double(cc); %subplot(2,4,k),imshow(uint8(d)); subplot(2,4,k),imagesc(d); %subplot(2,4,k),image(d); title(k-1); end;● 图像的灰度直方图 a=imread('a.jpg'); b=a(:,:,1); imshow(b);figure, imhist(b,64); %作b 的灰度直方图,64 可改为128, 256等● 直方图均衡化 a=imread('a.jpg'); b=a(:,:,1); imshow(b);c=histeq(b); %对b 进行直方图均衡化 imshow(c) ;figure, imhist(b,64); %作b 的灰度直方图,64 可改为128, 256等.●领域平均法平滑滤波a=imread('a.jpg');b=a(:,:,1);c=[0.1 0.1 0.10.1 0.2 0.10.1 0.1 0.1];d=conv2(b,c);imagesc(d);●中值滤波a=imread('a.jpg');b=a(:,:,1);d=medfilt2(b,[ m n]); %[m,n]为滤波模板的规格imagesc(d);●拉普拉斯锐化a=imread('1.jpg');b=a(:,:,1);c=[0 1 01 -4 10 1 0 ]d=conv2(b,c);imagesc(d);习题5 中值滤波a=imread('fig6.jpg');imshow(a);pause;d=medfilt2(a,[3 5]);imshow(d);与图象滤波相关的几个Matlab函数(1)imnoise参见imnoise_test.mI = imread('Fig45.jpg');J = imnoise(I,'salt & pepper',0.02);subplot(1,2,1), imshow(I);subplot(1,2,2),imshow(J);(2)fspecial(3)filter2参见filter2_test.mI = imread('cameraman.tif');subplot(2,2,1);imshow(I); title('Original Image');H = fspecial('motion',20,45);MotionBlur = imfilter(I,H,'replicate');subplot(2,2,2);imshow(MotionBlur);title('Motion Blurred Image');H = fspecial('disk',10);blurred = imfilter(I,H,'replicate');subplot(2,2,3);imshow(blurred); title('Blurred Image');H = fspecial('unsharp');sharpened = imfilter(I,H,'replicate');subplot(2,2,4);imshow(sharpened); title('Sharpened Image');(4)medfilter2(5)fftshift参见fftshift_test.m实验4 彩色图象处理习题1 直方图的一个应用(真假币鉴别,仅供教学实验参考)a=imread('rmb.jpg');subplot(2,2,1);imagesc(a);xlabel(‘真币');b=rgb2hsv(a);b1=b(:,:,1);subplot(2,2,2);imhist(b1,64);xlabel(‘色调');b2=b(:,:,2);subplot(2,2,3);imhist(b2,64);xlabel(‘饱和度');b3=b(:,:,3);subplot(2,2,4);imhist(b3,64); xlabel(‘亮度');假币50100150200250300350400450500550501001502002500色调00.10.20.30.40.50.60.70.80.910饱和度00.10.20.30.40.50.60.70.80.91亮度00.10.20.30.40.50.60.70.80.91习题2 运用调色板设计技术将灰度图像彩色化。
实验二 Matlab图像工具箱的使用
实验二Matlab图像工具箱的使用一、实验目的该实验为验证性实验。
目的是通过实验使学生了解Matlab语言,熟悉并掌握Matlab中有关图像处理的常用语句,熟悉Matlab使用技巧,能够用Matlab 语言熟练地对数字图像进行各种处理。
二、实验要求1、实验前要做好充分准备,包括:复习实验所涉及的知识点,掌握Matlab 编程语言和调试环境。
2、实验时注意记录实验过程中产生的数据、出现的问题及解决问题的方法。
3、理论联系实际,认真分析实验结果,回答思考题。
4、实验后完成实验报告,并附相关截图。
三、实验环境计算机(安装Visual C++ 6.0和Matlab 6.5以上版本)四、实验验证原理常用的Matlab图像处理命令①imread功能:从图形文件中读取图像语法:A=imread(filename,fmt)②imwrite功能:把图像写入图形文件中语法:imwrite(A,filename,fmt)③imshow功能:显示图像语法:imshow(A)④im2uint8功能:转换图像矩阵为8位无符号整型语法:B=im2uint8(A)⑤im2double功能:转换图像矩阵为取值范围在[0 1]的双精度型语法:B=im2double(A)⑥plot(x,y)功能:绘制二维图形的函数, 若X,Y是向量,必须具有相同的维数,且必须同是行向量或同是列向量,则以第一个变量为横坐标,以第二个变量为纵坐标。
语法:plot(x,y)五、实验内容与步骤1、用Matlab编写程序,读出标准图像lena.bmp,并在窗口显示。
a=imread('lena.bmp')imshow(a)2、读出该图像中第125行中第125~174列的元素值,将其存储在文件中。
a=imread('lena.bmp');a=a(125,125:174);save ab=reshape(a,5,10)3、绘制lena图像的直方图。
实验二 数字图像Matlab基本操作
实验二数字图像的基本操作一.实验目的1.掌握图像数据的格式;2.掌握MATLAB语言中图象数据与信息的读取方法;3.掌握在图像基本运算的方法及操作原理。
二.实验内容1.图像文件的读、写和显示参照2.2和2.4的内容,熟练掌握imread、imwrite、imshow、imfinfo、imagesc的使用。
(1)任意读入一个.bmp格式的彩色图像文件(数据要少),查看文件的数据形式。
(2)写一个m文件,包含上述五个命令的使用,并包含二值图像的显示和添加色条;(3)由二维数组创建灰度图像,并显示和保存。
自己创建一个二维数组,然后用图像显示命令显示出来。
(4)将一幅256灰度级的原始图像,显示为64灰度级图像;(5)分别列出一幅索引图像的数据和调色板,改动部分调色板内容后,显示图像,观察图像有何变化,改动部分数据,显示图像,观察图像有何变化;Height: 512BitDepth: 8ColorType: 'indexed'FormatSignature: 'GIF89a'BackgroundColor: 0AspectRatio: 0ColorTable: [256x3 double]Interlaced: 'no'DelayTime: 50DisposalMethod: 'DoNotspecify'(3)A=ones(100,300);A(1:20,20:40)=0.5;i=mat2gray(A);imshow(i);(4)I=imread('harbour.tif');imshow(I,[0,63]);2.图像阅览器的使用按照2.3操作,熟悉imview打开的图像阅览器。
操作结果略:3.常用图像操作(1)参照4.1的内容,重点掌握ind2rgb、mat2gray、rgb2gray、im2bw命令。
写一个m文件,包含这四个命令的操作,并显示每个命令操作后的结果图像。
数字图像处理实验报告(matlab)
学院:自动化学院班级:电081班姓名:***学号:********2011年10月实验一直方图均衡化一、实验目的:1. 熟悉图像数据在计算机中的存储方式;2. 掌握图像直方图均衡化这一基本处理过程。
二、实验条件:PC微机一台和MATLAB软件。
三、实验内容:1.读入图像数据到内存中,并显示读入的图像;2.实现直方图均衡化处理,显示处理前后图像的直方图。
3.显示并保存处理结果。
四、实验步骤:1.打开Matlab编程环境;2.获取实验用图像。
用’imread’函数将图像读入Matlab;用’imshow’函数显示读入的图像。
3.获取输入图像的直方图:用’imhist’函数处理图像。
4.均衡化处理:用’histeq’函数处理图像即可。
5.获取均衡化后的直方图并显示图像:用’imhist’和’imshow’函数。
6.保存实验结果:用’imwrite’函数处理。
五、实验程序及结果:1、实验程序subplot(6,2,1);i=imread('test1-1.jpg');imhist(i);title('test1-1 hist');subplot(6,2,2);i=im2double(i);imshow(i);title('test1-1 Ô-ͼÏñ');subplot(6,2,3);s=histeq(i);imhist(s);title('test1-1 balancedhist');subplot(6,2,4);imshow(s);title('test1-1 ¾ùºâ»¯ºóµÄͼÏñ');subplot(6,2,5);i=imread('test1-2.jpg');imhist(i);title('test1-2 hist');subplot(6,2,6);i=im2double(i);imshow(i);title('test1-2 Ô-ͼÏñ');subplot(6,2,7);s=histeq(i);imhist(s);title('test1-2 balancedhist'); subplot(6,2,8);imshow(s);title('test1-2 ¾ùºâ»¯ºóµÄͼÏñ');subplot(6,2,9);i=imread('test1-3.jpg');imhist(i);title('test1-3 hist');subplot(6,2,10);i=im2double(i);imshow(i);title('test1-3 Ô-ͼÏñ');subplot(6,2,11);s=histeq(i);imhist(s);title('test1-3 balancedhist'); subplot(6,2,12);imshow(s);title('test1-3 ¾ùºâ»¯ºóµÄͼÏñ');2、实验结果test1-1 hist050100150200250test1-1 原图像test1-1 balancedhist00.10.20.30.40.50.60.70.80.91test1-1 均衡化后的图像test1-2 hist050100150200250test1-2 原图像test1-2 balancedhist00.10.20.30.40.50.60.70.80.91test1-2 均衡化后的图像0test1-3 hist050100150200250test1-3 原图像test1-3 balancedhist00.10.20.30.40.50.60.70.80.91test1-3 均衡化后的图像六、实验思考1.数字图像直方图均衡化之后直方图为什么不是绝对平坦的?答:直方图均衡化是将一已知灰度概率密度分布的图像,经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像。
数字图像处理实验(MATLAB版)
数字图像处理实验(MATLAB版)数字图像处理(MATLAB版)实验指导书(试用版)湖北师范学院教育信息与技术学院2009年4月试行目录实验一、数字图像获取和格式转换 2 实验二、图像亮度变换和空间滤波 6 实验三、频域处理7 实验四、图像复原9 实验五、彩色图像处理101实验六、图像压缩11 实验七、图像分割13 教材与参考文献142《数字图像处理》实验指导书实验一、数字图像获取和格式转换一、实验目的1掌握使用扫描仪、数码相机、数码摄像级机、电脑摄像头等数字化设备以及计算机获取数字图像的方法;2修改图像的存储格式;并比较不同压缩格式图像的数据量的大小。
二、实验原理数字图像获取设备的主要性能指标有x、y方向的分辨率、色彩分辨率(色彩位数)、扫描幅面和接口方式等。
各类设备都标明了它的光学分辨率和最大分辨率。
分辨率的单位是dpi,dpi是英文Dot Per Inch的缩写,意思是每英寸的像素点数。
扫描仪扫描图像的步骤是:首先将欲扫描的原稿正面朝下铺在扫描仪的玻璃板上,原稿可以是文字稿件或者图纸照片;然后启3动扫描仪驱动程序后,安装在扫描仪内部的可移动光源开始扫描原稿。
为了均匀照亮稿件,扫描仪光源为长条形,并沿y方向扫过整个原稿;照射到原稿上的光线经反射后穿过一个很窄的缝隙,形成沿x方向的光带,又经过一组反光镜,由光学透镜聚焦并进入分光镜,经过棱镜和红绿蓝三色滤色镜得到的RGB三条彩色光带分别照到各自的CCD 上,CCD将RGB光带转变为模拟电子信号,此信号又被A/D变换器转变为数字电子信号。
至此,反映原稿图像的光信号转变为计算机能够接受的二进制数字电子信号,最后通过串行或者并行等接口送至计算机。
扫描仪每扫一行就得到原稿x方向一行的图像信息,随着沿y方向的移动,在计算机内部逐步形成原稿的全图。
扫描仪工作原理见图1.1。
4图1.1扫描仪的工作原理在扫描仪的工作过程中,有两个元件起到了关键的作用。
一个是CCD,它将光信号转换成为电信号;另一个是A/D变换器,它将模拟电信号变为数字电信号。
实验2:Matlab图像处理基础
实验二:Matlab 图像处理基础【实验目的】了解Matlab 平台下的图像编程环境,通过读入、显示、检查内存中的图像,实现直方图均衡化、保存图像、检查新生文件的内容及一些相关的操作。
【实验器材】硬件:实验用PC 机一台软件:MA TLAB【实验步骤】一、图像处理的基本操作1. 双击桌面上的matlab 图标,启动matlab 软件。
2. 在MA TLAB 界面右侧“command window ”中输入相应的代码,读入并显示一副图像。
clear; %清除MATLAB 工作平台的所有变量close all ; %关闭已打开的图形窗口I=imread('greens.jpg') ; %读入名为greens 的图像文件,并赋给IImshow(I); %显示图像注意:以上代码可以单句执行,也可以多句一起执行,每个分号之前的内容一次执行完成;matlab 系统本身安装的一些图像文件存放在:matlab\toolbox\images\imdemos 目录下。
显示结果:3. 检查内存中的图像使用whos 命令来查看图像数据I 是如何存储在内存中的,其指令为:whosMatlab 做出的响应如下:姓名 系部 专业 班级 学号 成绩 教师Name Size Bytes Class AttributesI 300x500x3 450000 uint84.实现直方图的均衡化为观察显示的图像当前状态下亮度分布情况,选读入文件名为Pout.tif的一幅图像,然后通过使用imhist函数创建描述该图像灰度分布的直方图,首先使用figure命令一个新的图像窗口,避免直方图覆盖数组I的显示结果。
其指令为:clear; %清除MATLAB工作平台的所有变量close all ; %关闭已打开的图形窗口I=imread('Pout.tif') ; %读入名为greens的图像文件,并赋给IImshow(I); %显示图像figure,imhist(I);显示的图像及直方图如下:由运行结果可以看出,图像对比度较低,直方图没有覆盖整个灰度范围[0,255],仅在较狭窄的范围内,同时图像中值的高低区分不明显,无较好的对比度。
MATLAB数字图像处理实验--图像基本运算
MATLAB数字图像处理实验--图像基本运算一、实验目的1.理解图像点运算、代数运算、几何运算的基本定义和常见方法;2.掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法;3.掌握在MATLAB中进行插值的方法4.运用MATLAB语言进行图像的插值缩放和插值旋转5.进一步熟悉了解MATLAB语言的应用。
二、实验设备与软件1.PC计算机系统2.MATLAB软件,包括图像处理工具箱(Image Processing Toolbox)3.实验图片三、实验内容及结果分析3.1图像的点运算选择pout.tif作为实验图像,实验原理及内容参照《MATLAB图像处理编程及应用》程序代码:I=imread('pout.tif');figure;subplot(1,3,1);imshow(I);title('原图');J=imadjust(I,[0.3;0.6],[0.1;0.9]);subplot(1,3,2);imshow(J);title('线性扩展');I1=double(I);I2=I1/255;C=2;K=C*log(1+I2);subplot(1,3,3);imshow(K);title('非线性扩展');M=255-I;figure;subplot(1,3,1);imshow(M);title('灰度倒置');N1=im2bw(I,0.4);N2=im2bw(I,0.7);subplot(1,3,2);imshow(N1);title('二值化阈值0.4');subplot(1,3,3);imshow(N2);title('二值化阈值0.7');执行结果:原图线性扩展非线性扩展灰度倒置二值化阈值0.4二值化阈值0.7实验1结果图3.2图像的代数运算选择两幅图像,一幅是原图像,一幅为背景图像,采用正确的图像代数运算方法,分别实现图像叠加、混合图像的分离和图像的局部显示效果。
MATLAB图像处理命令及图形基本操作实验报告
实验(一)常用MATLAB图像处理命令及图形基本操作
end
end
end
for i=1:m
for j=1:n
out(i,j,1)=R(i,j);
% imshow(out)
out(i,j,2)=G(i,j);
out(i,j,3)=B(i,j);
end
end
out=out/256;
figure(1),imshow(out)
%imshow(out)
size(out)
imwrite(out,'PseudoColor.tiff');
end
4、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
RGB=imread('f:\1.jpg')
gray = rgb2gray(RGB)
I = im2bw(RGB,0.5)
subplot(3,1,1);imshow(a);title('原图像');
subplot(3,1,2);imshow(i);title('灰度图像');colormap(gray);
subplot(3,1,3);imshow(I);title('二值图像');
实验结果如图所示:
四、实验总结:
Imread 是读入文件的操作代码,subplot是将多个图画到一个平面上的工具本次实验在老师的带领下熟悉了matlab软件的具体操作
通过书写代码,操作程序实现了灰度图像转换为伪彩色图像;
通过书写代码实现了读入一幅RGB图像,并将其变换为灰度图像和二值图像,然后在同一个窗口中显示RGB图像和灰度图像。
matlab实验报告实验二
matlab实验报告实验二Matlab实验报告实验二引言Matlab是一种功能强大的数学软件,广泛应用于科学研究和工程实践中。
在实验二中,我们将探索Matlab的图像处理功能,并通过实际案例来展示其应用。
图像处理基础图像处理是指对图像进行数字化处理的过程,其目的是改善图像质量、提取有用信息或实现特定的应用需求。
在Matlab中,我们可以利用各种函数和工具箱来实现图像处理的各种任务,如图像增强、滤波、分割和特征提取等。
实验步骤1. 图像读取与显示在Matlab中,我们可以使用imread函数读取图像文件,并使用imshow函数将图像显示在屏幕上。
例如,我们可以读取一张名为"lena.jpg"的图像,并显示出来:```matlabimg = imread('lena.jpg');imshow(img);```2. 图像灰度化图像灰度化是将彩色图像转换为灰度图像的过程。
在Matlab中,我们可以使用rgb2gray函数将彩色图像转换为灰度图像。
例如,我们可以将上一步读取的图像转换为灰度图像:```matlabgray_img = rgb2gray(img);imshow(gray_img);```3. 图像二值化图像二值化是将灰度图像转换为二值图像的过程,其中只包含黑色和白色两种颜色。
在Matlab中,我们可以使用imbinarize函数将灰度图像二值化。
例如,我们可以将上一步得到的灰度图像二值化:```matlabbinary_img = imbinarize(gray_img);imshow(binary_img);```4. 图像平滑图像平滑是指去除图像中的噪声或细节,使得图像更加平滑和清晰。
在Matlab 中,我们可以使用imfilter函数对图像进行平滑处理。
例如,我们可以对上一步得到的二值图像进行平滑处理:```matlabsmooth_img = imfilter(binary_img, fspecial('average'));imshow(smooth_img);```5. 图像边缘检测图像边缘检测是指提取图像中物体边缘的过程,常用于目标检测和图像分割。
数字图像Matlab实验操作手册(2010)
Matlab 7.6简单入门Matlab是Mathworks公司推出的科技应用软件.●启动点击Matlab/bin/matlab.exe, 打开Matlab的工作窗(或指令窗)●Matlab的使用方式①指令行操作之直接交互工作方式;②使用matlab编程语言之程序设计方式.●交互方式的使用:在Matlab工作窗中一般输入以下三种指令行:①命令②表达式③赋值语句:变量=表达式●Matlab的程序工作方式step 1. File→New→M-file %打开Matlab程序工作窗Editor/Debugger;step 2.编写Matlab程序;Tools→Run●基本命令:quit %退出Matlabclc %清除指令窗口clear %从内存中清除变量和函数clf %清除当前图pack %合并工作内存中的碎块dir %列出文件cd %改变或显示当前工作目录disp %显示矩阵和文字内容size %确定矩阵的维数demo %演示程序help %在线帮助delete %删除文件whos %列出工作内存中的变量细节xpimage %图像处理性能的演示imagedemo %同上●基本函数figure %创建图形窗口image %创建图形窗口imshow %显示图像colormap %设置配色图rgb2hsv %将rgb图像转换成hsv图像hsv2rgb %将hsv图像转换成rgb图像rgb2ycbcr %将rgb图像转换成ycbcr图像ycbcr2rgb %将ycbcr图像转换成rgb图像abs %幅值fft2 %二维快速Fourier变换ifft2 %二维快速Fourier反变换log %自然对数dct2 %二维快速余弦变换idct2 %二维快速余弦反变换image %与imshow相似imfinfo %显示图像参数●数据类型及运算1.Matlab的基本数据类型为矩阵(实数等皆看成1*1的矩阵),矩阵的基本运算同线性代数:A+B %矩阵相加A-B%矩阵相减A*B %矩阵相乘A.*B %矩阵对应元素相乘2.标量与矩阵进行运算的规定:S+B=sE+Bs-B=sE-BB-s=B-sEs*B=sE*B3.其他运算:inv(B)=B-1A^n=A n, A.^n=(a ij^n)exp(A)=(exp(a ij))log(A)=(log(a ij))f(A)=(f(a ij))A’=A/●矩阵的输入直接输入A=[1 2 3;4 5 6;7 8 9]矩阵编辑器edit A●指令行结果的输出(有如下三个要点)指令行后有分号, 不输出结果指令行后无分号, 输出运算结果表达式后按回车, 则ans=之后, 给出结果●冒号运算符设A是m*n矩阵B=A(:,r) %由第r列元素组成的矩阵B=A(s,:) %由第s行元素组成的矩阵B=A(s1:s2,r1:r2) %取A的子矩阵B=A([1 3 5],:) %由A的1,3,5行组成的矩阵●给矩阵作标志L=X<=0.5; %标志矩阵X中其值小于0.5的元素的位置(小于0.5的元素替换为1, 其余为零,作成一个新矩阵)●Laplacian算子del2( )%五点离散拉普拉斯算子●Matlab程序控制流1.注释%号为串首元素的一行字符串2.循环结构实验1 Matlab基本运算习题1 四则运算.习题2 矩阵运算.实验2 认识数字图像imfinfo('test.jpg') %显示图像文件1.jpg的属性习题1 读一幅图像(灰度值图像或彩色图像), 研究其图像参数.A=imread ('test.jpg'); %读图像1.jpg,并将像素值阵列赋给矩阵Aimshow(A); %显示图像AA ↙%显示图像A的像素值(若图像过大,显示时间就会过长,按ctrl+C终止)whos↙%显示内存中各变量的类型,包括A显示图像A的一个局部:B=A(1:100,1:100,:);C= A(101:200, 101:200,:);imshow(B);imshow(C);subplot(1,3,1),imshow(A);subplot(1,3,2),imshow(B);subplot(1,3,3),imshow(C);习题2 读一幅彩色图像,以灰度值图像的形式显示其RGB各分量,并比较之.B=imread('test.jpg'); %读彩色图像test.jpg,并将像素值阵列赋给矩阵Bimshow(B); %显示图像BB ↙%显示图像B的像素值whosBR=B(:,:,1); %B的红色分量BG=B(:,:,2); %B的绿色分量BB=B(:,:,3); %B的蓝色分量imshow(BR);imshow(BG);imshow(BB);whos%将三幅图像放在一起进行比较:subplot(1,3,1),imshow(BR);subplot(1,3,2),imshow(BG);subplot(1,3,3),imshow(BB);习题4读一幅彩色图像,以彩色图像的形式显示其RGB各分量,并比较其异同.BRR=B;BRR(:,:,2)=0; %去掉B的绿色分量BRR(:,:,3)=0; %去掉B的蓝色分量imshow(BRR);BGG=B;BGG(:,:,1)=0;BGG(:,:,3)=0; %去掉B的红、蓝色分量imshow(BGG);BBB=B;BBB(:,:,1)=0;BBB(:,:,2)=0; %去掉B的红、绿色分量imshow(BBB);%将三幅图像放在一起进行比较:subplot(1,3,1),imshow(BRR);subplot(1,3,2),imshow(BGG);subplot(1,3,3),imshow(BBB);习题5读一幅彩色图像,进行颜色模式转换,以灰度值图像的形式显示其HSI各分量,并比较其异同.C=rgb2hsv(B); %将彩色图像进行模式转换H=C(:,:,1);S=C(:,:,2);I=C(:,:,3);imshow(H); %显示B的色度分量imshow(S); %显示B的饱和度分量imshow(I); %显示B的亮度分量习题6 研究imwrite,将一个矩阵里的数据写进一个jpg图像文件里.习题7 傅立叶变换与滤波total_time_t=10; %总时间dalta_t=0.01; %采样间隔frequency=1/ dalta_t;dalta_u=frequency /N;N= total_time_t / dalta_t; %采样点数t=0: dalta_t: total_time_t;y=sin(2*pi*t)+sin(4*2*pi*t)+sin(8*2*pi*t); subplot(4,1,1);plot(t,y);%显示10秒原始信号ffty=fft(y); %y 的傅立叶变换u=N/2+1; %取y 的傅立叶变换数据用于显示 half_ffty= ffty (1:u);i=0: frequency /N: frequency /2; % frequency/N 为频率域空间采样频率 subplot(4,1,2);plot(i,abs(half_ffty));%显示信号的傅立叶变换h=5;w=4;%清除频率为4的信号,清除宽度为hffty (N-w/dalta_u-h:N-w/dalta_u+h)=0; ffty (w/dalta_u-h:w/dalta_u+h)=0; w=8; %清除频率为8的信号,清除宽度为hffty (N-w/dalta_u-h:N-w/dalta_u+h)=0; ffty (w/dalta_u-h:w/dalta_u+h)=0; half_ffty = ffty (1:u);subplot(4,1,3);plot(i,abs(half_ffty));%显示滤波以后的信号的频谱z=ifft(ffty);subplot(4,1,4);plot(t,real(z)); %显示滤波以后的信号12345678910-50505101520253035404550050010000510152025303540455005001000012345678910-202习题8 对图象进行压扩变换 %clear all; I=imread('A.jpg'); imshow(I);pause;tt=255;maxmax=log(1+tt*tt)/log(1+tt);y=(255/maxmax)*log(1+double(I)*tt)/log(1+tt); yy=uint8(y);imshow(yy);习题9 第二章讲义第33页,对图象进行像素复制整数倍放大. clear all;I=imread('AA.jpg');II=size(I);t=2;X=II(1)*t;Y=II(2)*t;B=zeros(X,Y);for i=1:X/tfor j=1:Y/tB(i*t-1,j*t-1)=I(i,j);B(i*t-1,j*t)=I(i,j);B(i*t,j*t-1)=I(i,j);B(i*t,j*t)=I(i,j);endendimwrite(uint8(B),'b.bmp','bmp');习题10 对图像进行任意角度旋转clear all;I=imread('AA.jpg');II=size(I)theta=1.2;X=fix(sqrt(II(1)*II(1)+II(2)*II(2))+1);Y=X;B=zeros(X,Y,3);% x-x0=cos(theta)*(i-i0)-sin(theta)*(j-j0)% y-y0=sin(theta)*(i-i0)+cos(theta)*(j-j0)x0=fix(II(1)/2);y0=fix(II(2)/2);i0=fix(X/2);j0=fix(Y/2);for i=1:Xfor j=1:Yx=fix(x0+cos(theta)*(i-i0)-sin(theta)*(j-j0));y=fix(y0+sin(theta)*(i-i0)+cos(theta)*(j-j0));if x>1 && x<II(1) && y>1 && y<II(2)B(i,j,1)=I(x,y,1);B(i,j,2)=I(x,y,2);B(i,j,3)=I(x,y,3);endendendimshow(uint8(B));imwrite(uint8(B),'b.bmp','bmp');习题11 图像渐变clear allX1=imread('x1.jpg');X2=imread('x2.jpg');XX1=size(X1);XX2=size(X2);Y=X1;I=min(XX1(1),XX2(1));J=min(XX2(2),XX2(2));for i=1:9for xxx=1:Ifor yyy=1:JY(xxx,yyy,:)=i/10*X1(xxx,yyy,:)+(1-i/10)*X2(xxx,yyy,:);endendZ=uint8(Y);subplot(3,3,i),imshow(Z);end习题12 对bmp图象文件进行操作实验3 图像增强直接灰度变换习题1 图象反转习题2对数变换习题3幂次变换AA=imread('A.jpg');CC=double(AA(:,:,1))+double(AA(:,:,2))+double(AA(:,:,3)); BB=CC;WH=size(CC);W=WH(1);H=WH(2);for i=1:Wfor j=1:HBB(i,j)=CC(i,j)+255*(1/(CC(i,j)+1))*CC(i,j);%BB(i,j)=255-CC(i,j);%BB(i,j)=255/log(155)*log(1+CC(i,j));endendcolormap(gray);subplot(1,2,1),imagesc(AA);subplot(1,2,2),imagesc(BB);习题4 位面图切割colormap(gray);bb=imread('head.jpg');for k=1:8cc=rem(double(bb),2^k);ee=fix(cc/2^(k-1));ff=ee*250;subplot(2,4,k),imagesc(ff);title(k-1);end;50100150200250300150100150200250300250100150200250300350100150200250300450100150200250300550100150200250300650100150200250300750100150200250300●数据隐藏b=imread('a.bmp');%c=b(:,:,1);bb=imread('b.bmp');%请用图画做一个水印图象b.bmp与a.bmp规格要相同cc=rem(double(bb),2);for k=1:8d=double(c)+2^(k-1)*double(cc);%subplot(2,4,k),imshow(uint8(d));subplot(2,4,k),imagesc(d);%subplot(2,4,k),image(d);title(k-1);end;●图像的灰度直方图a=imread('a.jpg');b=a(:,:,1);imshow(b);figure, imhist(b,64); %作b的灰度直方图,64 可改为128, 256等●直方图均衡化a=imread('a.jpg');b=a(:,:,1);imshow(b);c=histeq(b); %对b进行直方图均衡化imshow(c) ;figure, imhist(b,64); %作b的灰度直方图,64 可改为128, 256等●领域平均法平滑滤波a=imread('a.jpg');b=a(:,:,1);c=[0.1 0.1 0.10.1 0.2 0.10.1 0.1 0.1];d=conv2(b,c);imagesc(d);●中值滤波a=imread('a.jpg');b=a(:,:,1);d=medfilt2(b,[ m n]); %[m,n]为滤波模板的规格imagesc(d);●拉普拉斯锐化a=imread('1.jpg');b=a(:,:,1);c=[0 1 01 -4 10 1 0 ]d=conv2(b,c);imagesc(d);习题5 中值滤波a=imread('fig6.jpg');imshow(a);pause;d=medfilt2(a,[3 5]);imshow(d);与图象滤波相关的几个Matlab函数(1)imnoise参见imnoise_test.mI = imread('Fig45.jpg');J = imnoise(I,'salt & pepper',0.02);subplot(1,2,1), imshow(I);subplot(1,2,2),imshow(J);(2)fspecial(3)filter2参见filter2_test.mI = imread('cameraman.tif');subplot(2,2,1);imshow(I); title('Original Image');H = fspecial('motion',20,45);MotionBlur = imfilter(I,H,'replicate');subplot(2,2,2);imshow(MotionBlur);title('Motion Blurred Image');H = fspecial('disk',10);blurred = imfilter(I,H,'replicate');subplot(2,2,3);imshow(blurred); title('Blurred Image');H = fspecial('unsharp');sharpened = imfilter(I,H,'replicate');subplot(2,2,4);imshow(sharpened); title('Sharpened Image');(4)medfilter2(5)fftshift参见fftshift_test.m实验4 彩色图象处理习题1 直方图的一个应用(真假币鉴别,仅供教学实验参考)a=imread('rmb.jpg');subplot(2,2,1);imagesc(a);xlabel(‘真币');b=rgb2hsv(a);b1=b(:,:,1);subplot(2,2,2);imhist(b1,64);xlabel(‘色调');b2=b(:,:,2);subplot(2,2,3);imhist(b2,64);xlabel(‘饱和度');b3=b(:,:,3);subplot(2,2,4);imhist(b3,64); xlabel(‘亮度');假币501001502002500色调0饱和度0亮度习题2 运用调色板设计技术将灰度图像彩色化。
《数字图像处理》数字图像的基本操作实验
《数字图像处理》数字图像的基本操作实验课程名称:数字图像处理实验类型:设计性实验项目名称:数字图像的基本操作一、实验目的和要求熟悉MATLAB图像处理常用工具函数的使用,巩固对子图像几何变换原理的理解。
二、实验内容运用MATLAB工具函数实现图像的平移、镜像、旋转等几何变换。
三、实验步骤及结果图像平移代码:I=imread('cameraman.tif');se=translate(strel(1),[25 25]);J=imdilate(I,se);subplot(1,2,1),imshow(I),title('原图')subplot(1,2,2),imshow(J),title('平移后的图');程序运行结果:图像的镜像程序:A=imread('cameraman.tif');[height,width]=size(A);tform=maketform('affine',[-1 0 0;0 1 0;width 0 1]); B=imtransform(A,tform,'nearest');tform2=maketform('affine',[1 0 0;0 -1 0;0 height 1]); C=imtransform(A,tform2,'nearest');subplot(1,3,1),imshow(A),title('原图像')subplot(1,3,2),imshow(B),title('水平镜像') subplot(1,3,3),imshow(C),title('垂直镜像');程序运行结果:旋转程序:I=imread('coins.png');J1=imrotate(I,45);J2=imrotate(I,45,'crop'); subplot(1,3,1);imshow(I) subplot(1,3,2);imshow(J1) subplot(1,3,3);imshow(J2); 程序运行结果:完成对图像cameraman.tif向右30,向下15的平移,分别显示平移后和原图相同大小的结果和没有裁剪完整的图像。
数字图像处理MATLAB程序
第一部分数字图像处理实验一图像的点运算实验1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备1.PC机一台;2.软件matlab。
三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察图像matlab环境下的直方图分布。
(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
实验1.2 灰度均衡一.实验目的1.熟悉matlab图像处理工具箱中灰度均衡函数的使用;2.理解和掌握灰度均衡原理和实现方法;二.实验设备1.PC机一台;2.软件matlab;三.程序设计在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(2,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(2,2,3),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题a=histeq(I,256); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像') %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图') %在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二数字图像的基本操作
一.实验目的
1.掌握图像数据的格式;
2.掌握MATLAB语言中图象数据与信息的读取方法;
3.掌握在图像基本运算的方法及操作原理。
二.实验内容
1.图像文件的读、写和显示
参照2.2和2.4的内容,熟练掌握imread、imwrite、imshow、imfinfo、imagesc的使用。
(1)任意读入一个.bmp格式的彩色图像文件(数据要少),查看文件的数据形式。
(2)写一个m文件,包含上述五个命令的使用,并包含二值图像的显示和添加色条;
(3)由二维数组创建灰度图像,并显示和保存。
自己创建一个二维数组,然后用图像显
示命令显示出来。
(4)将一幅256灰度级的原始图像,显示为64灰度级图像;
(5)分别列出一幅索引图像的数据和调色板,改动部分调色板内容后,显示图像,观察
图像有何变化,改动部分数据,显示图像,观察图像有何变化;
Height: 512
BitDepth: 8
ColorType: 'indexed'
FormatSignature: 'GIF89a'
BackgroundColor: 0
AspectRatio: 0
ColorTable: [256x3 double]
Interlaced: 'no'
DelayTime: 50
DisposalMethod: 'DoNotspecify'
(3)A=ones(100,300);
A(1:20,20:40)=0.5;
i=mat2gray(A);
imshow(i);
(4)I=imread('harbour.tif');
imshow(I,[0,63]);
2.图像阅览器的使用
按照2.3操作,熟悉imview打开的图像阅览器。
操作结果略:
3.常用图像操作
(1)参照4.1的内容,重点掌握ind2rgb、mat2gray、rgb2gray、im2bw命令。
写一个m
文件,包含这四个命令的操作,并显示每个命令操作后的结果图像。
(2)颜色空间:参照4.2的内容,掌握rgb2hsv和hsv2rgb的使用。
并编写m文件查看
两种颜色空间的调色板数值,验证两种颜色空间的数值是否符合公式4.1。
(3)图像几何操作:a.读入两幅图像,进行加、减、乘和除运算,并显示结果;(m文件)
b.将图像分别放大1.5倍和缩小0.8倍,插值方法使用双线性插值法。
c.将图像顺时针旋转45度,显示旋转后的图像(m文件);
(4)图像块操作:按照4.4操作,熟悉图像块操作。
即用m文件完成4.4的操作,并显
示结果。
'018.bmp');
'max(x(:))'); I1=nlfilter(I,[3 3],f1);。