数字图像处理 Matlab版 作业1

合集下载

《数字图像处理》期末大作业(1)

《数字图像处理》期末大作业(1)

《数字图像处理》期末大作业大作业题目及要求:一、题目:本门课程的考核以作品形式进行。

作品必须用Matlab完成。

并提交相关文档。

二、作品要求:1、用Matlab设计实现图形化界面,调用后台函数完成设计,函数可以调用Matlab工具箱中的函数,也可以自己编写函数。

设计完成后,点击GUI图形界面上的菜单或者按钮,进行必要的交互式操作后,最终能显示运行结果。

2、要求实现以下功能:每个功能的演示窗口标题必须体现完成该功能的小组成员的学号和姓名。

1)对于打开的图像可以显示其灰度直方图,实现直方图均衡化。

2)实现灰度图像的对比度增强,要求实现线性变换和非线性变换(包括对数变换和指数变换)。

3)实现图像的缩放变换、旋转变换等。

4)图像加噪(用输入参数控制不同噪声),然后使用空域和频域进行滤波处理。

5)采用robert算子,prewitt算子,sobel算子,拉普拉斯算子对图像进行边缘提取。

6)读入两幅图像,一幅为背景图像,一幅为含有目标的图像,应用所学的知识提取出目标。

3、认真完成期末大作业报告的撰写,对各个算法的原理和实验结果务必进行仔细分析讨论。

报告采用A4纸打印并装订成册。

附录:报告模板《数字图像处理》期末大作业班级:计算机小组编号:第9组组长:王迪小组成员:吴佳达浙江万里学院计算机与信息学院2014年12月目录(自动生成)1 绘制灰度直方图,实现直方图均衡化 (5)1.1 算法原理 (5)1.2 算法设计 (5)1.3 实验结果及对比分析 (5)2 灰度图像的对比度增强 (5)2.1 算法原理 (5)2.2 算法设计 (5)2.3 实验结果及分析 (5)3 图像的几何变换 (5)3.1 算法原理 (5)3.2 算法设计 (5)3.3 实验结果及分析 (5)4 图像加噪(用输入参数控制不同噪声),然后使用空域和频域进行滤波处理 (5)4.1 算法原理 (5)4.2 算法设计 (6)4.3 实验结果及分析 (6)5 采用robert,prewitt,sobel,拉普拉斯算子对图像进行边缘提取 (6)5.1 算法原理 (6)5.2 算法设计 (6)5.3 实验结果及分析 (6)6 读入两幅图像,一幅为背景图像,一幅为含有目标的图像,应用所学的知识提取出目标 (6)6.1 算法原理 (6)6.2 算法设计 (6)6.3 实验结果及分析 (6)7 小结(感受和体会) (6)1 绘制灰度直方图,实现直方图均衡化1.1 算法原理图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。

数字图像处理结课作业--matlab

数字图像处理结课作业--matlab

数字图像处理结课作业班级:姓名:学号:教师:信息工程学院通信工程系一:实验目的1 编写程序,实现图像的边缘检测2 编写程序,用中值滤波的方法,给灰度图像去除噪声3 编写程序,把某图像的灰度图像锐化二:实验原理1边缘检测将图像首先进行灰度处理,处理后的图像才能进行算子的变换分析。

本次实验采用prewitt算子模板,设置适当的阈值,检测到灰度图像中色差较大的地方,显示出来,即为边缘检测。

2中值滤波将图像首先进行灰度处理灰度图像由像素构成,所谓中值滤波,即为把每个点和周围的八个点排序,然后把排在中间位置的值赋给该点。

每个点依次做完以后形成的图像即为中值滤波后的得到的结果。

3 图像锐化先得到灰度图像,像素分为256个等级,0~255之间的数字越大就代表越趋于白色,越小就越趋于黑色,因此,把每个点的值变大(变小)就可以实现图像的锐化(暗化)。

三、实验步骤和结果1边缘检测clear allim1=imread('mayunxiang.jpg');subplot(1,3,1);imshow(im1);title('原始图像');im2=rgb2gray(im1);subplot(1,3,2);imshow(im2);title('灰度图');[m,n]=size(im2);for i=1:mfor j=1:nimy(i,j)=0;imx(j,i)=0;endendfor i=1:m-1for j=1:n-1imy(i,j)=abs(im2(i+1,j)-im2(i,j));imx(i,j)=abs(im2(i,j+1)-im2(i,j));if imx(i,j)>imy(i,j)im3(i,j)=imx(i,j);elseim3(i,j)=imy(i,j);endif im3(i,j)>3im3(i,j)=0;elseim3(i,j)=255-im3(i,j);endendendsubplot(1,3,3);imshow(im3);title('算子');运行结果2中值滤波im1=imread('by.jpg');im2=rgb2gray(im1);im3=imnoise(im2,'salt & pepper',0.2);[m,n]=size(im2);for i=2:m-1for j=2:n-1x=[im2(i-1,j-1) im2(i,j-1) im2(i+1,j-1) im2(i-1,j) im2(i,j) im2(i+1,j) im2(i-1,j+1) im2(i,j+1) im2(i+1,j+1)];y=sort(x);im4(i,j)=y(5);endendsubplot(1,3,1)imshow(im2)subplot(1,3,2)imshow(im3)subplot(1,3,3)imshow(im4)运行结果3 图像锐化im1=imread('by.jpg');im2=rgb2gray(im1);[m,n]=size(im2);subplot(3,2,1);imshow(im2);subplot(3,2,2);a=0;b=120;imhist(im2);for i=1:mfor j=1:nim3(i,j)=im2(i,j)*0.5;endendsubplot(3,2,3)imshow(im3);subplot(3,2,4);imhist(im3);b1=180;a1=0;for i=1:mfor j=1:nim4(i,j)=(im3(i,j)-a)*((b1-a1)./(b-a))+a1;endendsubplot(3,2,5)imshow(im4);subplot(3,2,6);imhist(im4);运行结果四总结写代码过程中经常出现语法错误和逻辑错误,语法错误如忘记写括号、for循环不写end、函数用法不对等情况。

