数字图像处理第三次实验西南交大
- 格式:doc
- 大小:748.32 KB
- 文档页数:10
西安交通大学数电实验第三次,触发器和计数器设计练习[五篇]第一篇:西安交通大学数电实验第三次,触发器和计数器设计练习第三次触发器和计数器设计练习姓名:班级:学号:【注意:不要抄袭!!截图给出足够多的信息。
】1.项目名称、文件夹结构及文件。
【注意:】截图把文件夹的信息,所有的文件信息都显示出来为好。
2.原理图。
(1)触发器的测试原理图【选做】(2)计数器电路设计实验的原理图(3)基于广义译码器的计数器设计的原理图寄存器原理图:ADDER1 VHDL 代码图:3.仿真结果图。
(1)触发器的测试的仿真结果图【可以不做】【请给出仿真结果图,并简短解释】(2)计数器电路设计实验的仿真结果图【请给出仿真结果图,并简短解释】q0 代表 1,q1 代表 2,q2 代表 4,q3 代表 8,在 clk 第一个上升脉冲沿,q0 置1 表示计数 1。
第二个脉冲,q1 置 1,q0 置 0,表示计数 2;第三个脉冲,q1,q0 都置 1,表示计数 3,以此类推。
到11 后进 1,继续循环。
(3)基于广义译码器的计数器设计的仿真结果图【请给出仿真结果图,并简短解释】A[0]代表 1,A[1]代表 2,A[2]代表 4,A[3]代表 8,在 clk 第一个上升脉冲沿,A[0]置 1 表示计数 1。
第二个脉冲,A[1]置 1,A[0]置0,表示计数2;第三个脉冲,A[1],A[0]都置1,表示计数3,以此类推。
到 15 后进 1,继续循环。
4.其他。
第二篇:数电设计任意模值的计数器..课程名称:数字电子技术基础题目:设计任意模值的计数器院(系): xxxxxx 专业班级: xxxxxxxx 姓名: xxx 学号: xx 指导教师: xx2014年1月3日课程设计(论文)任务书1、课程设计(论文)题目:设计任意模值的计数器。
(模35计数器)2、本次课程设计(论文)应达到的目的:a)熟悉74LS90计数器的基本功能;b)掌握综合应用理论知识和中规模集成电路设计方法;c)掌握调试及电路主要技术指标的测试方法;d)实现用74LS90计数器输出8421BCD码模35置9计数器; e)作出模拟仿真电路图,完成本次课程设计。
电力电子与电力传动120101113 XXX 数字图像处理第三次作业一、霍夫曼编码(1)程序代码I=imread('d:\Michael.jpg');I=rgb2gray(I);data=uint8(I);vector=data;[zipped,info]=huffencode1(data);unzipped=huffdecode1(zipped,info);subplot(131);imshow(data);title('压缩前图像'); subplot(133);imshow(unzipped);title('解压后图像'); subplot(132);imshow(zipped);title('压缩后效果')cr=info.ratiowhos data unzipped zippederms=compare(data(:),unzipped(:));% huffencode1函数对输入矩阵vector进行huffman编码function [zipped,info]=huffencode1(vector)if ~isa(vector,'uint8')eror('input argument must be a uint8 vector');end[m,n]=size(vector);vector=vector(:)';f=frequency1(vector); %计算各个符号出现的概率symbols=find(f~=0);f=f(symbols);[f,sortindex]=sort(f); %将符号按照出现的概率大小排列symbols=symbols(sortindex);len=length(symbols);symbols_index=num2cell(1:len);codeword_tmp=cell(len,1);while length(f)>1 %生成huffman 树,得到码字编码表index1=symbols_index{1};index2=symbols_index{2};codeword_tmp(index1)=addnode1(codeword_tmp(index 1),uint8(0));codeword_tmp(index2)=addnode1(codeword_tmp(index 2),uint8(1));f=[sum(f(1:2)) f(3:end)];symbols_index=[{[index1,index2]}symbols_index(3:end)];[f,sortindex]=sort(f);symbols_index=symbols_index(sortindex);endcodeword=cell(256,1);codeword(symbols)=codeword_tmp;len=0;for index=1:length(vector) %得到整个图像所有比特数len=len+length(codeword{double(vector(index))+1}); endstring=repmat(uint8(0),1,len);pointer=1;for index=1:length(vector) %对输入图像进行编码code=codeword{double(vector(index))+1};len=length(code);string(pointer+(0:len-1))=code;pointer=pointer+len;endlen=length(string);pad=8-mod(len,8); %非8整数倍时,最后补pad 个0if pad>0string=[string uint8(zeros(1,pad))];endcodeword=codeword(symbols);codelen=zeros(size(codeword));weights=2.^(0:23);maxcodelen=0;for index=1:length(codeword)len=length(codeword{index});if len>maxcodelenmaxcodelen=len;endif len>0code=sum(weights(codeword{index}==1));code=bitset(code,len+1);codeword{index}=code;codelen(index)=len;endendcodeword=[codeword{:}];%计算压缩后的向量cols=length(string)/8;string=reshape(string,8,cols);weights=2.^(0:7);zipped=uint8(weights*double(string));%码表存储到一个稀疏矩阵huffcodes=sparse(1,1);forindex=1:nnz(codeword) %length(codeword) %n umel(codeword)huffcodes(codeword(index),1)=symbols(index); endinfo.pad=pad;info.huffcodes=huffcodes;info.ratio=cols./length(vector);info.length=length(vector);info.maxcodelen=maxcodelen;info.rows=m;info.cols=n;% huffdecode1函数对输入矩阵vector进行huffman编码,返回解压后的图像数据function vector=huffdecode1(zipped,info)if ~isa(zipped,'uint8')error('input argument must be a uint8 vector'); end%产生0,1序列,每位占一个字节len=length(zipped);string=repmat(uint8(0),1,len.*8);bitindex=1:8;for index=1:lenstring(bitindex+8.*(index-1))=uint8(bitget(zipped(index), bitindex));endstring=logical(string(:)');len=length(string);string((len-info.pad+1):end)=[];len=length(string);%开始解码weights=2.^(0:51);vector=repmat(uint8(0),1,info.length);vectorindex=1;codeindex=1;code=0;for index=1:lencode=bitset(code,codeindex,string(index));codeindex=codeindex+1;byte=decode1(bitset(code,codeindex),info);if byte>0vector(vectorindex)=byte-1;codeindex=1;code=0;vectorindex=vectorindex+1;endend vector=reshape(vector,info.rows,info.cols);%函数frequency1计算各个符号出现的概率function f=frequency1(vector)if ~isa(vector,'uint8')error('input argument must be a uint8 vector'); endf=repmat(0,1,256);len=length(vector);for index=0:255f(index+1)=sum(vector==uint8(index));endf=f./len;%函数addnod1添加节点function codeword_new=addnode1(codeword_old,item) codeword_new=cell(size(codeword_old));for index=1:length(codeword_old)codeword_new{index}=[item codeword_old{index}]; endfunction erms=compare(f1,f2)e=double(f1)-double(f2);[m,n]=size(e);erms=sqrt(sum(e(:).^2)/(m*n));if erms~=0emax=max(abs(e(:)));[h,x]=hist(e(:));if length(h)>=1figure(4);bar(x,h,'k');e=mat2gray(e,[-emax,emax]);figure(5);imshow(e);end(2)运行结果cr =0.9050erms = 0二、算术编码(1)程序代码a=[0 1 0;1 1 1;0 1 0];a=uint8(a);vector=a(:)';t=tabulate(vector);ps=t(:,3)/100;symbol=t(:,1);inseq=vector;codeword=arithencode(symbol,ps,inseq)outinseq=arithdecode(symbol,ps,codeword,length(inse q));[m n]=size(a);aa=reshape(outinseq,m,n);subplot(121),imshow(a),title('解压前图像');subplot(122),imshow(aa),title('解压后图像');(2)运行后结果codeword =0.2922。
数字图像处理及MATLAB实现实验三——图像基本运算1.图像的点运算1.内容:对⼀灰度图像,通过选择不同的灰度变换函数s=T(r)实现图像的灰度变换范围线性扩展和⾮线性扩展,以及图像的灰度倒置和⼆值化2.实验⽅法:1.选择⼀幅图像lena.jpg,设置输⼊输出变换的灰度级范围,a=0.3,b=0.6,c=0.1,d=0.9。
2.设置⾮线性扩展函数的参数c=2。
3.采⽤灰度倒置变换函数s=255-r进⾏图像变换。
4.设置⼆值化图像的阈值,分别为level=0.4,level=0.7参考程序如下。
%1.图像的点运算%内容:对⼀灰度图像,通过选择不同的灰度变换函数s=T(r)实现图像的灰度变换范围线性扩展和⾮线性扩展,以及图像的灰度倒置和⼆值化%实验⽅法:% 1.选择⼀幅图像lena.jpg,设置输⼊输出变换的灰度级范围,a=0.3,b=0.6,c=0.1,d=0.9。
% 2.设置⾮线性扩展函数的参数c=2。
% 3.采⽤灰度倒置变换函数s=255-r进⾏图像变换。
% 4.设置⼆值化图像的阈值,分别为level=0.4,level=0.7参考程序如下。
I=imread('lena.jpg');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);%将图像转换为double类型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);%将此图像⼆值化,阈值为0.4N2=im2bw(I,0.7);%将此图像⼆值化,阈值为0.7subplot(1,3,2);imshow(N1);title('⼆值化阈值0.4');subplot(1,3,3);imshow(N2);title('⼆值化阈值0.7');2.图像的代数运算内容:采⽤正确的图像代数运算⽅法,分别实现图像图像叠加,混合图像的分离和图像的局部显⽰效果1.选取两幅⼤⼩⼀样的灰度图像iena.jpg和rice.jpg,将两幅图像进⾏加法运算,结果如图。
数字图像处理实验报告(全答案)常用MATLAB图像处理命令一、实验目的1、熟悉并掌握MATLAB工具的使用;2、实现图像的读取、显示、代数运算和简单变换。
二、实验环境MATLAB 6.5以上版本、WIN XP或WIN2000计算机三、常用函数●读写图像文件1 imreadimread函数用于读入各种图像文件,如:a=imread('e:\w01.tif')2 imwriteimwrite函数用于写入图像文件,如:imwrite(a,'e:\w02.tif',’tif’)3 imfinfoimfinfo函数用于读取图像文件的有关信息,如:imfinfo('e:\w01.tif') ●图像的显示1imageimage函数是MATLAB提供的最原始的图像显示函数,如:a=[1,2,3,4;4,5,6,7;8,9,10,11,12];image(a);2 imshowimshow函数用于图像文件的显示,如:i=imread('e:\w01.tif');imshow(i);title(‘原图像’)%加上图像标题3 colorbarcolorbar函数用显示图像的颜色条,如:i=imread('e:\w01.tif');imshow(i);colorbar;4 figurefigure函数用于设定图像显示窗口,如:figure(1); /figure(2);5 subplot把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。
Subplot(m,n,p)分成m*n个小窗口,在第p个窗口中创建坐标轴为当前坐标轴,用于显示图形。
6 plot绘制二维图形plot(y)Plot(x,y)xy可以是向量、矩阵。
图像类型转换1 rgb2gray把真彩图像转换为灰度图像i=rgb2gray(j)2 im2bw通过阈值化方法把图像转换为二值图像I=im2bw(j,level)Level表示灰度阈值,取值范围0~1(即0.n),表示阈值取自原图像灰度范围的n%3 imresize改变图像的大小I=imresize(j,[m n])将图像j大小调整为m行n列图像运算1 imadd两幅图像相加,要求同样大小,同种数据类型Z=imadd(x,y)表示图像x+y2 imsubstract两幅图像相减,要求同样大小,同种数据类型Z=imsubtract(x,y)表示图像x-y3 immultiplyZ=immultiply(x,y)表示图像x*y4 imdivideZ=imdivide(x,y)表示图像x/y四、实验内容(请将实验程序填写在下方合适的位置,实验图像结果拷屏粘贴)1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
西安邮电学院实验报告实验名称形态学图像处理课程名称数字图像处理A 姓名成绩班级学号日期2011.5.31 地点3#531实验三 形态学图像处理1. 实验任务(1)了解并掌握膨胀、腐蚀及开运算、闭运算的基本原理;(2)编写程序使用开运算、闭运算处理图像,进一步理解开运算、闭运算的实质;(3)编写程序使用开运算、闭运算进行图像去噪处理,根据实验结果分析效果;(4)总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。
2. 实验环境Windws2000/XPMA TLAB 7.x3.实验方法对两幅受噪声干扰的数字图像curve_128.bmp (如图3.1所示)和enoise.bmp (如图3.2所示)进行如下处理:(1)对两幅图像进行腐蚀、膨胀处理,显示处理前、后图像:用不同尺度及形状的结构元素进行腐蚀、膨胀处理,分析结构元素对处理效果的影响; (2)分别对两幅图像设计相应的开、闭运算进行降低噪声的处理,显示处理前、后图像;分析两幅图像为了降低噪声所设计的运算有无不同?如果有请分析为什么会有这种不同?具体实现:在MA TLAB 7.x 中按要求编写附件中程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
熟悉并掌握程序中所使用函数的调用方法,改变有关参数,观察并分析试验结果。
4.实验分析图3.1 实验图像curve_128.bmp图3.2 实验图像enoise.bmp在MatLab 中输入各程序代码后运行程序,得到输出结果如图所示: 1-11-22-1原图像加噪声图像线形性腐蚀图线形膨胀图圆形腐蚀图圆形膨胀图原图像加噪声图像线形腐蚀图线形膨胀图方形腐蚀图方形膨胀图2-25.实验结论通过实验理解腐蚀膨胀的用途,腐蚀可以将邻近的不同的目标分离开来,可以将小颗粒的噪声去除;膨胀能够有效地填充物体内部细小的空洞,连接断裂的目标,以便于整体提取,同时能在不明显改变物体面积的情况下平滑物体的边界;但是腐蚀膨胀运算会改变原目标物的大小,所以使用开闭运算解决这个缺点, 开运算即是将原图先腐蚀再膨胀,它可以在分离粘连目标物的同时基本保持元目标物的大小;闭运算即是将原图先膨胀再腐蚀,它可以在合并断裂目标物的同时原图像加噪后图像线形闭运算后图像线形开运算后图像圆形闭运算后的图像圆形开运算后图像原图像加噪后图像腐蚀操作膨胀操作腐蚀操作膨胀操作基本保持原目标物的大小。
数字图像处理实验报告光信13-2班2013210191韩照夏数字图像处理实验报告实验一数字图像空间域平滑一、实验目的掌握图像空间域平滑的原理和程序设计;观察对图像进行平滑增强的效果。
二、实验设备计算机,Matlab程序平台。
三、实验原理图像平滑处理的目的是改善图像质量和抽出对象特征。
任何一幅未经处理的原始图像,都存在着一定程度的噪声干扰。
噪声恶化了图像质量,使图像模糊,甚至淹没特征,给分析带来困难。
消除图像噪声的工作称为图像平滑或滤波。
针对不同噪声源(如光栅扫描、底片颗粒、机械元件、信道传输等)引起的不同种类噪声(如加性噪声、乘性噪声、量化噪声等),平滑方法也不同。
平滑可以在空间域进行,也可以在频率域进行。
1.局部平均法局部平滑法是一种直接在空间域上进行平滑处理的技术。
假设图像由许多灰度恒定的小块组成,相邻象素间存在很高的空间相关性,而噪声则是统计独立的。
因此,可用邻域内各象素的灰度平均值代替该象素原来的灰度值,实现图像的平滑。
对图像采用3×3的邻域平均法,其作用相当于用以下模板与图像进行卷积运算。
2. 超限象素平滑法 对邻域平均法稍加改进,可导出超限象素平滑法。
其原理是将f(x,y)和邻域平均g(x,y)差的绝对值与选定的阈值进行比较,根据比较结果决定点(x,y )的最后灰度g ´(x,y)。
其表达式为3. 二维中值滤波中值滤波就是用一个奇数点的移动窗口, 将窗口中心点的值用窗口内各点的中值代替。
二维中值滤波可由下式表示常用的窗口有:四、实验步骤1.实验准备:打开计算机,进入Matlab 程序界面。
2.输入图像空间域平滑处理程序,程序如下:⎩⎨⎧>-= ),(),(),( ),,(),('其他,当y x f T y x g y x f y x g y x g )},({),(y x f Med y x g A=程序1.1 图像平滑处理clear;clc;I=imread('lena.jpg');subplot(3,2,1);imshow(I);title('原图像');I1=imnoise(I,'salt & pepper',0.02);subplot(3,2,2);imshow(I1);title('对I加椒盐噪声的图像');h2=fspecial('average',[3 3]);I2=imfilter(I1,h2,'replicate');subplot(3,2,3);imshow(I2);title('3×3邻域平滑');h3=fspecial('average',[5 5]);I3=imfilter(I1,h3,'replicate');subplot(3,2,4);imshow(I3);title('5×5邻域平滑');I4=I1;I4((abs(I1-I2))>64)=I2((abs(I1-I2))>64);subplot(3,2,5);imshow(I4);title('3×3超限象素平滑(T=64)'); I5=I1;I5((abs(I1-I3))>48)=I3((abs(I1-I3))>48);subplot(3,2,6);imshow(I5);title('5×5超限象素平滑(T=48)');程序1.2 图像平均平滑与中值滤波clear;clc;I=imread('lena.jpg');subplot(3,3,1);imshow(I);title('原图像');I1=imnoise(I,'gaussian',0.02);subplot(3,3,2);imshow(I1);title('高斯噪声');I2=imnoise(I,'salt & pepper',0.02);subplot(3,3,3);imshow(I1);title('椒盐噪声');h1=fspecial('average',[3 3]);I3=imfilter(I1,h1,'replicate');subplot(3,3,4);imshow(I3);title('对I1 3×3邻域平滑');h2=fspecial('average',[3 3]);I4=imfilter(I2,h2,'replicate');subplot(3,3,5);imshow(I4);title('对I2 3×3邻域平滑');I5=medfilt2(I1,[5 5]);subplot(3,3,6);imshow(I5);title('对I1 5×5中值滤波');I6=medfilt2(I2,[5 5]);subplot(3,3,7);imshow(I6);title('对I2 5×5中值滤波');3.运行图像处理程序,并保存处理结果图像。
数字信号处理第三次作业数字图像处理第三次作业摘要本次报告主要记录第三次作业中的各项任务完成情况。
本次作业以Matlab 2013为平台,结合matlab函数编程实现对所给图像⽂件的相关处理:1.把附件图像的直⽅图画出;2.把所有图像进⾏直⽅图均衡;输出均衡后的图像和源图像进⾏⽐对;分析改善内容;3.进⼀步把图像按照对源图像直⽅图的观察,各⾃指定不同源图像的直⽅图,进⾏直⽅图匹配,进⾏图像增强。
以上任务完成后均得到了预期的结果。
1.把附件图像的直⽅图画出(1)实验原理及⽅法图像直⽅图显⽰不同的像素值在不同的强度值上的出现频率,它是⼀个⼆维图,横坐标表⽰图像中各个像素点的灰度级,纵坐标为各个灰度级上图像各个像素点出现的次数或概率。
它可以⽤来寻找灰度图像⼆值化阈值和调整图像对⽐度,如果⼀幅灰度图像的直⽅图显⽰为两个波峰,则⼆值化阈值应该是这两个波峰之间的某个灰度值。
绘制直⽅图的原理是利⽤matlab的imread函数读取图像数据点,对数据点的值进⾏排序,统计每个灰度值出现的次数,利⽤这些数据值即可绘出直⽅图。
在matlab中可直接利⽤imhist函数完成以上过程。
由于所给的10幅经变亮或变暗处理的图像是索引图,所以还需要将他们转换为灰度图像后才能进⾏操作。
利⽤matlab中的ind2gray函数即可实现转换。
(2)处理结果citywall.bmp的直⽅图050100150200250citywall1.bmp的直⽅图050100150200250citywall2.bmp的原直⽅图0501001502002500100020003000elain.bmp 的直⽅图1002000elain1.bmp 的直⽅图100200050001000015000 elain2.bmp 的原直⽅图100200x 104elain3.bmp 的原直⽅图01002000100020003000lena.bmp 的直⽅图1002000x 104lena1.bmp 的直⽅图1002000200040006000lena2.bmp 的直⽅图0100200050001000015000lena4.bmp 的直⽅图100200(3)结果分析⼀幅图像的直⽅图基本上可描述图像的概貌,如图像的阴暗状况和对⽐度等特征。
数字图像实验报告数字图像实验报告引言:数字图像处理是一门涉及计算机科学和电子工程的学科,它通过对图像进行数字化处理,实现对图像的分析、增强和改变。
本实验报告旨在介绍数字图像处理的基本概念和实验结果,以及对实验结果的分析和讨论。
一、实验目的本次实验的主要目的是了解数字图像处理的基本原理和方法,通过实践掌握常见的图像处理技术,并对实验结果进行分析和评估。
二、实验过程1. 图像获取在本次实验中,我们使用了一张自然风光的彩色图像作为实验对象。
这张图像包含了丰富的颜色和细节,能够很好地展示数字图像处理的效果。
2. 图像预处理在进行图像处理之前,我们需要对图像进行预处理,以便更好地进行后续处理。
预处理包括图像去噪、增强和边缘检测等步骤。
我们使用了常见的滤波算法对图像进行去噪处理,然后使用直方图均衡化技术对图像进行增强,最后使用边缘检测算法提取图像的边缘信息。
3. 图像分割图像分割是将图像分成若干个具有独立特征的区域的过程。
我们使用了基于阈值的分割方法对图像进行分割,通过调整阈值的大小,可以得到不同的分割结果。
4. 特征提取特征提取是从图像中提取出具有代表性的特征,用于进一步分析和处理。
我们使用了常见的特征提取算法,如边缘检测、角点检测和纹理特征提取等,从图像中提取出了边缘、角点和纹理等特征。
5. 图像重建图像重建是将经过处理的图像恢复到原始状态的过程。
我们使用了图像插值算法对图像进行重建,通过插值算法,可以将图像的分辨率提高,从而得到更清晰的图像。
三、实验结果经过以上的处理步骤,我们得到了一系列经过处理的图像。
通过对比原始图像和处理后的图像,我们可以看到图像处理对图像的改变和影响。
在图像去噪和增强的过程中,我们成功地去除了图像中的噪声,并增强了图像的对比度和细节。
在图像分割和特征提取的过程中,我们成功地将图像分割成若干个具有独立特征的区域,并提取出了图像的边缘、角点和纹理等特征。
在图像重建的过程中,我们成功地提高了图像的分辨率,得到了更清晰的图像。
数字图像处理第二次实验 注意提交实验报告的文件名格式(姓名+学号+实验报告二.doc) 实验三 灰度变换增强 一、实验目的 1. 熟悉matlab图像处理工具箱及直方图函数的使用; 2. 了解灰度变换增强的Matlab实现方法 3. 掌握直方图灰度变换方法 4. 理解和掌握直方图原理和方法;
二、实验内容
线段上像素灰度分布 1.读入灰度图像'',采用交互式操作,用improfile绘制一条线段
的灰度值。 imshow(rgb2gray(imread(''))) improfile 读入RGB图像‘',显示所选线段上红、绿、蓝颜色分量的分布 imshow('') improfile
直方图变换 2.A) 直方图显示
在matlab环境中,程序首先读取图像'',然后调用直方图函数,设置相关参数,再输出 处理后的图像。. I=imread(''); %读取图像 subplot(1,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(1,2,2),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题
读入图像‘',在一个窗口中显示灰度级n=64,128和256的图像直方图。 I=imread(''); imshow(I) figure,imhist(I,64) figure,imhist(I,128) figure,imhist(I,256) B) 直方图灰度调节 利用函数imadjust调解图像灰度范围,观察变换后的图像及其直方图的变化。 I=imread(''); imshow(I) figure,imhist(I) J=imadjust(I,[ ],[0 1]); figure,imhist(J) figure,imshow(J) I=imread(''); imshow(I) figure,imhist(I) J=imadjust(I,[0 ],[ 1]); figure,imhist(J) figure,imshow(J)
直方图均衡化 C). 在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。 I=imread(''); %读取图像 subplot(2,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(2,2,3),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题 a=histeq(I,256); %直方图均衡化,灰度级为256 subplot(2,2,2),imshow(a) %输出均衡化后图像 title('均衡化后图像') %在均衡化后图像中加标题 subplot(2,2,4),imhist(a) %输出均衡化后直方图 title('均衡化后图像直方图') %在均衡化后直方图上加标题 分别对图像‘'和‘'进行直方图均衡化处理,比较处理前后图像及直方图分布的变化。 I=imread(''); imshow(I). figure,imhist(I) J=histeq(I); figure,imhist(J) figure,imshow(J)
I=imread(''); imshow(I) figure,imhist(I) J=histeq(I); figure,imshow(J) figure,imhist(J). 、 三、思考题 (试回答以下问题) 1. MATLABIPT中有哪些图像亮(灰)度变换
函数写出函数的语法。程序的
直方图的物理含义是什么2.
结合实验内容,定性评价直方图均衡增强效果3.另一类是间接对比一类是直接对比度增强方法;图像对比度增强的方法可以分成两类:度增强方法。直方图拉伸和直方图均衡化是两种最常见的间接对比度增强方法。直方图前景和背景灰度的差别,以达到扩大”拉伸是通过对比度拉伸对直方图进行调整,从而“直方图均衡化则通过增强对比度的目的,这种方法可以利用线性或非线性的方法来实现; 以实现对比度的增强。“使用累积函数对灰度值进行调整”是把原始图像的灰度直方图从比较集中的某个”中心思想“直方图均衡化处理的 直方图均衡化就是对图像进行非线性拉伸,灰度区间变成在全部灰度范围内的均匀分布。重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给 分布直方图分布。均匀定图像的直方图分布改变成“” 缺点: )变换后图像的灰度级减少,某些细节消失; 1 )某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。 2 直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。 尤其是当图像的有用数据的对比度相这种方法通常用来增加许多图像的局部对比度,当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现 这种功能。这种方法尤其是可以这种方法对于背景和前景都太亮或者太暗的图像非常有用, 光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。这X带来种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。这种方法的一个缺点是它对处理的数据不加选择,它可能会增加背景杂讯的对比度并且降低有用信号的对比度。
实验四 空域滤波增强 一、 实验目的 1.了解空域滤波增强的Matlab实现方法; 2.掌握噪声模拟和图像滤波函数的使用方法; 3.能够将给定图像+噪声,使用均值滤波器、中值滤波器对不同强度的高斯噪声和椒盐噪声,进行滤波处理; 4.能够正确地评价处理的结果;并从理论上作出合理的解释。
二、实验内容.
噪声模拟 1.利用函数imnoise给图像‘'分别添加高斯(gaussian)噪声和椒盐(salt & pepper)
噪声。 I=imread(''); imshow(I)
I1=imnoise(I,'gaussian',0,; figure,imshow(I1) I2=imnoise(I,'salt & pepper'); figure,imshow(I2) 均值滤波和中值滤波 2.A) 均值滤波
在matlab环境中,程序首先读取图像,然后调用图像增强()函数,设置相关参数,再输出处理后的图像。 I = imread(''); figure,imshow(I);
J=filter2(fspecial('average',3),I)/255; figure,imshow(J);
B) 中值滤波 在matlab环境中,程序首先读取图像,然后调用图像增强(中值滤波)函数,设置相关参数,再输出处理后的图像。 I = imread(''); figure,imshow(I); J=medfilt2(I,[5,5]); 中值滤波 figure,imshow(J);
空域滤波 3.A) 对上述噪声图像进行均值滤波和中值滤波,比较滤波效果。
i=imread(''); I=rgb2gray(i); J = imnoise(I,'gauss',; %添加高斯噪声 %J = imnoise(I,'salt & pepper',; %添加椒盐噪声 K = filter2(fspecial('average',3),J)/255; %均值滤波 3 ×3 L = filter2(fspecial('average',5),J)/255; %均值滤波 5 ×5 M = medfilt2(J,[3 3]); %中值滤波3 ×3 模板 N = medfilt2(J,[4 4]); % 中值滤波4 ×4 模板 %显示以上滤波后的图片 imshow(I); figure,imshow(J); figure,imshow(K); figure,imshow(L); figure,imshow(M); figure,imshow(N); B) 总结均值滤波和中值滤波的特点及使用场合。 (1)对于均值滤波, 由以上处理后的图像可以看到:均值滤波对高斯噪声的抑制是比较好的,处理后的图像边缘模糊较少。但对椒盐噪声的影响不大,因为在削弱噪声的同时整幅图像内容总体也变得模糊,其噪声仍然存在。 (2)对于中值滤波,由图像处理的结果可以看出,它只影响了图像的基本信息,说明中值滤波对高斯噪声的抑制效果不明显。这是因为高斯噪声使用随机大小的幅值污染所有的点,因此无论怎样进行数据选择,得到的始终还是被污染的值。而由图还可以看出,中值滤波对去除“椒盐”噪声可以起到很好的效果,因为椒盐噪声只在画面中的部分点上随机出现,所以根据中值滤波原理可知,通过数据排序的方法,将图像中未被噪声污染的点代替噪声点的值的概率比较大,因此噪声的抑制效果很好,同时画面的轮廓依然比较清晰。由此看来,对于椒盐噪声密度较小时,尤其是孤立噪声点,用中值滤波的效果非常好的。 均值滤波对高斯噪声有较好的抑制作用,而对于椒盐噪声的处理中值滤波要略微有优势。
C) *对图像''采用'laplacian'高通滤波器进行锐化滤波。(提示:可使用fspecial函数) I=double(rgb2gray(imread(''))); imshow(I) H=fspecial('laplacian')%用laplacian'高通滤波器对I进行滤波 I2=filter2(H,I) %lapacian 算子滤波锐化