数字图像基本处理实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:图像的基本运算
学生姓名:戚云锦
学生学号:1114020125
系别:电气信息工程学院专业:电子信息工程
年级:11级
任课教师:沈晓波
电气信息工程学院
2013年12月
实验题目:图像的基本运算
学生:戚芸锦
任课教师:沈晓波
电气信息工程学院电子信息工程
1、实验题目
图像的基本运算
2、实验对象
自己的图像和moon
3、实验任务
(1)实现对图像的点运算(加减乘除)具体参数自行规定。
(2)实现对图像的逻辑运算(与或非)。
(3)实现对单幅图像的空间运算(放大、缩小、旋转、平移、X镜像、Y镜像),具体参数自行规定。
以上3个任务要求用一个M文件实现,输出到同一个图片中,按顺序编号,并在每个子图片下方命名,命名规则样例“(2)放大后图像”
(4)简单应用:将自己的头像上添加:“姓名第一次作品”,字体规格不限,输出新的图像。
4、实验原理
4.1理论基础
(1)点运算
点运算实际上就是对图像的每个像素点的灰度值按一定的映射关系运算,得到新图像的过程。运用点运算可以改变图像数据所占的灰度值范围。对于一幅输入图像,经过点运算会产生一幅输出图像,输出图像中每个像素点的灰度值仅有相应输入点的灰度值确定。点运算从数学上可以分为线性点运算和非线性点运算两类。
线性点运算是指输入图像的灰度级与目标图像的灰度级呈线性关系。线性点运算的灰度变换函数形式可以采用线性方程描述,即s=ar+b 其中r为相应输出点的灰度值,s为相应输出点的灰度值。
常见的非线性点运算为对数变换和幂次变换。
对数变换的一般表达式为:s=c log(1+r),c为常数,并假定r>=0.
(2)代数运算与逻辑运算
代数运算是指对两幅图或两幅图已上输入图像进行点对点的加、减、乘、除运算而得到的目标图像的运算。
加法运算的作用是去除“叠加性”随机噪音和生成图像。减法运算的作用是差影法和混合图像的分离。乘法和除法运算可以用来改变图像的灰度级,实现灰度级变换。除法运算还经常用于消除图像数字化设备随空间所产生的影响。
常见的逻辑运算有与或非等,其主要针对二值图像,在进行图像理解与分析领域比较有用。运用这种方法可以为图像提供模板,与其他运算犯法结合起来可以获得某种特殊的效果。
(3)几何运算
从变换性质来分,几何变换可以分为图像的位置变换(平移、镜像、旋转),形状变换(放大、缩小)及图像的复合变换等。
图像的镜像是指原图像相对于木一照面旋转180度的图像。镜像变换又常称为对称变换,它可以分为水平对称、垂直对称等多种变换。对称变换后,图像宽度和高不变。
图像的旋转变换是指以图像的中心为原点,将图像上所有像素都旋转同一个角度的变换。图像的位置发生了变化。和平移一样,在图像的旋转变换中既可以把转出显示区域的图像截去,也可以扩大显示区域的图像范围以显示图像的全部。
数字图像的比例缩放是指将给定的图像在X方向和Y方向按相同比例a缩放,从而获得一副新的图像,又成为全比例缩放。如果X方向和Y方向缩放的比例不同,则图像的比例缩放会改变原始图像像素间的相对位置,产生几何畸变。若比例所产生的图像中没有相对应的像素点时,就需要进行灰度值的插值运算,一般有以下两种插值处理方法。
①直接复值为和它最相近的像素灰度值,这种方法称为最近邻插值法,该方法简单、计算量小,但很可能会产生马赛克现象。
②通过其他数学插值法来计算相应的像素点的灰度值,这类方法处理效果好,但运算量会有所增加。
4.2实际方案
(1)查资料
上网或翻看所学的书本查相关资料,了解怎样编写程序,应该用到哪些函数。(2)编写程序
在MATLAB软件下编写相关程序,运行观察所输出图像的变化。
5 、实验过程
5.1 存图像
将所需要的图像保存在新建文件夹(我的图像)中,图像的格式为JPG。
5.2 编写M文件
打开MATLAB,把路径改成电子信息工程11(1-25)戚芸锦文件夹下我的图像。新建M文件,在M文件下编写程序
5.3 两幅灰度图像相加
在M文件中编写程序如下
clear all
I=imread('我.jpg');
subplot(4,4,1);
imshow(I);
xlabel('(1)原始图像');
I1=rgb2gray(I);
H=imread('zi.jpg');
H=rgb2gray(H);
U=imadd(I1,H);
subplot(4,4,2);imshow(U);
xlabel('(2)图像合成');
5.4 图像的点运算
MATLAB中编写程序如下
clear all
I=imread('我.jpg');
subplot(4,4,1);
imshow(I);
xlabel('(1)原始图像');
I1=rgb2gray(I);
J=double(I1);
I=J*0.45+55;
azl2=uint8(I);
subplot(4,4,3);
imshow(I1);
xlabel('(3)点运算');
5.5 对图像加常数MATLAB中编写程序如下clear all
I=imread('我.jpg'); subplot(4,4,1);
imshow(I);
xlabel('(1)原始图像');
Y=imadd(I1,54);
subplot(4,4,4);
imshow(Y);
xlabel('(4)添加常数');
5.6对图像减常数MATLAB中编写程序如下clear all
I=imread('我.jpg'); subplot(4,4,1);
imshow(I);
xlabel('(1)原始图像');
Y1= imsubtract(I1,50); subplot(4,4,5);
imshow(Y1)
xlabel('(5)减去常数');