(完整版)数字图像处理MATLAB程序【完整版】

(完整版)数字图像处理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命令窗口中输入相应程序。

数字图像处理及应用(MATLAB)第1章习题答案

数字图像处理及应用(MATLAB)第1章习题答案

第一章:习题与思考题参考答案1-1 什么是数字图像? 数字图像处理有哪些特点?数字图像是将连续的模拟图像经过离散化处理后变成计算机能够辨识的点阵图像。

数字图像处理具有以下特点:(1)处理精度高,再现性好。

(2)易于控制处理效果。

(3)处理的多样性。

(4)数字图像中各个像素间的相关性大,压缩的潜力很大。

(5)图像数据量庞大。

(6) 占用的频带较宽。

(7) 图像质量评价受主观因素的影响。

(8)图像处理技术综合性强。

1-2 数字图像处理的目的及主要内容。

一般而言,对图像进行处理主要有以下三个方面的目的(1) 提高图像的视感质量,以达到赏心悦目的目的。

(2) 提取图像中所包含的某些特征或特殊信息,以便于计算机分析。

(3) 对图像数据进行变换、编码和压缩,以便于图像的存储和传输。

数字图像处理的主要研究内容:根据其主要的处理流程与处理目标大致可以分为图像信息的描述、图像信息的处理、图像信息的分析、图像信息的编码以及图像信息的显示等几个方面。

如:图像数字化、图像增强、图像几何变换、图像复原、图像重建、图像隐藏、图像正交变换、图像编码、图像分析等。

1-3 数字图像处理的主要应用图像处理技术广泛用于众多的科学与工程领域,主要有:(1)生物医学领域中的应用(2)工业应用(3)遥感航天中的应用(4)军事、公安领域中的应用(5)其他应用,例如:图像的远距离通信;多媒体计算机系统及应用;服装试穿显示;办公自动化、现场视频管理1-4 在理想情况下获得一幅数字图像时,采样和量化间隔越小,图像的画面效果越好,当一幅图像的数据量被限定在一个范围内时,如何考虑图像的采样和量化使得图像的质量尽可能好。

一般,当限定数字图像的大小时, 为了得到质量较好的图像可采用如下原则: (1)对缓变的图像,应该细量化,粗采样,以避免假轮廓。

(2)对细节丰富的图像,应细采样,粗量化,以避免模糊(混叠)。

1-5 想想在你的工作和生活中,遇见过哪些数字化设备?它们的主要用途是什么?主要有以下几种数字化设备:(1) 图像采集卡通常图像采集卡安装于计算机主板扩展槽中,通过主机发出指令,将某一帧图像静止在存储通道中,即采集或捕获一帧图像,然后可对图像进行处理或存盘。

Matlab数字图像处理-01

Matlab数字图像处理-01
t clo kg s
c为尺度比例常数,s为源灰度值,t为变换后的目标灰 度值。k为常数。灰度的对数变换可以增强一幅图像 中较暗部分的细节,可用来扩展被压缩的高值图像中 的较暗像素。广泛应用于频谱图像的显示中。
Warning:log函数会对输入图像矩阵s中的每个元素进行
操作,但仅能处理double类型的矩阵。而从图像文件中得到的 图像矩阵大多是uint8类型的,故需先进行im2double数据类型 转换。
/3、图像的几何变换
I=imread('nir.bmp'); se=translate(strel(1),[180 190]); B=imdilate(I,se); figure;subplot(1,2,1),subimage(I);title('原图像'); subplot(1,2,2),subimage(B);title('平移后图像');
图像直方图归一化
imhist(I);%灰度直方图
I=imread(‘red.bmp’);%读入图像 figure;%打开新窗口 [M,N]=size(I);%计算图像大小 [counts,x]=imhist(I,32);%计算有32个小区间的灰度直方图 counts=counts/M/N;%计算归一化灰度直方图各区间的值 stem(x,counts);%绘制归一化直方图
[J,T]=histeq(I);%J为输出图像,T为变换矩阵
图像易受光照、视角、方位、噪声等的影响。使得同一类图像的不同变形 体之间的差距有时大于该类图像与另一类图像之间的差距,影响图像识别、 分类。图像归一化就是将图像转换到唯一的标准形式以抵抗各种变换,从 而消除同类图像不同变形体之间的外观差异。也称为图像灰度归一化。

