当前位置:文档之家› 图形图像处理-图像的几何变换Matlab实现

图形图像处理-图像的几何变换Matlab实现

图形图像处理-图像的几何变换Matlab实现
图形图像处理-图像的几何变换Matlab实现

湖南商学院

课程设计

课程名称图形图像处理

题目图像的几何变换

系部数学与统计学院

专业信息与计算科学

班级信息与计算科学1301

学号

学生姓名

任课教师王勇

2016年月日

目录

第一章绪论

§1 非彩色图像在Matlab中的矩阵 (3)

§2 彩色图像在Matlab中的矩阵 (4)

第二章图像的镜像变换

§1 图像的水平方向镜像 (5)

§2 图像的垂直方向镜像 (8)

第三章图像的旋转变换

§1 图像的旋转变换 (10)

第四章图像的转置变换

§1 非彩色图像的转置变换 (13)

§3 彩色图像的转职变换 (13)

第五章图像的缩放变换

§1 双线性内插法简介 (15)

§2 图像的缩放 (16)

第六章图像的平移变换

§1 图像的平移变换 (19)

第一章 绪论

§1 非彩色图像在Matlab 中的矩阵

非彩色图像可以定义为一个二维函数(,)f x y ,其中x 和y 是Euclid 空间(平面)坐标,任意一个二元组(,)x y 处的值f 称为该点处的强度或者灰度。当x ,y 和灰度值f 是离散的数值时,我们称改图像为数字图像。

每一个非彩色图像在Matlab 中都是一个二维矩阵n m A ?,而我们知道变换是指集合自身到自身的映射,所以对非彩色图像的变换其实质就是对二维矩阵n m A ?进行变换得到另一个二维矩阵n m B ?的过程。例如图像1.1

图1.1

其在Matlab 中的表示:

>> A=imread('Fig3.24.jpg'); >> size(A)

ans = 298 252 %A 是一个298行252列的矩阵。

§2 彩色图像在Matlab 中的矩阵

不同于非彩色图像,每一个彩色图像在Maltab 中都是三维矩阵n m s A ??。例如图像2.1

图2.1

>> A=imread('Koala.jpg'); >> size(A) ans =

768 1024 3

A 是一个三维矩阵,768行1024列3层,3层是RG

B 三色的数值。

示意图:

第二章 图像的镜像变换

§1图像的水平方向镜像

1.1 对于非彩色图像实现水平镜像操作,我们每次只需提取一列,使其与对称的列交换位置即可:

1122j i j i ni nj a a a a a a ???????????????????????????

其中1j m i =-+

原图像经过变换后为:

1,1,11,12,2,12,1,,1,1 m m m m n m n m n a a a a a a A a a a ---??????=

????????

例1:对 132 152 210 99 172 10 23 110 5??

??

??????

进行水平方向镜像。

132 99 23 A ????=??????, 152 172, 110A A ????????=????????????, 210 10, 5A A ????????=????????????

210 152 132 10 172 99 5 110 23A ??

??=?????? 1.2 对于彩色图像的水平镜像类比二维的操作,我们每次按行选取一个面,将每

个面与其列对称的位置交换即可:

1,,32,,3,,31,,32,,3,,31,,22,,2,,21,,22,,2,,21,,12,,1,,11,,12,,1

,,1 j j n j i i n i j j n j i i n i i i n i j j n j a a a a a a a a a a a a a a a a a a ????

????

=????????

???? 其中1j m i =-+

原图像经过变换后得:

1,2,3223231323311321313122221,2,222222112212121121

11112111,2,122121 , , n m m nm n m m nm n n m m nm n n a a a a a a a a a A a a a a a a a a a a a a a a a a a a ????????=???????????? 11??????????????

??????

1.3 Matlab 实现

Matlab 源程序

disp('Horizontal image by inversion;(水平镜像)'); str=input('请输入图片名称(例如:Koala.jpg ):\n','s'); imA=imread(str); originalA=size(imA); n=size(originalA); rowA=originalA(1); colA=originalA(2); if n(2)==3

imB=zeros(rowA,1,3); for i=1:colA

imB=[imA(:,i,:),imB]; end end

if n(2)==2

imB=zeros(rowA,1); for i=1:colA

imB=[imA(:,i),imB];

end

end

subplot(1,2,1);

imshow(imA);

subplot(1,2,2);

imshow(imB); Command Window运行:

§2图像的垂直方向镜像

2.1 与第一节类似的对于非彩色图像实现垂直镜像操作,我们每次只需提取一行,使其与对称的列交换位置即可:

[]1212 j j jn i i in a a a a a a ????? 其中1j m i =-+

原图像经过变换后为:

,1,2,1,11,21,11,11,21, n n n n n n n n a a a a a a A a a a ---??????=

????????

2.2 对于彩色图像的垂直镜像我们每次按列选取一个面,将每个面与其行对称的

位置交换即可:

,1,3,2,3,,3,1,3,2,3,,3,1,2,2,2,,2,1,2,2,2,,2,1,1,2,1,,1,1,1,2,1

,,1 j j j n i i i n j j j n i i i n i i i n j j j n a a a a a a a a a a a a a a a a a a ????

????=????????

???? 其中1j m i =-+

原图像经过变换后得:

,1,3,2,3,,3,1,2,2,2,,2,1,1,2,1

,,12,1,32,2,32,,32,1,22,2,2

2,,22,1,12,2,12,,11,1,31,2,3 n n n m n n n m n n n m m m m a a a a a a a a a a a a A a a a a a a

a a ????????????=???????

? 1,,31,1,21,2,21,,21,1,11,2,11,,1 m m m a a a a a a a ??

??????

??????????

???????????????????????????

?

2.3Matlab实现:

Matlab源程序:

disp('Vertical image by inversion(垂直镜像)');

str=input('请输入图片名称(例如:Koala.jpg):\n','s'); imA=imread(str);

originalA=size(imA);

n=size(originalA);

rowA=originalA(1);

colA=originalA(2);

if n(2)==3

imB=zeros(1,colA,3);

for i=1:rowA

imB=[imA(i,:,:);imB];

end

end

if n(2)==2

imB=zeros(1,colA);

for i=1:rowA

imB=[imA(i,:);imB];

end

end

subplot(2,1,1);

