数字图像处理实验一(附源程序)
(完整word版)数字图像处理 实验报告(完整版)

数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;实验结果如下图:源代码:>>I=imread('lily.tif')>> whos I>> imshow(I)二、压缩图像4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。
7.用imread()读入图像Sunset.jpg和Winter.jpg;8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小;9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。
其中9的实验结果如下图:源代码:4~6(接上面两个) >>I=imread('lily.tif')>> imfinfo 'lily.tif';>> imwrite(I,'lily.jpg','quality',20);>> imwrite(I,'lily.bmp');7~9 >>I=imread('Sunset.jpg');>>J=imread('Winter.jpg')>>imfinfo 'Sunset.jpg'>> imfinfo 'Winter.jpg'>>figure(1),imshow('Sunset.jpg')>>figure(2),imshow('Winter.jpg')三、二值化图像10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。
数字图像处理实验——实验一

报告内容:(目的和要求、原理、步骤、数据、计算、小结等)实验一静态图像采集一、实验目的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、复习有关图象动态采集的基础知识。
数字图像处理实验实验报告 实验二

数字图像处理实验实验报告(实验一)一、实验目的:1、直方图显示2、计算并绘制图像直方图3、直方图均衡化二.程序脚本clear all;RGB=imread('me.jpg');figure;imshow(RGB);title('图1 彩色图');%========================================================== I=rgb2gray(RGB);figure;imshow(I);title('图2 灰度图');%========================================================= figure;imhist(I);title('灰度直方图');%========================================================= hi=imhist(I);j=1;%为使画出的直方图更好看,在此进行了抽样for(i=1:256)if(mod(i,10)==1)h(j)=hi(i);j=j+1;endendn=0:10:255;figure;stem(n,h);axis([0 255 0 2500]);title('图3.1 stem显示直方图');figure;bar(n,h);axis([0 255 0 2500]);title('图3.2 bar显示直方图');figure;plot(n,h);axis([0 255 0 2500]);title('图3.3 plot显示直方图');%========================================================= I=rgb2gray(RGB);figure;subplot(3,2,1);imshow(I);title('图4.1 原始灰度图');subplot(3,2,2);imhist(I);title('图4.2 原始灰度直方图');%=============================J1=imadjust(I);subplot(3,2,3);imshow(J1);title('调整对比度以后的图');subplot(3,2,4);imhist(J1);title('调整对比度以后的灰度直方图');%=================================J2=histeq(I);subplot(3,2,5);imshow(J2);title('均衡化以后的的图');subplot(3,2,6);imhist(J2);title('均衡化以后的灰度直方图');三.实验结果图1 彩色图图2 灰度图010002000灰度直方图10020010020005001000150020002500图3.1 stem 显示直方图10020005001000150020002500图3.2 bar 显示直方图10020005001000150020002500图3.3 plot 显示直方图图4.1 原始灰度图10002000图4.2 原始灰度直方图0100200调整对比度以后的图010002000调整对比度以后的灰度直方图0100200均衡化以后的的图02000均衡化以后的灰度直方图100200。
数字图像处理实验一图像的基本操作和基本统计指标计算实验报告.doc

实验一图像的基本操作和基本统计指标计算一、实验目的熟悉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(编码方法)等。
数字图像处理实验

数字图像处理实验数字图像处理实验实验⼀:图像⾊彩编辑器⼀、图像⾊彩编辑器(ColorPicker)是⼀个基于对话框的应⽤程序,它具有以下功能:1、⾊彩编辑功能⽤户可以通过可以调整R、G、B的值来编辑颜⾊,亦可通过调整H、S、V的值来选取颜⾊。
颜⾊编辑的结果会马上反馈到颜⾊⾯板和颜⾊预览框中。
2、RGB颜⾊空间和HSV颜⾊空间的转换当改变RGB值,会得到相应的HSV值,并进⾏显⽰,反之亦然。
3、取⾊功能取⾊功能包含“⾯板取⾊”和“屏幕取⾊”。
⾯板取⾊就是⽤户可以在颜⾊⾯板中单击⿏标左键,选取⽬标点所表⽰的某种颜⾊。
屏幕取⾊则是允许⽤户获取整个屏幕上的任意⼀点的颜⾊值。
⽤户可以将⿏标移动到需要获取颜⾊的地⽅,然后按a键或A键即可以获取该点颜⾊值。
⼆、实验步骤1、创建新项⽬打开VC6.0,选择菜单中的[⽂件]——[新建]项⽬,在弹出的“新建项⽬”对话框中选择“MFC应⽤程序”模板,并在名称中输⼊“ColorPicker”,然后单击“确定”。
在“MFC 应⽤程序向导”的应⽤程序类型中选择“基本对话框”,其他选项采⽤系统默认设置,最后⽣成项⽬。
2、对话框设计设计对话框将解决各种控件的数量、摆放的位置和使⽤的名称等问题。
打开资源视图(ColorPicker Resources),点击对话框(Dialog),找到名为“IDD_COLORPICKER_DIALOG”的对话框资源,双击它进⼊编辑状态,并按照下图所⽰的图和表对该对话框进⾏编辑。
3、完成实例编程12 3 4 5 678 9 1011 12 13这⾥介绍⼀下组成ColorPicker 应⽤程序的每个⽂件的作⽤:(1)ColorPicker.vcproj这是使⽤应⽤程序向导⽣成的VC++ 项⽬的主项⽬⽂件。
它包含⽣成该⽂件的Visual C++ 的版本信息,以及有关使⽤应⽤程序向导选择的平台、配置和项⽬功能的信息。
(2)ColorPicker.h这是应⽤程序的主要头⽂件。
数字图像处理实验报告(完整版)