数字图像处理课后第一次作业

数字图像处理课后第一次作业

1、 完成课本习题3.2(a)(b), 课本中文版《处理》第二版的113页。

可以通过matlab 帮助你分析理解。

解:(a)s =T(r)=11+(m r ⁄)E其中,r 为输入图像亮度,s 为输出图像的相应亮度,E 控制该函数的斜率。

(b) L 是图像中灰度的级数,使m=L/2;若假定L=500,则m=250。

使用matlab 对E 分别为10,15,20,100时的情况进行分析,最后可得到如下结果:图1 matlab 分析结果2、一幅8灰度级图像具有如下所示的直方图,求直方图均衡后的灰度级和对应概率,并画出均衡后的直方图的示意图。

(计算中取整采用四舍五入方法,图中的8个不同灰度级对应的归一化直方图为[0.17 0.25 0.21 0.16 0.07 0.08 0.04 0.02])解:直方图均衡化的变换函数为s k =T (r k )=∑p r (r i )k i=0 0≤r k ≤1;k =0,1,…7 故可算得变化函数s 0计:s0计= T(r0)=0.17 s1计=0.17+0.25=0.42s2计=0.63 s3计=0.79s4计=0.86 s5计=0.94s6计=0.98 s7计=1.00但考虑到输出图像灰度是等间隔的,且与原图像灰度范围一样取8个等级,即要求s k=i/7(i=0,1,2,3…7)。

因此需要对s k计进行修正,采用四舍五入法可得s0并=1/7 s1并=3/7s2并=4/7 s3并=6/7s4并=6/7 s5并=1s6并=1 s7并=1根据s k并计算结果可知,直方图均衡化后的输出图像的灰度级仅为5个级别,即为s0=1/7 s1=3/7 s2=4/7 s3=6/7 s4=1且根据r k与s k的关联性,可计算得s k对应概率为:P s(s0=1/7)=0.17 P s(s1=3/7)=0.25P s(s2=4/7)=0.21 P s(s3=6/7)=0.23P s(s5=1)=0.14根据s k取值和对应概率,画出的均衡化后的直方图如下图所示:图2 均衡化后的直方图3. (选做题)课本习题3.6。

数字图像处理MATLAB程序【完整版】

数字图像处理MATLAB程序【完整版】

第一部分数字图像处理实验一图像的点运算实验1.1直方图一.实验目的1 •熟悉matlab图像处理工具箱及直方图函数的使用;2•理解和掌握直方图原理和方法;二.实验设备1. PC 机一台;2.软件matlab。

三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。