imshow(imA);

subplot(2,1,2);

imshow(imB);

CommandWindow运行

第三章 图像的旋转变换

§1 图像的旋转变换

对于任意n m ?的图像矩阵,我们首先创建一个假想矩阵,大小是原矩阵对角线的长度。

原矩阵中的中心点为:

00,22

col row x y =

=(处理时需取整) 假想图像的中心:

00''22

x y ==(处理时需取整)

在原图中,点(,)x y 关于原点的坐标:00(,)x x y y -- 假想图中,点(',')x y 关于原点的坐标:00(',')x x y y --

当算法取原矩阵中y 行x 列时进行旋转变换:

00'cos sin 'sin cos x x x y y y θθθθ--??????=??????-??????

得到的假想图中的相对坐标再转化为'y 行'x 列。

这时把对应的行列赋值于假想图中:

',',y x y x a a =

模型图3.1.1

Matlab源程序

disp('旋转变换');

str=input('请输入图片名称(例如:Koala.jpg):\n','s');

theta=input('请输入角度theta(单位:度;旋转为逆时针)')

theta=pi/180*theta;

imA=imread(str);

originalA=size(imA);

n=size(originalA);

rowA=originalA(1);

colA=originalA(2);

maxsize=floor(sqrt(rowA^2+colA^2));

if n(2)==2 %如果图像矩阵是2维,进行非彩色图像旋转B=zeros(maxsize,maxsize);

x0=colA/2;y0=rowA/2; %获取原图像中心点

xe0=maxsize/2;ye0=maxsize/2; %获取假想图像中心点

for y=1:rowA

for x=1:colA

C=[cos(theta),-sin(theta);sin(theta),cos(theta)]*[x-x0;y-y0];

xe=floor(C(1));ye=floor(C(2));

B(ye+ye0,xe+xe0)=imA(y,x);

end

end

end

if n(2)==3; %如果图像矩阵是3维,进行彩色图像旋转B=zeros(maxsize,maxsize,3);

x0=colA/2;y0=rowA/2; %获取原图像中心点

xe0=maxsize/2;ye0=maxsize/2; %获取假想图像中心点

for y=1:rowA

for x=1:colA

C=[cos(theta),-sin(theta);sin(theta),cos(theta)]*[x-x0;y-y0];

xe=floor(C(1));ye=floor(C(2));

B(ye+ye0,xe+xe0,:)=imA(y,x,:);

end

end

end

subplot(1,2,1);

imshow(imA);

hold on

subplot(1,2,2);

imshow(uint8(B));

CommandWindow

缺陷分析:

输出图中出现许多规则分布的空洞,可知在旋转过程中非整数的点被化为整数点时失去一部分点的灰度值,这些灰度值其实可以通过插值弥补,为了使程序较为简单,笔者就没有进行修正。

第四章 图像的转置变换

§1 非彩色图像的转置(Transpose )变换

非彩色图像的转置变换非常简单只需把原图像矩阵转置即可:

111212122212

m m n n nm a a a a a a A a a a ????

??=?????? ,T B A =

§2 彩色图像的转置变换

因为彩色图像是三维矩阵,我们每次进行一层的转置,最后可以得到全图的转置。

1,1,11,2,11,,12,1,12,2,12,,111,1,1,2,1,,1 m m T n n n m a a a a a a A A A a a a ??????==????????

1,1,21,2,21,,22,1,22,2,22,,222,1,2,2,2,,2 m m T n n n m a a a a a a A A A a a a ??????==????????

1,1,31,2,31,,32,1,32,2,32,,333,1,3,2,3,,3 m m T n n n m a a a a a a A A A a a a ??????==????????

Matlab 程序

disp('Transpose Of A Image');

str=input('请输入图片名称(例如:Koala.jpg ):\n','s'); imA=imread(str); originalA=size(imA); n=size(originalA); rowA=originalA(1); colA=originalA(2); if n(2)==3

imB=zeros(colA,rowA,3);

imB(:,:,1)=imA(:,:,1)';

imB(:,:,2)=imA(:,:,2)';

imB(:,:,3)=imA(:,:,3)'; end

if n(2)==2

imB=imA';

end

subplot(1,2,1);

imshow(imA);

subplot(1,2,2);

imshow(uint8(imB)); CommandWindow

第五章 图像的缩放变换

§1 双线性内插法简介

在放大、收缩等变换和几何校正的任务重内插是被广泛应用的基本工具。这一节我们主要介绍双线性内插法,为接下来图像的缩放做铺垫。

在双线性内插法中,我们用4个最近邻去估计给定位置的灰度。令x ,y 表示想要赋以灰度值的位置,令v 表示灰度值。对于双线性内插,类似线性插值,我们同时对两个自变量进行插值,赋值公如下:

11212212212121211222211121212121(,)(,)

(,)()()()()

()()()()

(,)(,)

()()()()()()()()

f x y f x y f x y x x y y x x y y x x y y x x y y f x y f x y x x y y x x y y x x y y x x y y ≈

--+------+--+------

事实上:

考虑如下坐标系下四点:

要通过11(,)x y ,12(,)x y ,21(,)x y ,22(,)x y 四个点的数值11(,)f x y ,12(,)f x y ,

21(,)f x y ,22(,)f x y 来表示(,)f x y 的值。

我们先对x 做2个数据的拉格朗日插值:

回忆两个点时的拉格朗日插值(线性插值):

12212121

()()()x x x x

f x f x f x x x x x --=

+-- (3.1.1)

此时f 的值与两个变量有关,我们先选定一个变量为常数,于是 令1y y =,带入(3.1.1) :

12121112121

(,)(,)(,)x x x x

f x y f x y f x y x x x x --=+-- (3.1.2)

令2y y =,带入(3.1.1):

12222122121

(,)(,)(,)x x x x

f x y f x y f x y x x x x --=