数字图像处理实验报告(完整版)数字图像处理实验⼀ MATLAB数字图像处理初步⼀、显⽰图像1.利⽤imread( )函数读取⼀幅图像,假设其名为lily.tif,存⼊⼀个数组中;2.利⽤whos 命令提取该读⼊图像flower.tif的基本信息;3.利⽤imshow()函数来显⽰这幅图像;实验结果如下图:源代码:>>I=imread('lily.tif')>> whos I>> imshow(I)⼆、压缩图像4.利⽤imfinfo函数来获取图像⽂件的压缩,颜⾊等等其他的详细信息;5.利⽤imwrite()函数来压缩这幅图象,将其保存为⼀幅压缩了像素的jpg⽂件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利⽤imwrite()函数将最初读⼊的tif图象另存为⼀幅bmp图像,设为flily.bmp。
7.⽤imread()读⼊图像Sunset.jpg和Winter.jpg;8.⽤imfinfo()获取图像Sunset.jpg和Winter.jpg的⼤⼩;9.⽤figure,imshow()分别将Sunset.jpg和Winter.jpg显⽰出来,观察两幅图像的质量。
其中9的实验结果如下图:源代码:4~6(接上⾯两个) >>I=imread('lily.tif')>> imfinfo 'lily.tif';>> imwrite(I,'lily.jpg','quality',20);>> imwrite(I,'lily.bmp');7~9 >>I=imread('Sunset.jpg');>>J=imread('Winter.jpg')>>imfinfo 'Sunset.jpg'>> imfinfo 'Winter.jpg'>>figure(1),imshow('Sunset.jpg')>>figure(2),imshow('Winter.jpg')三、⼆值化图像10.⽤im2bw将⼀幅灰度图像转化为⼆值图像,并且⽤imshow显⽰出来观察图像的特征。
数字图像处理实验指导书(带源程序)

实验一Matlab图像处理工具箱的初步练习一. 实验目的1. 掌握有关数字图像处理的基本概念;2. 熟悉Matlab图像处理工具箱;3. 熟悉使用Matlab进行数字图像的读出和显示;4. 熟悉运用Matlab指令进行图像旋转和缩放变换。
二. 练习1. 文件的读入与显示(1) 运行Matlab。
(2) MATLAB窗口构成:在缺省的情况下,由三个窗口组成。
命令窗口(command window)、命令历史(command history)、工作空间(workspace)。
注意:缺省窗口的设置步骤为:MATLAB菜单/view选项/Desktop layout/default。
(3) 调入一个文件:i=imread('pout.tif');%注意:前面的“%”是用于注释的,不会被执行,只是说明这个语句的作用。
此时的i出现在什么窗口?是什么类型的变量?大小是多少?(4) 显示这幅图:imshow(i);(5) 将变量i转置成j,即j=i';显示j即imshow(j);%在胸前左侧花纹怎么会跑到右边的呢?举一个例子加以验证:设a=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15];b=a’;此时的b与a有什么区别?(6) 写入到一个新的图像文件'abc.tif'中,即imwrite(j,'abc.tif')。
(7) 清除变量命令:clear执行这个命令后,workspace窗口中的变量有没有?怎么验证?(8) 清除用户开设的窗口命令:close all(9) 调入图像文件'abc.tif'并显示。
问题:(1) 操作符“’”是图像的转置的意思,转置两次后,是否回到原图像?(2) 命令后的符号“;”所起的作用是什么?(3) 命令是否可以大写母?2. 灰度图像分别选择不同的灰度级(如2、4、16、64、128个)来显示同一幅图像(如testpat1.tif)。
数字图像处理实验程序