l=imread('camerama n.tif);% 读取图像subplot(1,2,1),imshow(l) % 输出图像title(' 原始图像')% 在原始图像中加标题subplot(1,2,2),imhist(l) % 输出原图直方图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环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。

l=imread('camerama n.tif);% 读取图像subplot(2,2,1),imshow(l) % 输出图像title(' 原始图像')% 在原始图像中加标题subplot(2,2,3),imhist(l) % 输出原图直方图title(' 原始图像直方图')%在原图直方图上加标题a=histeq(l,256); % 直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) % 输出均衡化后图像title(' 均衡化后图像')%在均衡化后图像中加标题subplot(2,2,4),imhist(a) % 输出均衡化后直方图title(' 均衡化后图像直方图')%在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab 环境;2. 在matlab命令窗口中输入相应程序。

数字图像处理习题(1)

数字图像处理习题(1)

一、判断题(10分)(正确√,错误×)1.图像处理就是对图像信息进行加工处理,以满足人的视觉心理和实际应用的要求(√)2.在MATLAB中,uint8是无符号8位整数(√)3.在MATLAB中,uint16是无符号16位整数(√)4.图像的点运算与代数运算不相同(√)5.点运算也叫灰度级变换(√)6.线性点运算可以改变数字图像的对比度(√)7.图像的几何变换也叫图像的点运算(×)8.图像的平滑操作实际上是邻域操作(√)9.傅立叶变换后的矩阵处在频域上(√)10.傅立叶变换后的矩阵处在空域上(×)11.傅立叶变换,人们可以在空域和频域中同时思考问题(√)12.像素深度是指存储每个像素所用的位数(√)13.图像经过变换后,图像的大部分能量都集中在中、高频段(×)14.图像经过变换后,图像的大部分能量都集中在低频段(√)15.直方图均衡化也是一种非线性点运算(√)16.仿射变换是空间变换(√)17.空间变换是频域变换(×)18.边缘检测是将边缘像元标识出来的一种图像分割技术(√)19.灰度直方图能反映一幅图像各灰度级像元占图像的面积比(√)20.直方图均衡是一种点运算,图像的二值化则是一种局部运算(×)21.双边滤波法可用于边缘增强(×)22.均值平滑滤波器可用于锐化图像边缘(×)23.拉普拉斯算子可用于图像的平滑处理(×)24.高频加强滤波器可以有效增强图像边缘和灰度平滑区的对比度(√)25.应用傅立叶变换的可分离性可以将图像的二维变换分解为行和列方向的一维变换(√)26.图像分割可以依据图像的灰度、颜色、纹理等特性来进行(√)27.图像增强有空域和变换域两类(√)28.加大、减小对比度分别会使图像发生亮处更亮,暗处更暗的直观变化(√)29.加大、减小亮度分别会使图像发生亮处更亮,暗处更暗的直观变化(×)30.二值图像就是只有黑白两个灰度级(√)31.一般来说,图像采样间距越大,图像数据量越大,质量越好;反之亦然(×)32.用Matlab开辟一个图像窗口的命令是imshow(×)33.图像尺寸为400*300是指图像的宽为400毫米,高为300毫米(×)34.一般而言,对于椒盐噪声,均值滤波的效果好于中值滤波(×)35.与高斯低通滤波器相比,理想低通滤波低通滤波器在图像处理过程中更容易出现振铃(rings)(√)二、填空题(20分,1分/空)1.一般来说,图像采样间距越小,图像数据量_____,质量_____;反之亦然(大,高)2.若采样4个数,大小分别为4.56 0.23 7.94 16.55。

数字图像处理作业(matlab)

数字图像处理作业(matlab)


2
页 共 13 页
图 3.3.1 原图效果
图 3.3.2 d0=5 时处理的效果

3
页 共 13 页
图 3.2.3
d0=15 的处理效果
图 3.2.4 d0=3.6 d0=150 的处理效果

4
页 共 13 页
图 2.3.7 d0=230 的处理效果
D(u, v) D0 轨迹为一个圆。
高斯低通滤波器的传递函数为:
H (u, v) e D
2
( u ,v ) / 2 2

1
页 共 13 页
其中 为标准偏差,通过令 Do 我们可以得到:
H (u, v) e D
2
( u ,v ) / 2 D02
当 D(u, v) D0 时,滤波器由最大值 1 降为 0.607. 3.2 程序 I1=imread('C:\Users\akhs\Desktop\美丽西电\1.jpeg'); %读取图像 figure; imshow(I1,[ ]); title('原图效果'); I=rgb2gray(I1); % 将图像变为灰度图象 %将灰度图像的二维不连续 Frourier 变换的零频率成分移到频谱的中心 s=fftshift(fft2(I)); [M,N]=size(s); % 分别返回 s 的行数到 M 中,列数到 N 中 n=2; % 对 n 赋初值 %GLPF 滤波,d0=5,15,30 ,80,150,230(程序中以 d0=5 为例) d0=5; % 初始化 d0 n1=floor(M/2); %对 M/2 进行取整 n2=floor(N/2); %对 N/2 进行取整 for i=1:M for j=1:N d=sqrt((i-n1)^2+(j-n2)^2); % 点(i,j)到傅立叶变换中心的距离 h=1*exp(-1/2*(d^2/d0^2)); %GLPF 滤波函数 s(i,j)=h*s(i,j); %GLPF 滤波后的频域表示 end end s=ifftshift(s); % 对 s 进行反 FFT 移动 %对 s 进行二维反离散的 Fourier 变换后,取复数的实部转化为无符号 8 位整数 s=uint8(real(ifft2(s))); figure; % 创建图形图像对象 imshow(s); % 显示 GLPF 滤波处理后的图像 title('GLPF 滤波(d0=5)'); % 为经 GLPF 滤波后的图像添加标题 3.3.运行结果 通过设置 do=5,15,30,80,150,230.针对不同图片可以得到如下效果:

数字图像处理 Matlab版 作业1

数字图像处理 Matlab版 作业1

%A、B 是作为图片的变量
>> B1=imread('image2-10.jpg'); >> MSE=sum((A(:)-B1(:)).^2)/(M*N) MSE = 31.3642
>> B2=imread('image2-20.jpg'); MSE=sum((A(:)-B2(:)).^2)/(M*N) MSE = 20.3310
K20=imfinfo('image2-20.jpg'); >> image_byte_20=K20.Width*K20.Height*K20.BitDepth/8; >> CMP_bytes=K20.FileSize; >> CMP_R20=image_byte_20/CMP_bytes CMP_R20 = 16.9368
>>y1=[SNR0,SNR10,SNR20,SNR30,SNR40,SNR50]; y2=[MSE0,MSE1,MSE2,MSE3,MSE4,MSE5]; x=[0,10,20,30,40,50]; plot(x,y1,x,y2) >> y1=[SNR0,SNR10,SNR20,SNR30,SNR40,SNR50]; y2=[MSE0,MSE1,MSE2,MSE3,MSE4,MSE5]; x=[0,10,20,30,40,50]; plot(x,y1,x,y2)
>> K50=imfinfo('image2-50.jpg'); image_byte_50=K50.Width*K50.Height*K50.BitDepth/8; CMP_bytes=K50.FileSize; CMP_R50=image_byte_50/CMP_bytes CMP_R50 = 10.6149 %绘图 1

数字图像处理第一次作业(1)

数字图像处理第一次作业(1)

P1:(a) Load the images lena.tif and mandril.tif in Matlab. What are the sizes of the two images? Use imread() to load the images in Matlab. You can find out the size of the images by using the command size() or whos to look at the Matlab workspace.Answer:The size of lena.tif is (512,512) and size of mandril.tif is (256,256).(b) What are the values of pixels lena(29, 86) and mandril(198, 201). Note that for us (based on the notation followed in the textbook) image matrix indices start from (0, 0). In Matlab the matrix indices start from (1, 1).Answer:lena(29,86) is actually the pixel of 30th row and 87th column, so the value of pixel lena(29,86) is 105;mandril(198,201) is actually the pixel of 199th row and 202th column, so the value of pixel mandril(198,201) is 158.(c) Plot the 103rd row of lena. Plot the 69th column of mandril. Use the plot() command to plot the row/column.Answer:Plot the 103rd row of lena:Plot the 69th column of mandril:(d) Generate and draw the image shown below where the image 010020030040050060005010015020025005010015020025030020406080100120140160180200sub-block (of size 128x128) on the top-left corner comes from mandril. The rest of the image is from lena. Use imshow() to draw the image. Answer:P2:Use imread() to load the image in Matlab. You can see the initial image consists of eight bits of data for each pixel. Please create new images using 5, 4, 3, 2 and 1 bit only for each pixel. How many bits are needed to preserve image quality? Does it change from place to place in the image? How so?Answer:Image using 5 bit for each pixel:程序代码如下:campusdrive=imread('campusdrive.tif');cam=double(campusdrive);cam5=floor(cam/8);%将原来的256个灰度级按比例减少为32个灰度级cam5=cam5*8;%为32个灰度级重新分配亮度(0为黑色,31为白色)cam5=uint8(cam5);imshow(cam5);Image using 4 bit for each pixel:程序代码如下:campusdrive=imread('campusdrive.tif');cam=double(campusdrive);cam4=floor(cam/16);%将原来的256个灰度级按比例减少为16个灰度级cam4=cam4*16;%为16个灰度级重新分配亮度(0为黑色,15为白色)cam4=uint8(cam4);imshow(cam4);Image using 3 bit for each pixel:程序代码如下:campusdrive=imread('campusdrive.tif');cam=double(campusdrive);cam3=floor(cam/32);%将原来的256个灰度级按比例减少为8个灰度级cam3=cam3*32;%为8个灰度级重新分配亮度(0为黑色,7为白色)cam3=uint8(cam3);imshow(cam3);Image using 2 bit for each pixel:程序代码如下:campusdrive=imread('campusdrive.tif');cam=double(campusdrive);cam2=floor(cam/64);%将原来的256个灰度级按比例减少为4个灰度级cam2=cam2*64;%为4个灰度级重新分配亮度(0为黑色,3为白色)cam2=uint8(cam2);imshow(cam2);Image using 1 bit for each pixel:程序代码如下:campusdrive=imread('campusdrive.tif');cam=double(campusdrive);cam1=floor(cam/64);%将原来的256个灰度级按比例减少为2个灰度级cam1=cam1*64;%为2个灰度级重新分配亮度(0为黑色,1为白色)cam1=uint8(cam1);imshow(cam1);观察发现,5bits基本可以保持图像质量,使之不出现伪轮廓,少于5bits图像会出现伪轮廓;P3:Subtracting to get image change. Download images carvision1.tif and carvision2.tif from /~qbhe/dip/.(a)Load the two images in Matlab. Determine the line length and displaythe images.Answer:The length of the two images is 640;To show the two images,Carvision1:Carvision2:(b)Compare the two images and note any differences. Answer:The location of the two cars in the images is different.(c)Subtract the second image from the first and display the difference tohighlight any changes in the image. What parts of the image arehighlighted, and why?Answer:car1=imread('carvision1.tif');car2=imread('carvision2.tif');dcar1=double(car1);dcar2=double(car2);dcar=dcar1-dcar2;car=abs(dcar);car=uint8(car);imshow(car>100);imshow(im2bw(car));车辆前后不同位置被高亮显示,因为两幅图片中车位置不同,不同处会被高亮显示。

数字图像处理MATLAB程序完整版

数字图像处理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、(1)matlab程序代码(使用电路板图片)a=imread('C:\Users\SUN\Desktop\a.tif'); %读图像b=imnoise(a,'gaussian',0,800/255^2); %加入0均值,方差800的噪声。

c=imnoise(b,'salt & pepper',0.1); % 在(a)的基础上,进一步加入椒盐噪声进一步污染图像(Pa=Pb=0.1的椒盐噪声)subplot(2,4,1),imshow(a) ,title('原始图像') %显示图片subplot(2,4,2),imshow(b) ,title('高斯噪声污染')subplot(2,4,3),imshow(c) ,title('继续被椒盐噪声污染')h=ones(5,5)/25; %算术均值滤波g1=imfilter(c,h);subplot(2,4,4),imshow(g1) ,title('算数均值滤波')%g2=power(exp(imfilter(log(double(c)),4*fspecial('average',2))),1/4); %几何均值滤波g2=exp(imfilter(log(double(c)),fspecial('average',1)));subplot(2,4,5),imshow(uint8(g2)) ,title('几何均值滤波')g3= medfilt2(c,[5,5]); %中值滤波subplot(2,4,6),imshow(g3) ,title('中值滤波')i=ones(5,5)/20;g4=imfilter(c,i);subplot(2,4,7),imshow(g4) ,title('修正后的α均值滤波')运行结果:(2)matlab程序代码(使用含有自己的图片)a=imread('C:\Users\SUN\Desktop\i.jpg'); %读图像a1=rgb2gray(a);b=imnoise(a1,'gaussian',0,800/255^2); %加入0均值,方差800的噪声。

数字图像处理实习1—Matlab图像处理初步

数字图像处理实习1—Matlab图像处理初步

实验1——Matlab图像处理初步
实验目的:熟悉Matlab语言关于图像处理的基本操作
实验内容:练习imread、imshow、iminfo、imwrite、subplot、for等命令以及矩阵计算有关命令。

实验要求:
1、读取并显示cameraman.tif图像(提示:imread)。

2、将图像中间的1/3部分(如图)分别作如下处理,其余部分不变
a) 每个像素点的值都乘以2,即f(x,y)=2*f(x,y),显示处理前后的图像(提
示:imshow),同一个图像窗口左右显示(提示:subplot),左边显示原
始图像,右边显示处理后图像,处理后图像保存为cameraman1.bmp(提
示:imwrite)
b) 每个像素点取反色,即f(x,y)=255-f(x,y);显示处理前后的图像,同一个
图像窗口上下显示(提示:subplot),上边显示原始图像,下边显示处理
后图像,处理后图像保存为cameraman2.bmp(提示:imwrite)
3、撰写实验报告并附上所用程序和结果。