+-- (3.1.3 再令 (1,2)i x x i ==:

12212121

(,)(,)(,)i i i y y y y

f x y f x y f x y y y y y --=

+-- (3.1.4)

最后把(3.1.2)(3.1.3)带入(3.1.4)得:

11212212212121211222211121212121(,)(,)(,)()()()()

()()()()

(,)(,)

()()()()()()()()

f x y f x y f x y x x y y x x y y x x y y x x y y f x y f x y x x y y x x y y x x y y x x y y ≈

--+------+--+------

这样通过邻近四个点的灰度值可以对目标点估计灰度值。

§2 图像的缩放

2.1

有了双线性内插法作为工具,我们下面来进行图像的缩放变换。

假设一个大小500*500的像素的图像要放大1.5倍到750*750的像素。一种简单的思想是,先创建一个假想的750*750网格,它与原始图像有相同的间隔(一般是1),然后将其收缩、压缩,使它精确地与原图像匹配成500*500。显然,收缩后的假想图像的间隔比原图像的间隔要小。每个假想图像的相同间隔的灰度值应该与原图像相等,而假想图像间隔小,所以存在未被赋灰度值的像素点,这时我们采取双线性内插法进行赋值。

2.2Matlab源程序

I=imread('Koala .jpg'); %读入原图像,只需将此处的文件换成要变换的图片即可[rows,cols]=size(I);

K1 = str2double(inputdlg('请输入行缩放倍数', 'INPUT scale factor', 1, {'0.5'}));

K2 = str2double(inputdlg('请输入列缩放倍数', 'INPUT scale factor', 1, {'0.4'})); width = K1 * rows;

height = K2 * cols;

Out = uint8(zeros(width,height)); %创建输出图像矩阵

widthScale = rows/width;

heightScale = cols/height;

for x = 6:width - 6 % 6是为了防止矩阵超出边界溢出for y = 6:height - 6

oldX = x * widthScale; % oldX,oldY为原坐标,x,y为新坐标

oldY = y * heightScale;

if (oldX/double(uint16(oldX)) == 1.0) && (oldY/double(uint16(oldY)) == 1.0)

Out(x,y) = I(int16(oldX),int16(oldY));%若oldX,oldY为整数,直接赋值

else

a = double(uint16(oldX));

b = double(uint16(oldY));

x11 = double(I(a,b)); % x11 赋值为I(a,b)

x12 = double(I(a,b+1)); % x12 赋值为I(a,b+1)

x21 = double(I(a+1,b)); % x21 赋值为I(a+1,b)

x22 = double(I(a+1,b+1)); % x22 赋值为I(a+1,b+1)

Out(x,y) =

uint8((b+1-oldY)*((oldX-a)*x21+(a+1-oldX)*x11)+(oldY-b)*((oldX-a)*x22+(a+1-ol dX)*x12)); % 用双线性插值计算公式计算

end

end

end

imshow(I);

figure;

imshow(Out);

CommandWindow运行:

原图行列分别缩小为0.5,0.4

原图行列分别放大为2,2

第六章 图像的平移变换

我们先创建一个假想图空间域,行列大小都是原图像的1.5倍。先获取原图像的y 行x 列。

想要平移距离:x ?,y ? 原矩阵中的中心点为:

00,22

col row x y =

=(处理时需取整) 假想图像的中心:

001.5 1.5','22

col row x y =

=(处理时需取整) 在原图中,点(,)x y 关于原点的坐标:00(,)x x y y -- 平移后假想图中对应坐标:s

00''x x x x x =-++?,00''y y y y y =-++?

对应的元素替换:

',',y x x y a a =

Matlab 程序 disp('平移变换');

str=input('请输入图片名称(例如:Koala.jpg ):\n','s'); xm=input('请输入x 轴平移距离'); ym=input('请输入y 轴平移距离'); imA=imread(str); originalA=size(imA); rowA=originalA(1); colA=originalA(2);

imB=zeros(1.5*rowA,1.5*colA); x0=colA/2;y0=rowA/2;

xe0=(1.5*colA)/2;ye0=(1.5*rowA)/2; for x=1:colA

for y=1:rowA

ye=floor(y-y0+ye0+ym);xe=floor(x-x0+xe0+ym); imB(ye,xe)=imA(y,x); end end

subplot(1,2,1); imshow(imA); hold on

subplot(1,2,2);

imshow(uint8(imB));

CommandWindow

右下方平移60,50

数字图像处理实验四图像几何变换

课程名称数字图像处理与分析 实验序号实验4 实验项目图像几何变换 实验地点 实验学时实验类型 指导教师实验员 专业班级 学号姓名 2017年9月25日

成绩: 教 师 评 语

三、实验软硬件环境 装有MATLAB软件的电脑 四、实验过程(实验步骤、记录、数据、分析) 1、图片比例缩放 代码: I=imread('11.jpg'); J=imresize(I,1.25); J2=imresize(I,1.25,'bicubic'); imshow(I); figure,imshow(J); figure,imshow(J2); Y=imresize(I,[100150],'bilinear');%Y=imresize(I,[mrows ncols],method)---返回一个指定行列的图像。若行列比与原图不一致,输出图像将发生变形。 figure,imshow(Y) %nearest,bilinear,bicubic为最近邻插值、双线性插值、双三次插值方法。默认为nearest。 运行结果: 分析:由实验结果可知,实现了图片放大和缩小的效果。 2、图像旋转 代码:

J=imrotate(I,32,'bilinear');%J=imrotate(I,angle,method,’crop’)------crop用于剪切旋转后增大的图像部分,返回和原图大小一样的图象。 imshow(I); figure,imshow(J) 运行结果: 分析:由实验结果可知,实现了图片旋转的效果 3、图像剪切 代码:

J=imcrop(I); figure(1),imshow(I);title('yuantu'); figure(2),imshow(J);title('croptu') J1=imcrop(I,[604010090]);%对指定区域进行剪切操作figure(3),imshow(J1);title('croptu2'); 运行结果: 运行代码后,出现如下界面,选中要裁剪的区域,双击被选中的区域 出现以下界面:

matlab 图像的几何变换与彩色处理

实验四、图像的几何变换与彩色处理 一、实验目的 1理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用; 2熟悉图像几何变换的MATLAB操作和基本功能 3 掌握彩色图像处理的基本技术 二、实验步骤 1 启动MATLAB程序,读入图像并对图像文件分别进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作 %%%%%%平移 >> flowerImg=imread('flower.jpg'); >> se=translate(strel(1),[100 100]); >> img2=imdilate(flowerImg,se); >> subplot(1,2,1); >> imshow(flowerImg); >> subplot(1,2,2); >> imshow(img2);

I1=imread('flower.jpg'); I1=double(I1); H=size(I1); I2(1:H(1),1:H(2),1:H(3))=I1(H(1):-1:1,1:H(2),1:H(3)); I3(1:H(1),1:H(2),1:H(3))=I1(1:H(1),H(2):-1:1,1:H(3)); Subplot(2,2,1); Imshow(uint8(I1)); Title('原图'); Subplot(2,2,2); Imshow(uint8(I3)); Title('水平镜像'); Subplot(2,2,3); Imshow(uint8(I2)); Title('垂直镜像'); img1=imread('flower.jpg'); figure,imshow(img1); %%%%%%缩放 img2=imresize(img1,0.25); figure,imshow(img2); imwrite(img2,'a2.jpg');

基于Matlab基本图像处理程序

图像读入 ●从图形文件中读入图像 imread Syntax: A = imread(filename, fmt) filename:指定的灰度或彩色图像文件的完整路径和文件名。 fmt:指定图形文件的格式所对应的标准扩展名。如果imread没有找到filename所制定的文件,会尝试查找一个名为filename.fmt的文件。 A:包含图像矩阵的矩阵。对于灰度图像,它是一个M行N列的矩阵。如果文件包含 RGB真彩图像,则是m*n*3的矩阵。 ●对于索引图像,格式[X, map] = imread(filename, fmt) X:图像数据矩阵。 MAP:颜色索引表 图像的显示 ●imshow函数:显示工作区或图像文件中的图像 ●Syntax: imshow(I) %I是要现实的灰度图像矩阵 imshow(I,[low high],param1, val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数 imshow(RGB) imshow(BW) imshow(X,map) %map颜色索引表 imshow(filename) himage = imshow(...) ●操作:读取并显示图像 I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据 imshow(I);%显示原图像 图像增强 一.图像的全局描述 直方图(Histogram):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。 图像直方图(Image Histogram):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图 像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像

基于MATLAB的图像处理的基本运算

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 基于MATLAB的图像处理的基本运算 初始条件: 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)能够对图像亮度和对比度变化调整,并比较结果 (2)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的和旋转操作,并保存,比较几 种插值的效果 (3)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。 (4)对图像加入各种噪声,比较效果。 时间安排: 指导教师签名:年月日 系主任(或责任教师)签名:年月日 目录 摘要.......................................................................................................................... 错误!未定义书签。 1 MATLAB简介 ........................................................................................................ 错误!未定义书签。2图像选择及变换................................................................................................... 错误!未定义书签。 2.1 原始图像选择读取....................................................................................... 错误!未定义书签。 2.1.1 原理图的读入与基本变换 .................................................................... 错误!未定义书签。

基于MATLAB图像处理报告

基于M A T L A B图像处理报告一、设计题目 图片叠加。 二、设计要求 将一幅礼花图片和一幅夜景图片做叠加运算,使达到烟花夜景的美图效果。 三、设计方案 、设计思路 利用matlab强大的图像处理功能,通过编写程序,实现对两幅图片的像素进行线性运算,利用灰度变换的算法使图片达到预期的效果。 、软件介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB 也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户直接进行下载就可以用。

数字图像处理复习题

第一章绪论 一.选择题 1. 一幅数字图像是:( ) A、一个观测系统 B、一个有许多像素排列而成的实体 C、一个2-D数组中的元素 D、一个3-D空间的场景。 提示:考虑图像和数字图像的定义 2. 半调输出技术可以:( ) A、改善图像的空间分辨率 B、改善图像的幅度分辨率 C、利用抖动技术实现 D、消除虚假轮廓现象。 提示:半调输出技术牺牲空间分辨率以提高幅度分辨率 3. 一幅256*256的图像,若灰度级数为16,则存储它所需的比特数是:( ) A、256K B、512K C、1M C、2M 提示:表达图像所需的比特数是图像的长乘宽再乘灰度级数对应的比特数。 4. 图像中虚假轮廓的出现就其本质而言是由于:( ) A、图像的灰度级数不够多造成的 B、图像的空间分辨率不够高造成 C、图像的灰度级数过多造成的 D、图像的空间分辨率过高造成。 提示:平滑区域内灰度应缓慢变化,但当图像的灰度级数不够多时会产生阶跃,图像中的虚假轮廓最易在平滑区域内产生。 5. 数字图像木刻画效果的出现是由于下列原因所产生的:() A、图像的幅度分辨率过小 B、图像的幅度分辨率过大 C、图像的空间分辨率过小 D、图像的空间分辨率过大 提示:图像中的木刻效果指图像中的灰度级数很少 6. 以下图像技术中属于图像处理技术的是:()(图像合成输入是数据,图像分类输出 是类别数据) A、图像编码 B、图像合成 C、图像增强 D、图像分类。 提示:对比较狭义的图像处理技术,输入输出都是图像。 解答:1.B 2.B 3.A 4.A 5.A 6.AC 二.简答题 1. 数字图像处理的主要研究内容包含很多方面,请列出并简述其中的4种。 2. 什么是图像识别与理解? 3. 简述数字图像处理的至少3种主要研究内容。 4. 简述数字图像处理的至少4种应用。 5. 简述图像几何变换与图像变换的区别。 解答: 1. ①图像数字化:将一幅图像以数字的形式表示。主要包括采样和量化两个过程。②图像增强:将一幅图像中的有用信息进行增强,同时对其无用信息进行抑制,提高图像的可观察性。③图像的几何变换:改变图像的大小或形状。④图像变换:通过数学映射的方法,将空域的图像信息转换到频域、时频域等空间上进行分析。⑤图像识别与理解:通过对图像中各种不同的物体特征进行定量化描述后,将其所期望获得的目标物进行提取,并且对所提取的目标物进行一定的定量分析。 2. 图像识别与理解是指通过对图像中各种不同的物体特征进行定量化描述后,将其所期望获得的目标物进行提取,并且对所提取的目标物进行一定的定量分析。比如要从一幅照片上确定是否包含某个犯罪分子的人脸信息,就需要先将照片上的人脸检测出来,进而将

MATLAB实现图像的平移缩放和旋转要点

数字图像处理课程设计 题目图像的几何变换重建 系 (部) 信息工程系 班级 姓名 学号 指导教师 2013 年 12 月 16 日至 12 月 27 日共 2 周 2013年 12 月 27 日

数字图像处理课程设计任务书

课程设计成绩评定表

目录 1 引言 (4) 1.1课程设计的目的.......................... 错误!未定义书签。 1.2课程设计的任务.......................... 错误!未定义书签。 1.3课程设计的要求.......................... 错误!未定义书签。 1.4开发工具................................ 错误!未定义书签。2设计内容 (4) 2.1设计内容 (4) 2.2 系统框图 (4) 3 设计方案 (5) 3.1功能模块的划分 (5) 3.2算法描述 (5) 3.3实现主要功能的原理和方法 (8) 3.3.1最近邻域插值法 (8) 3.3.2双线性插值法 (8) 4功能模块的具体实现 (10) 4.1 模块功能 (10) 4.2流程图 (11) 4.3程序清单及各模块的实现效果图 (11) 4.4 系统仿真与调试 (21) 5 总结与体会 (22) 参考文献 (22) 附录 (23)

1 引言 2设计内容 2.1设计内容 我选取的是图像的几何变换,设计内容如下, (1)能够读取和存储图像。 (2)实现图像的平移、缩放、旋转几何变换。 (3)分别采用最近邻插值和双线性插值技术进行图像重建。 (4)编写代码实现上述功能。 图2-1系统框图 本次课设所做的图像几何变换包括平移变换、缩放变换和旋转变换。缩放变换和旋转变换均用双线性插值变换和最近邻插值变换两种方法来做,对图像进行处理后再存储。

(完整版)数字图像处理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); %直方图均衡化,灰度级为256 subplot(2,2,2),imshow(a) %输出均衡化后图像 title('均衡化后图像') %在均衡化后图像中加标题 subplot(2,2,4),imhist(a) %输出均衡化后直方图 title('均衡化后图像直方图') %在均衡化后直方图上加标题 四.实验步骤 1. 启动matlab 双击桌面matlab图标启动matlab环境; 2. 在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自带的图像, 如:cameraman图像;再调用相应的灰度均衡函数,设置参数;最后输出处理后的图像; 3.浏览源程序并理解含义; 4.运行,观察显示结果; 5.结束运行,退出; 五.实验结果 观察matlab环境下图像灰度均衡结果及直方图分布。 (a)原始图像 (b)均衡化后图像