1对一幅图像的频谱进行频率位移,移到窗口中央,并显示出频率变换后的频谱图。
实验清单:i=imread('256gray.bmp')imshow(i);ffti=fft2(i)sffti=fftshift(ffti)rr=real(sffti)li=imag(sffti)a=sqrt(rr.^2+li.^2)a=(a-min(min(a)))/(max(max(a))-min(min(a)))*255figureimshow(a)2.锐化空间域方法i=imread('256gray.bmp');j=im2double(i);subplot(2,2,1),imshow(j,[ ]);h1=[0 -1 0,-1 0 -1,0 -1 0];h2=[-1 -1 -1,-1 9 -1,-1 -1 -1];h3=[1 -2 1,-2 5 -2,1 -2 1];a=conv2(j,h1,'same');subplot(2,2,2),imshow(a,[ ])b=conv2(j,h2,'same');subplot(2,2,3),imshow(b,[ ])c=conv2(j,h3,'same');subplot(2,2,4),imshow(c,[ ])3、小波变换clearclcX=imread('barbara.bmp');[c,s]=wavedec2(X,2,'bior3.7');ca1=appcoef2(c,s,'bior3.7',1);ch1=detcoef2('h',c,s,1);cv1=detcoef2('v',c,s,1);cd1=detcoef2('d',c,s,1);a1=wrcoef2('a',c,s,'bior3.7',1);h1=wrcoef2('h',c,s,'bior3.7',1);v1=wrcoef2('v',c,s,'bior3.7',1);d1=wrcoef2('d',c,s,'bior3.7',1);c1=[a1,h1;v1,d1];ca1=appcoef2(c,s,'bior3.7',1);ca1=wcodemat(ca1,400,'mat',0);ca1=0.5*ca1;ca2=appcoef2(c,s,'bior3.7',2);ca2=wcodemat(ca2,400,'mat',0);ca2=0.25*ca2;subplot(221)imshow(X)title('原始图像')disp('原始图像的大小')whos('X')subplot(222)c1=uint8(c1);imshow(c1)title('显示分频信息')subplot(223)disp('第一次压缩图像的大小')ca1=uint8(ca1);whos('ca1')imshow(ca1);title('第一次压缩的图像')disp('第二次压缩图像的大小')subplot(224)ca2=uint8(ca2);imshow(ca2);title('第二次压缩的图像')whos('ca2')2利用DCT进行图像压缩(首先将图像分割成8×8的图像,对每个子图像进行DCT,这样每个子图像有64个系数,舍去50%小的变换系数,进行2:1的压缩。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理—实验一
一.实验内容:
图像灰度变换
二.实验目的:
学会用Matlab 软件对图像灰度进行变换;感受各种不同的灰度变换方法对最终图像效果的影响。
三.实验步骤:
1.获取实验用图像:rice.jpg. 使用imread 函数将图像读入Matlab 。
2.产生灰度变换函数T1,使得:
0.3r
r < 0.35 s =
0.105 + 2.6333(r – 0.35) 0.35 ≤ r ≤ 0.65
1 + 0.3(r – 1) r > 0.65 用T1对原图像rice.jpg 进行处理,使用imwrite 函数保存处理后的新图像。
3.产生灰度变换函数T2,使得:
s =
用T2对原图像rice.jpg 进行处理,使用imwrite 保存处理后的新图像。
4.分别用 s = r 0.6; s = r 0.4; s = r 0.3 对kids.tiff 图像进行处理。
为简便起见,请
使用Matlab 中的imadjust 函数。
使用imwrite 保存处理后的新图像。
5.对circuit.jpg 图像实施反变换(Negative Transformation )。
s =1-r; 使用
imwrite 保存处理后的新图像。
6.对rice.jpg 图像实施灰度切片(Gray-level slicing )。
具体要求如下:
当0.2 ≤ r ≤ 0.4时,将r 置为0.6, 当r 位于其他区间时, 保持其灰度与原图像一样。
使用imwrite 保存处理后的新图像。
7.利用灰度变换对Picture.jpg 做增强处理,突出图中的人物,改善整个图像过
于灰暗的背景。
通过调节参数,观察变换后的图像与原始图像的变化,寻找出最佳的灰度变换结果。
写出所采用的拉伸表达式。
(提示:用imhist 观察图像直方图,利用分段线性灰度变换。
)
四.实验报告要求:
用imshow, plot等函数生成各类图像,提交原图像和各种变换函数的曲线,以及按各种变换函数处理后的图像。
%%%%%%%% 班级:0410201
%%%%%%%% 姓名:xx
%%%%%%%% 学号:041010329
clear all;
clc;
close all;
%%%%%%%%处理rice.png
a=imread('rice.png');
figure,imshow(a),title('原图');axis on;
a=double(a)/256;
figure,imhist(a),title('原直方图');axis on;
r=[0:0.001:1];
s1=[r<0.35].*r*0.3+[r<=0.65].*[r>=0.35].*(0.105+2.6333*(r-0.35))+[r>0.65].*(1+0.3*(r-1)); %产生灰度变换函数T1
s2=[r<=0.5].*(r.^5)*15.9744+[r>0.5].*((r-0.5).^0.2+0.12); %产生灰度变换函数T2
a1=[a<0.35].*a*0.3+[a<=0.65].*[a>=0.35].*(0.105+2.6333*(a-0.35))+[a>0.65].*(1+0.3*(a-1));
a2=[a<=0.5].*(a.^5)*15.9744+[a>0.5].*((a-0.5).^0.2+0.12);
figure,imshow(a1),title('改后一');axis on;
figure,imhist(a1),title('改后直方图一');axis on;
figure,plot(r,s1),title('变换函数一');axis on;
figure,imshow(a2),title('改后二');axis on;
figure,imhist(a2),title('改后直方图二');axis on;
figure,plot(r,s2),title('变换函数二');axis on;
imwrite(a1,'改后rice一.jpg');
imwrite(a2,'改后rice二.jpg'); %%%%%%%%处理kids.tif
b=imread('kids.tif');
figure,imshow(b),title('原图');axis on;
b=double(b)/256;
figure,imhist(b);title('原直方图');axis on;
s1=r.^0.6;
s2=r.^0.4;
s3=r.^0.3;
b1=imadjust(b,[],[],0.6);
b2=imadjust(b,[],[],0.4);
b3=imadjust(b,[],[],0.3);
figure,imshow(b1),title('改后一');axis on; figure,imhist(b1),title('改后直方图一');axis on; figure,plot(r,s1),title('变换函数一');axis on; figure,imshow(b2),title('改后二');axis on; figure,imhist(b2),title('改后直方图二');axis on; figure,plot(r,s2),title('变换函数二');axis on; figure,imshow(b3),title('改后三');axis on; figure,imhist(b3),title('改后直方图三');axis on; figure,plot(r,s3),title('变换函数三');axis on; imwrite(b1,'改后kids一.jpg');
imwrite(b2,'改后kids二.jpg');
imwrite(b3,'改后kids三.jpg'); %%%%%%%%处理circuit.tif
c=imread('circuit.tif');
figure,imshow(c),title('原图');axis on;
c=double(c)/256;
figure,imhist(c),title('原直方图');axis on;
s=1-r;
c=1-c;
figure,imshow(c),title('变换后');axis on;
figure,imhist(c),title('变换后直方图');axis on;
figure,plot(r,s),title('变换函数');axis on;
imwrite(c,'改后circuit.jpg');
%%%%%%%%%%处理rice.png
d=imread('rice.png');
figure,imshow(d),title('原图');axis on;
d=double(d)/256;
figure,imhist(d),title('原直方图');axis on;
r=[0:0.001:1];
s=[r<=0.4].*[r>=0.2]*0.6;
d=[d<=0.4].*[d>=0.2]*0.6+[d>0.4].*d+[d<0.2].*d;
figure,imshow(d),title('变换后');axis on;
figure,imhist(d),title('变换后直方图');axis on;
figure,plot(r,s),title('变换函数');axis on;
imwrite(d,'第二次改后rice.jpg');
%%%%%%%%%处理Picture.jpg
e=imread('Picture.jpg');
e=e(:,:,1);%%提取方向
e=im2double(e);
figure,imshow(e),title('原图');axis on;
figure,imhist(e),title('原直方图');axis on;
r=[0:0.001:1];
s=[r<0.3].*r*1.1+[r>0.65].*r*0.8+[r>=0.3].*[r<=0.65].*(0.11+r*1.5); e=[e<0.3].*e*1.1+[e>0.65].*e*0.8+[e>=0.3].*[e<=0.65].*(0.11+e*1.5); figure,imshow(e),title('变换后');axis on;
figure,imhist(e),title('变换后直方图');axis on;
figure,plot(r,s),title('变换函数');axis on;
imwrite(e,'改后Picture.jpg');。