f=imread('cameraman.tif');
[m n]=size(f);
g=f;
r=round(m/3);
c=round(n/3);
for i=r:2*r
for j=c:2*c
g(i,j)=2*f(i,j);
end
end
subplot(2,1,1),imshow(f);
subplot(2,1,2),imshow(g);
imwrite(g,'cameraman1.bmp','bmp');
2013-12-16。

数字图像处理作业1

数字图像处理作业1

数字图像处理作业摘要MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。

实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。

这一特点也就决定了MATLAB在处理数字图像上的独特优势。

理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。

二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。

而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。

MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB 图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读、写和显示。

MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。

图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。

一、MATLAB中图像文件的读/写imreadimread函数用于读入各种图像文件,其一般的用法为[X,MAP]=imread( ‘filename’, ‘fmt’)其中,X为读出的图像数据,MAP为颜色表数据(或称调色板,亦即颜色索引矩阵,对灰度图像和RGB彩色图像,该MAP为空矩阵),fmt为图像的格式(可以缺省),filename为读取的图像文件(可以加上文件的路径)。

例:[X,MAP]=imread(‘flowers.tif’, ‘tif’)二、MATLAB中图像文件的显示MATLAB图像处理工具箱提供了imshow函数来显示各种图像,其语法如下:imshow(I, n)或imshow(I_BW);imshow(X, MAP);imshow(I_RGB) 其中imshow(I, n)用于显示灰度图像,I是图像数据矩阵,n为灰度级数目(n可缺省,缺省值为256)。