MATLAB数字图像处理几何变换傅里叶变换

Matlab数字图像处理实验指导 实验目的: 通过实验,深入理解和掌握图像处理的基本技术,提高动手实践能力。 实验环境: Matlab变成 实验一图像的几何变换 实验内容:设计一个程序,能够实现图像的各种几何变换。 实验要求:读入图像,打开图像,实现图像的平移变换、比例缩放、转置变换、镜像变换、旋转变换等操作。 实验原理: 图像几何变换又称为图像空间变换,它将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置。学习几何变换的关键就是要确定这种空间映射关系,以及映射过程中的变化参数。 几何变换不改变图像的像素值,只是在图像平面上进行像素的重新安排。一个几何变换需要两部分运算:首先是空间变换所需的运算,如平移、镜像和旋转等,需要用它来表示输出图像与输入图像之间的(像素)映射关系;此外,还需要使用灰度插值算法,因为按照这种变换关系进行计算,输出图像的像素可能被映射到输入图像的非整数坐标上。 设原图像f(x0,y0)经过几何变换产生的目标图像为g(x1,y1),则该空间变换(映射)关系可表示为: x1=s(x0,y0) y1=t(x0,y0) 其中,s(x0,y0)和t(x0,y0)为由f(x0,y0)到g(x1,y1)的坐标换变换函数。 一、图像平移 图像平移就是将图像中所有的点按照指定的平移量水平或者垂直移动。