数字图像处理作业1

数字图像处理作业1

数字图像处理作业1《数字图像处理》2018/9/30作业1.根据个人理解给出灰度图像、比特深度、图像分辨率、图像直方图这几个基本概念内涵。

(1)灰度图像:灰度图像通常有传统单通道灰度和三通道灰度图像之分;传统单通道灰度图:每个像素只采样一种颜色,如果每个采样像素为8bit,那么生成的图像就是颜色从0黑色到256白色不同灰度的图像。

三通道灰度图像:在图像处理中,用RGB三个通道表示真彩色,RGB 取值范围均为0~255。

而RGB灰度图像就是RGB彩色分量相等,我们将彩色图像转换成灰度图像,也就是3个通道(RGB)转换成1个通道。

二值图像是特殊的灰度图,它只有两个值:0表示黑,1表示白,每个像素只需要1bit存储信息。

对于同一张图片,有N个像素,那么,二值图有2的N次方种变化,而8位灰度图有255的N次方种变化,8为三通道RGB图像有255*255*255的N次方种变化。

同样尺寸的图像,保存的信息:二值图<传统单通道灰度图<三通道灰度图像。

图片大小:二值图<传统单通道灰度图<三通道灰度图像。

在Photoshop中查看任何灰度图像,无论是单通道灰度,还是已经转换为三通道RGB,它看起来都是一样的。

这是因为Photoshop 是有颜色管理的,并且知道如何呈现两种不同的格式。

(图1:PS中RGB转化为灰度图)(图2:灰度图)·将彩色图像转换成灰度图像Matlab实现:图像灰度化的算法主要有以下3种:1)最大值法:使转化后的R,G,B得值等于转化前3个值中最大的一个,即:R=G=B=max(R,G,B)这种方法转换的灰度图亮度很高。