二、图像镜像 镜像变换又分为水平镜像和垂直镜像。水平镜像即将图像左半部分和右半部分以图像竖直中轴线为中心轴进行对换;而竖直镜像则是将图像上半部分和下半部分以图像水平中轴线为中心轴进行对换。 三、图像转置 图像转置是将图像像素的x坐标和y坐标呼唤。图像的大小会随之改变——高度和宽度将呼唤。

图像处理matlab程序实例

程序实例 1旋转: x=imread('d:\MATLAB7\work\flower.jpg'); y=imrotate(x,200,'bilinear','crop'); subplot(1,2,1); imshow(x); subplot(1,2,2); imshow(y) 2.图像的rgb clear [x,map]=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shh1.jpg');y=x(90:95,90:95);imshow(y)R=x(90:95,90:95,1);G=x(90:95,90:95,2);B=x(90:95,90:95,3);R,G,B 3.加法运算clear I=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shh3.jpg');J=imnoise(I,'gaussian',0,0.02);%向图片加入高斯噪声subplot(1,2,1),imshow(I);%显示图片subplot(1,2,2),imshow(J);K=zeros(242,308);%产生全零的矩阵,大小与图片的大小一样for i=1:100%循环100加入噪声J=imnoise(I,'gaussian',0,0.02);J1=im2double(J);K=K+J1;end K=K/100; figure,imshow(K);save

4.减法 clear I=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shao.jpg'); J=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shao1.jpg'); K=imsubtract(I,J);%实现两幅图相减 K1=255-K;%将图片求反显示 figure;imshow(I); title('有噪声的图'); figure;imshow(J); title('原图'); figure;imshow(K1); title('提取的噪声'); save 5.图像的乘法 H=imread('D:\Program Files\MATLAB\R2012a\bin\shaohaihe\shao.jpg'); I=immultiply(H,1.2);将此图片乘以1.2 J=immultiply(H,2); subplot(1,3,1),imshow(H); title('原图'); subplot(1,3,2),imshow(I); title('·放大1.2'); subplot(1,3,3),imshow(J); title('放大2倍'); 6除法运算 moon=imread('moon.tif'); I=double(moon); J=I*0.43+90; K=I*0.1+90; L=I*0.01+90; moon2=uint8(J); moon3=uint8(K); moon4=uint8(L); J=imdivide(moon,moon2); K=imdivide(moon,moon3); L=imdivide(moon,moon4); subplot(2,2,1),imshow(moon); subplot(2,2,2),imshow(J,[]); subplot(2,2,3),imshow(K,[]); subplot(2,2,4),imshow(L,[]);