2)平均值法:是转化后R,G,B的值为转化前R,G,B的平均值。

即:R=G=B=(R+G+B)/3这种方法产生的灰度图像比较柔和。

3)加权平均值法:按照一定权值,对R,G,B的值加权平均。

由于人眼对绿色最为敏感,红色次之,对蓝色的敏感性最低,因此使将得到较易识别的灰度图像,因此这样得到的灰度图像效果最好。

数字图像处理MATLAB上机作业

数字图像处理MATLAB上机作业

数字图像处理实验报告指导老师:学号姓名班级1.产生右图所示图像f1(),其中图像大小为256×256,中间亮条为128×32,暗处=0,亮处=100。

对其进行:①同屏显示原图f1()和(f1)的幅度谱图;②若令f2()=(-1)()f1(),重复以上过程,比较二者幅度谱的异同,简述理由;③若将f2()顺时针旋转90度得到f3(),试显示(f3)的幅度谱,并与(f2)的幅度谱进行比较;④若将f1()顺时针旋转90度得到f4(),令f5()1()4(),试显示(f5)的幅度谱,并指出其与(f1)和(f4)的关系;⑤若令f6()2()3(),试显示(f6)的幅度谱,并指出其与(f2)和(f3)的关系,比较(f6)和(f5)的幅度谱。

f1(256,256);64:1:192122:1:144f1()=100;12(f1);1(1);1(1,1);1(1,1);1:2561:256<1()1();>1()1();;1:2561:2561()=255*(1());(1,2,1);(f1);('原图');(1,2,2);(1);('原图的幅度谱');1:2561:256f2()=(-1)^()*f1();22(f2);2(2);2(1,1);2(1,1);1:2561:256<2()2();>2()2();;1:2561:2562()=255*(2());(2,2,1);(f1);('原图');(2,2,2);(1);('原图的幅度谱');(2,2,3);(f2);('原图中心化');(2,2,4);(2);('原图中心化的幅度谱');f3(f290,'');32(f3);3(3);3(1,1);3(1,1);1:2561:256<3()3();>3()3();;1:2561:2563()=255*(3());(2,2,1);(f2);('原图中心化');(2,2,2);(2);('原图中心化的幅度谱');(2,2,3);(f3);('旋转后的图像');(2,2,4);(3);('旋转后的幅度谱');图像旋转90度后,幅度谱也旋转了90度。

数字图像处理matlab大作业

数字图像处理matlab大作业
程序
2.均衡化
程序
2.均衡化
程序
2.均衡化
Matlab 处理过程
2.均衡化
Matlab 处理效果
2.均衡化
Photoshop 处理效果
通过自定义滤镜处理
3.大家一起来找茬
程序
3.大家一起来找茬
Matlab 处理效果
3.大家一起来找茬
Matlab 处理效果
4.背景图片制作过程
程序
4.背景图片制作过程
从事汽车行业机械设计制造及相关工艺设计工作多年
几个图像处理实例
—— matlab & photoshop
姓名: 学号:
matlab & photoshop
Matlab: lab、 科学研究、 编程处理
Photoshop: shop、 艺术创作、 无须写代码
处理实例
1.羽化 2.均衡化 3.大家一起来找茬 4.背景图片制作过程
1.羽化
程序
1.羽化
程序
Matlab 处理效果
1.羽化
1.羽化
Photoshop 处理效果
2.均衡化
• 定义: 通过图像灰度直方图均衡化处理,使得图
像的灰度分布趋向均匀,图像所占有的像素 灰度间距拉开,加大了图像反差,改善视觉 效果,达到增强目的。
2.均衡化
程序
2.均衡化
程序
2.均过程图片
谢 谢!
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