基于MATLAB的运动模糊图像处理

基于MATLAB的运动模糊图像处理 提醒: 我参考了文献里的书目和网上的一些代码而完成的,所以误差会比较大,目前对于从网上下载的模糊图片的处理效果很不好,这是我第一次上传自己完成的实验的文档,希望能帮到一些人吧。 研究目的 在交通系统、刑事取证中图像的关键信息至关重要,但是在交通、公安、银行、医学、工业监视、军事侦察和日常生活中常常由于摄像设备的光学系统的失真、调焦不准或相对运动等造成图像的模糊,使得信息的提取变得困难。但是相对于散焦模糊,运动模糊图像的复原在日常生活中更为普遍,比如高速运动的违规车辆的车牌辨识,快速运动的人群中识别出嫌疑人、公安刑事影像资料中提取证明或进行技术鉴定等等,这些日常生活中的重要应用都需要通过运动模糊图像复原技术来尽可能地去除失真,恢复图像的原来面目。因此对于运动模糊图像的复原技术研究更具有重要的现实意义。 图像复原原理 本文探讨了在无噪声的情况下任意方向的匀速直线运动模糊图像的复原问题,并在此基础上讨论了复原过程中对点扩散函数(PSF)的参数估计从而依据自动鉴别出的模糊方向和长度构造出最为近似的点扩散函数,构造相应的复原模型,实现运动模糊图像的复原;在模糊图像自动复原的基础上,根据恢复效果图的纹理特征和自动鉴别出的模糊长度和角度,人工调整模糊方向和长度参数,使得复原效果达到最佳。 实验过程 模糊方向的估计: 对图1(a)所示的原始图像‘车牌’图像做方向θ=30?,长度L=20像素的匀速直线运动模糊,得到退化图像如图1(b)

1(a) 1(b) j=imread('车牌1.jpg'); figure(1),imshow(j); title('原图像'); len=20; theta=30; psf=fspecial('motion',len,theta); j1=imfilter(j,psf,'circular','conv'); figure,imshow(j1); title('PSF 模糊图像'); 图1(c)和1(d)分别为原图像和模糊图像的二次傅里叶变化

图像的几何变换及其matlab实现

数字图像处理论文--图像的几何变换及其MATLAB实现 学院:理学院专业:信息与计算科学 班级:信计1012 姓名: 学号:任课老师: 集美大学理学院 二○一三年十一月二十八日

目录 摘要 (1) 一、何谓数字图像处理 (1) 二、数字图像几何变换简介 (1) 三、MATLAB图像处理工具介绍 (1) 四、图像几何变换的MATLAB实现 (2) 4.1图像几何变换的概述 (2) 4.2 图像的平移变换 (2) 4.3 图像的比例缩放 (4) 4.4 图像的镜像变换 (5) 4.5 图像的旋转变换 (7) 4.6 图像的剪取 (8) 五、图像几何变换的应用以及技术局限 (10) 参考文献 (10)

摘要:图像变换就是把图像从空间域转换到变换域(如频率域)的过程。图像变换可以使人们从另一角度来分析图像信号的特性,利用变换域中特有的性质,使图像处理过程更加简单、有效。图像变换是许多图像处理与分析技术的基础,而几何变换是图像变换中最基础也是应用最广泛的技术之一,本文基于MATLAB的图像处理工具,通过改变图像像素的空间位置或估算新空间位置上的像素值,从而实现图像的平移、缩放、旋转、镜像变换、图像插值等几何变换。 关键字:图像变换、几何变换、MATLAB 一、何谓数字图像处理 数字图像处理(Digital Image Processing),就是利用数字计算机或则其他数字硬件,对从图像信息转换而得到的电信号进行某些数学运算,以提高图像的实用性。例如从卫星图片中提取目标物的特征参数,三维立体断层图像的重建等。总的来说,数字图像处理包括点运算、几何处理、图像增强、图像复原、图像形态学处理、图像编码、图像重建、模式识别等。目前数字图像处理的应用越来越广泛,已经渗透到工业、医疗保健、航空航天、军事等各个领域,在国民经济中发挥越来越大的作用。 二、数字图像几何变换简介[3] 今天数字技术时代,我们身边接触到很多的数字图像,而对数字图像的处理往往会遇到需要对图像进行几何变换的一些问题。图像几何变换是图像显示技术中的一个重要组成部分。在图像几何变换中主要包括图像的缩放、旋转、移动、剪取等内容。无论照片、图画、书报、还是医学X光和卫星遥感图像等领域都会用到这些技术。通过图像的几何变换技术,可以显著提高图像处理效率和质量,为更进一步的图像处理奠定基础。 三、MATLAB图像处理工具介绍[1] MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值

图像运算的MATLAB实现

rice=imread(‘rice.png’); % 读入图像 I=double(rice); % 数据类型转换 J=I*0.43+60; % 像素点算术运算 rice2=uint8(J) % 数据类型转换subplot(1,2,1),imshow(rice); % 原图绘制subplot(1,2,2),imshow(rice2); % 计算后图像绘制

X = uint8([ 255 10 75; 44 225 100]); Y = uint8([ 50 20 50; 50 50 50 ]); Z = imdivide(X,Y)

I = imread('rice.png'); % 读入图像background = imopen(I,strel('disk',15)); % 图像开运算Ip = imdivide(I,background); % 图像除法运算imshow(Ip,[]) % 显示运算后的图像

I = imread('rice.png'); % 读入图像 J = imdivide(I,2); % 图像除以一个常数subplot(1,2,1), imshow(I) % 显示原始图像subplot(1,2,2), imshow(J) % 显示运算后的图像

I = imread('cameraman.tif'); % 读入图像J = imlincomb(2,I); % 灰度值放大imshow(J) % 显示运算后的图像

I = imread('cameraman.tif'); % 读入图像 J = uint8(filter2(fspecial('gaussian'), I)); % 图像滤波 K = imlincomb(1,I,-1,J,128); % K(r,c) = I(r,c) - J(r,c) + 128 % 图像相减后加上一个常数figure, imshow(K) % 显示运算后的图像

基于matlab数字图像处理与识别系统含程序

目录 第一章绪论 (2) 1.1 研究背景 (2) 1.2 人脸图像识别的应用前景 (3) 1.3 本文研究的问题 (4) 1.4 识别系统构成 (4) 1.5 论文的内容及组织 (5) 第二章图像处理的Matlab实现 (6) 2.1 Matlab简介 (6) 2.2 数字图像处理及过程 (6) 2.2.1图像处理的基本操作 (6) 2.2.2图像类型的转换 (7) 2.2.3图像增强 (7) 2.2.4边缘检测 (8) 2.3图像处理功能的Matlab实现实例 (8) 2.4 本章小结 (11) 第三章人脸图像识别计算机系统 (11) 3.1 引言 (11) 3.2系统基本机构 (12) 3.3 人脸检测定位算法 (13) 3.4 人脸图像的预处理 (18) 3.4.1 仿真系统中实现的人脸图像预处理方法 (19) 第四章基于直方图的人脸识别实现 (21) 4.1识别理论 (21) 4.2 人脸识别的matlab实现 (21) 4.3 本章小结 (22) 第五章总结 (22) 致谢 (23) 参考文献 (24) 附录 (25)

第一章绪论 本章提出了本文的研究背景及应用前景。首先阐述了人脸图像识别意义;然后介绍了人脸图像识别研究中存在的问题;接着介绍了自动人脸识别系统的一般框架构成;最后简要地介绍了本文的主要工作和章节结构。 1.1 研究背景 自70年代以来.随着人工智能技术的兴起.以及人类视觉研究的进展.人们逐渐对人脸图像的机器识别投入很大的热情,并形成了一个人脸图像识别研究领域,.这一领域除了它的重大理论价值外,也极具实用价值。 在进行人工智能的研究中,人们一直想做的事情就是让机器具有像人类一样的思考能力,以及识别事物、处理事物的能力,因此从解剖学、心理学、行为感知学等各个角度来探求人类的思维机制、以及感知事物、处理事物的机制,并努力将这些机制用于实践,如各种智能机器人的研制。人脸图像的机器识别研究就是在这种背景下兴起的,因为人们发现许多对于人类而言可以轻易做到的事情,而让机器来实现却很难,如人脸图像的识别,语音识别,自然语言理解等。如果能够开发出具有像人类一样的机器识别机制,就能够逐步地了解人类是如何存储信息,并进行处理的,从而最终了解人类的思维机制。 同时,进行人脸图像识别研究也具有很大的使用价依。如同人的指纹一样,人脸也具有唯一性,也可用来鉴别一个人的身份。现在己有实用的计算机自动指纹识别系统面世,并在安检等部门得到应用,但还没有通用成熟的人脸自动识别系统出现。人脸图像的自动识别系统较之指纹识别系统、DNA鉴定等更具方便性,因为它取样方便,可以不接触目标就进行识别,从而开发研究的实际意义更大。并且与指纹图像不同的是,人脸图像受很多因素的干扰:人脸表情的多样性;以及外在的成像过程中的光照,图像尺寸,旋转,姿势变化等。使得同一个人,

图像几何变换的理论及MATLAB实现.