>> K50=imfinfo('image2-50.jpg'); image_byte_50=K50.Width*K50.Height*K50.BitDepth/8; CMP_bytes=K50.FileSize; CMP_R50=image_byte_50/CMP_bytes CMP_R50 = 10.6149 %绘图 1
>> y=[MSE0,MSE1,MSE2,MSE3,MSE4,MSE5]; >> x=[0,10,20,30,40,50]; >> plot(x,y) >> SNR0=10*LOG10(255^2/MSE0)
Warning: Could not find an exact (case-sensitive) match for 'LOG10'.
C:\Program Files\MATLAB\R2009a\toolbox\matlab\elfun\log10.m is a case-insensitive match and will be used instead. You can improve the performance of your code by using exact name matches and we therefore recommend that you update your usage accordingly. Alternatively, you can disable this warning using warning('off','MATLAB:dispatcher:InexactCaseMatch'). This warning will become an error in future releases.
>>y1=[SNR0,SNR10,SNR20,SNR30,SNR40,SNR50]; y2=[MSE0,MSE1,MSE2,MSE3,MSE4,MSE5]; x=[0,10,20,30,40,50]; plot(x,y1,x,y2) >> y1=[SNR0,SNR10,SNR20,SNR30,SNR40,SNR50]; y2=[MSE0,MSE1,MSE2,MSE3,MSE4,MSE5]; x=[0,10,20,30,40,50]; plot(x,y1,x,y2)
%A、B 是作为图片的变量
>> B1=imread('image2-10.jpg'); >> MSE=sum((A(:)-B1(:)).^2)/(M*N) MSE = 31.3642
>> B2=imread('image2-20.jpg'); MSE=sum((A(:)-B2(:)).^2)/(M*N) MSE = 20.3310
SNR0 =
30.2372
>> SNR10=10* LOG10(255^2/MSE1) SNR10 = SNR20 = 33.1665 35.0492 >> SNR20=10* LOG10(255^2/MSE2) >> SNR30=10* LOG10(255^2/MSE3) SNR40=10* LOG10(255^2/MSE4) SNR50=10* LOG10(255^2/MSE5) SNR30 = SNR40 = SNR50 = 36.2051 36.7500 36.9028 %绘图 2
Warning: Image is too big to fit on screen; displaying at 67% >> Imshow(b) Warning: Image is too big to fit on screen; displaying at 67% > In imuitools\private\initSize at 73 In imshow at 262 >> [M,N]=size(f) M= N= 960 640
K20=imfinfo('image2-20.jpg'); >> image_byte_20=K20.Width*K20.Height*K20.BitDepth/8; >> CMP_bytes=K20.FileSize; >> CMP_R20=image_byte_20/CMP_bytes CMP_R20 = 16.9368
>>
40 30 20 10 0 0 10 20 30 40 50
>>subplot(2,1,1) bar(x,y1,'stacked') subplot(2,1,2) bar(x,y2,'grouped')
80 60 40 20 0 0 10 20 30 40 50
70
60
50
40
30
20
10 0
y0=[ CMP_R0, CMP_R10, CMP_R20, CMP_R30, CMP_R40, CMP_R50]; >> x0=[0,10,20,30,40,50]; >> plot(x0,y0)
>> A=imread('image2.jpg'); >> >> B=imread('image2-0.jpg'); >> MSE=sum((A(:)-B(:)).^2)/(M*N) MSE = 61.5688
数字图像处理作业
作业要求:
读入一幅灰度 BMP 图像 : (1)显示读入的 BMP 图像
Matlab
(2)将图像保存为 JPG 文件,质量控制参数分别取值为 0,10,20,30,40,50 (3)显示 q=0 和 50 对应的 JPG 图像 (4)计算不同 q 值对应的压缩比 , 用 plot 函数画出 q 与压缩比的关系曲线 (5)计算不同 q 值对应的信噪比,用 plot 函数画出 q 与信噪比的关系曲线
10
20
30
40
50
>> subplot(1,1,1)
>> plot(x,y1,'b:p',x,y2,'c-')
必要的文字说明
f=imread(‘filename’) 可以读入的文件格式 TIFF\JPEG\BMP\PNG\GIF 参考 :压缩比与信噪比计算 压缩比: 压缩前文件大小/压缩后文件大小 信噪比 : A(i,j)压缩前图像像素值 B(i,j)压缩后图像像素值 用 MATLAB 计算 MSE 计算: MSE=sum((A(:)-B(:)).^2)/(M*N)
>> K40=imfinfo('image2-40.jpg'); image_byte_40=K40.Width*K40.Height*K40.BitDepth/8;
CMP_bytes=K40.FileSize; CMP_R40=image_byte_40/CMP_bytes CMP_R40 = 12.2718
>> K0=imfinfo('image2-0.jpg'); >> image_byte_0=K0.Width*K0.Height*K0.BitDepth/8; >> CMP_bytes=K0.FileSize; >> CMP_R0=image_byte_0/CMP_bytes CMP_R0 = 59.2022
%绘图 1+2
运行结果(图像或曲线)
Image2-0.jpg
Image2-50.jpg
Image2.jpg
60 55 50 45 40 35 30 25 20 15 10
0
5
10
15
20
25
30
35
40
45
50
CMP 图标 压缩比
70
60
50
40
30
20
10 0
10
20
30
40
50
MSE 曲线
37 36 35 34 33 32 31 30 0
>> B3=imread('image2-30.jpg'); MSE=sum((A(:)-B3(:)).^2)/(M*N) MSE = 15.5803
>> B4=imread('image2-40.jpg'); MSE=sum((A(:)-B4(:)).^2)/(M*N)
MSE =
13.7430
>> B5=imread('image2-50.jpg'); MSE=sum((A(:)-B5(:)).^2)/(M*N) MSE = 13.2680 %绘图 1
K10=imfinfo('image2-10.jpg'); >> image_byte_10=K10.Width*K10.Height*K10.BitDepth/8; >> CMP_bytes=K10.FileSize; >> CMP_R10=image_byte_10/CMP_bytes CMP_R10 = 27.0888
K30=imfinfo('image2-30.jpg'); >> image_byte_30=K30.Width*K30.Height*K30.BitDepth/8; >> CMP_bytes=K30.FileSize; >> CMP_R30=image_byte_30/CMP_bytes CMP_R30 = 13.6140
ATLAB 源代码
相关文档
最新文档