第 25卷第 4期《新疆师范大学学报》 (自然科学版 V o l . 25, N o . 4 2006年12月 Journal of X injiang N o r m al U niversity D ec . 2006 (N atural Sciences Editi on 图像几何变换的理论及 M A TLAB 实现 古丽娜 1, 2, 木妮娜 3 (1. 西北师范大学教育技术与传播学院 , 甘肃兰州 730070; 2. 新疆师范大学教育科学学院 , 新疆乌鲁木齐 830054; 3. 新疆师范大学数理信息学院 , 新疆乌鲁木齐830054 α 摘要 :, 。在图像几何变换中主要包括图像的缩放、图像的旋转、、 (主要包括图像的缩放、旋转、 , A 。 关键词 :; 缩放 ; 旋转 ; 移动 ; 剪取 T P 391. 4文献标识码 : A 文章编号 : 1008296592(2006 20420024205 1引言 从 20世纪 60年代美国航空和太空总署 (N A SA 的喷气推进实验室第一次使用计算机对太空船发回的大批月球图片进行处理到信息技术不断提高的今天 , 数字图像的应用处理技术得到了广泛的应用 , 形成了自己的技术特色和完善的学科体系。 我们在处理图像时往往会遇到需要对图像进行几何变换的一些问题。图像几何变换是图像显示技术中的一个重要组成部分 , 也是我们学习和探讨的一个重要课题。在图像几何变换中主要包括图像的缩放、旋转、移动、剪取等内容。其中使用最频繁的是图像的缩放和旋转 , 不论照片、图画、书报、还是医学 X 光和卫星遥感图像都会用到这两项技术。

基本数字(精选)图像处理算法的matlab实现

基本数字图像处理算法的matlab实现 1.数字图像处理的简单介绍 所谓数字图像就是把传统图像的画面分割成为像素的小的离散点,各像素的灰度值也是用离散值来表示的。 数字图像处理是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。 2.图像的显示与运算 2.1图像的显示 Matlab显示语句 imshow(I,[lowhigh])%图像正常显示 I为要显示的图像矩阵。,[lowhigh]为指定显示灰度图像的灰度范围。高于high的像素被显示成白色;低于low的像素被显示成黑色;介于high和low之间的像素被按比例拉伸后显示为各种等级的灰色。 subplot(m,n,p) 打开一个有m行n列图像位置的窗口,并将焦点位于第p个位置上。 2.2图像的运算 灰度化将彩色图像转化成为灰度图像的过程成为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种,所以在数字图像处理种一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。图像的灰度化处理可用两种方法来实现。

第一种方法使求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量。 第二种方法是根据YUV的颜色空间中,Y的分量的物理意义是点的亮度,由该值反映亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B三个颜色分量的对应:Y=0.3R+0.59G+0.11B,以这个亮度值表达图像的灰度值。 灰度是灰度级的函数,它表示图象中具有每种灰度级的象素的个数,反映图象中每种灰度出现的频率。 图像增强的目标是改进图片的质量,例如增加对比度,去掉模糊和噪声,修正几何畸变等;图像复原是在假定已知模糊或噪声的模型时,试图估计原图像的一种技术。 Matlab图像格式转换语句 rgb2gray(I) %从RGB图创建灰度图 imhist(I) %画灰度直方图 图像的线性变换 D B=f(D A)=f A*D A+f B Matlab源代码: I1=imread('F:\图片2.jpg'); subplot(2,2,1);imshow(I1);title('原图'); I2=rgb2gray(I1); %灰度化图像 subplot(2,2,2);imshow(I2);title('灰度化后图'); [M,N]=size(I2); subplot(2,2,3) [counts,x]=imhist(I2,60); %画灰度直方图 counts=counts/M/N; stem(x,counts);title('灰度直方图'); g=zeros(M,N);%图像增强

基于Matlab的遥感图像处理

基于Matlab的遥感图像处理 测绘工程1161641014 鲍家顺 摘要文章运用Matlab软件对遥感影像的不足之处进行处理改善,详细介绍了处理方法和处理的原理,对处理结果进行了比对分析,并进行了边缘检测与特征提取,论证了处理方法的可行性。 关键词图像处理;matlab ;均衡化;规定化;色彩平衡;边缘检测;特征提取 在获取遥感图像过程中,由于多种因素的影响,会导致图像质量的退化,为了改善图像质量,突出遥感图像中的某些信息,提高图像的视觉效果,需要对图像进行各方面的处理,如分段线形拉伸,对数变换,直方图规定化、正态化,图像滤波,纹理分析及目标检测等。通过图像处理可以去除图像中的噪声,增强感兴趣的目标和周围背景图像间的反差,有选择地突出便于人或电脑分析的信息,抑制一些无用的信息,强调出图像的边缘,增强图像的识别方便性,从而进行边缘检测和特征提取。图像写出函数,显示图像函数有image ( ) 、inshow ( ) 等。[2 ]Matlab 图像处理工具箱处理工具提供了imhist () 函数来计算和显示图像的直方图, 提供了直方图均衡化的函数histeq() 、边缘检测函数edge ( ) 、腐蚀函数imerode () 、膨胀函数imdilate () 及二值图像转换函数im2bw () 等。文中实验数据采用的是桂林市区灰度遥感图像,宽度为1024 像素,高度为713 像素。 文件读入: 讲workspace切入到图片所在图层: Cd d:\ 读入图片: [x,cmap]=imread('m.PNG'); %将图片读入转换为矩阵 clf;imshow(x); %显示图片 原始图片

matlab图像几何变换和图像增强

一.图像几何变化 (1)放大,缩小,旋转 程序: I=imread('111.jpg'); J=imresize(I,1.5); L=imresize(I,0.75); K=imrotate(I,35,'bilinear'); subplot(221),subimage(I); title('原图像'); subplot(222),subimage(J); title('放大后图像'); subplot(223),subimage(L); title('缩小后图像'); subplot(224),subimage(K);title('旋转后图像'); 二.图像频域变换 (1)傅里叶变换 真彩图像灰度图像傅里叶变换谱程序:I=imread('111.jpg'); figure(1); imshow(I); B=rgb2gray(I); figure(2);

imshow(B) D=fftshift(fft2(B)); figure(3); imshow(log(abs(D)),[ ]); (2)离散余弦变换 真彩图灰度图进行离散余弦变换后程序: RGB=imread('111.jpg'); figure(1); imshow(RGB); G=rgb2gray(RGB); figure(2); imshow(G); DCT=dct2(G); figure(3); imshow(log(abs(DCT)),[]); 三.图像增强: (1)指数变换 程序:

f=imread('111.jpg') f=double(f); g=(2^2*(f-1))-1; f=uint8(f); g=uint8(g); subplot(1,2,1),subimage(f); subplot(1,2,2),subimage(g); (2)直方图均衡 程序: I=imread('111.jpg'); I=rgb2gray(I); figure subplot(221);imshow(I); subplot(222);imhist(I) I1=histeq(I); figure; subplot(221);imshow(I1) subplot(222);imhist(I1) (3)空域滤波增强 锐化滤波(Roberts算子Sobel算子拉普拉斯算子)

图像处理的matlab实现

成绩: 数字图像处理实验报告实验二:图像处理的matlab的实现 学号:0967118225 姓名:洪旭浩 同组人: 电脑编号: 实验时间:2010年6月4日星期一

数字图像处理实验报告 一、实验名称 图像处理的matlab 的实现 二、实验目的 1、了解Matlab 及其工具箱的基本使用方法 2、掌握使用Matlab 打开各种图像文件的方法 3、掌握使用Matlab 进行简单图像处理的方法 三、实验平台 Windows XP,Matlab 7.8.0(R2009a) 四、实验内容 一、直方图均衡化 直方图均衡化处理可将图像的灰度范围拉开,让灰度直方图在较大的动态范围内趋于一致。用图像),(y x f 的直方图代替灰度的分布密度函数)(f p f ,则直方图均衡化后的图像g 为: ?==f f du u p f T g 0)(][对于数字图像,设原图像的像素总数为N,灰度级的个数为L,第k 个灰度级出现的频数为k n 。若原图像),(y x f 在像素点),(y x 处的灰度为k r ,则直方图均衡化后的图像),(y x g 在),(y x 处的灰度k s 为: ∑===k l l k k N n r T s 0][MATLAB 图像处理工具箱提供了用于直方图均衡化的函数histep。histep 函数的语法格式为: J=histep(I,hgram) J=histep(I,n) [J,T]=histep(I,…) newmap=histep(X,map,hgram) newmap=histep(X,map) [newmap,T]=histep(X,…) 其中J=histep(I,hgram)将原始图像I 的直方图变成用户指定的向量hgram,hgram 中的各元素值域为[0,1]。 J=histep(I,n)指定直方图均衡化后的灰度级数n,默认值为64。 [J,T]=histep(I,…)返回能将图像I 的灰度直方图变换成图像J 的直方图的变换T。 newmap=histep(X ,map ,hgram)、newmap=histep(X ,map)和[newmap ,T]=histep(X,…)是针对索引色图像调色板的直方图均衡化。 1、使用以上语句,实现选定图像的直方图均衡化; 2、修改部分参数,观察不同参数下直方图均衡化的变化规律;

相关主题
文本预览
相关文档 最新文档