实验报告二 Matlab图像代数运算和几何变换

实验二Matlab图像代数运算和几何变换

一、实验目的

1、掌握不同图像类型的转换

2、掌握图像代数运算和几何变换的方法;

3、掌握灰度级插值法的实验方法。

二、实验内容

1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither)(p69-73);

2、练习课本6.3.2(p139-p143)图像代数运算的内容;

3、练习图像平移 (p148),图像比例变换(p153),图像旋转(p156),图像镜像变换(p158),图像切割(p160)Matlab实现例题;

4、练习灰度级插值法(p171)。

三、实验步骤和结果

1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither)

(1)mat2gray()函数

I=imread('rice.png');

>> J=filter2(fspecial('sobel'),I);

>> K=mat2gray(J);

>> imshow(I);

>> figure,imshow(K)

(2)、grayslice()函数

>> I=imread('snowflakes.png');

>> X=grayslice(I,16);

>> imview(I)

imview(X,jet(16))

(3)、rgb2ind()函数

> RGB=imread('peppers.png');

>> imshow(RGB);

>> figure,imshow(RGB)

>> [X,map]=rgb2ind(RGB,128);

>> figure,imshow(X,map) (4)、im2bw()函数

>> load trees

>> BW=im2bw(X,map,0.4);

>> figure,imshow(X,map)

>> figure,imshow(BW)

(5)、ind2gray()函数

load trees

>> I=ind2gray(X,map);

>> figure,imshow(X,map)

>> figure,imshow(I)

(6)、dither()函数

>> RGB=imread('peppers.png'); >> [X,map]=rgb2ind(RGB,256); >> I=dither(RGB,map);

>> BW=dither(I);

>> imshow(RGB,map);

>> figure,imshow(RGB,map); >> figure,imshow(BW)

Result:

(1)转换后图像(2)索引色图像

(3)索引色图像(4)索引色图像(4)二值化后的图像

(5)转换后的灰度图像(6)索引色图像(6)抖动转换图像

2、练习课本6.3.2(p139-p143)图像代数运算的内容

(1)加法运算

I=imread('rice.png');

>> figure(1),imshow(I,[])

>> I2=imread('cameraman.tif')

>> figure(2),imshow(I2,[])

>> K=imadd(I,I2,'uint16');

>> figure(3),imshow(K,[])

>> I=imread('lena.bmp');

>> I2=imadd(I,50);

>> figure(1),imshow(I)

>> figure(2),imshow(I2)

(2)、减法运算

>> I=imread('rice.png'); >> I2=imread('cameraman.tif'); >> I3=imsubtract(I,I2);

>> figure,imview(I3)

(3)乘法&除法运算

>> I=imread('lena.bmp');

>> I2=immultiply(I,0.5);

>> figure,imshow(I)

>> figure,imshow(I2)

>> I3=immultiply(I,1.5);

>> figure,imshow(I3)

>> I4=imdivide(I,0.5);

>> figure,imshow(I4)

>> I5=imdivide(I,1);

>> figure,imshow(I5)

Result:

(1)加法运算后的图像(1)加入常数后的图像(2)减法运算

(3)乘以0.5后的图像乘以1后的图像除以0.5后的图像除以1后的图像

3、练习图像平移 (p148),图像比例变换(p153),

图像旋转(p156),图像镜像变换(p158),图像切

割(p160)Matlab实现例题;

(a)图像平移

>> I=imread('trees.tif');

>> figure,imshow(I)

>> I=double(I);

>> I_movesult=zeros(size(I));

>> H=size(I);

>> Move_x=50;

>> Move_y=50;

>>

I_movesult(Move_x+1:H(1),Move_y+1:H(2))=I(1

:H(1)-Move_x,1:H(2)-Move_y);

>> figure,imshow(uint8(I_movesult))

(b)图像比例变换

J=imread('trees.tif');

>> figure,imshow(J);

>> X1=imresize(J,2);

>> X2=imresize(J,0.5);

>> figure,imshow(X1)

>> figure,imshow(X2)

(C)图像旋转变换

>> I=imread('peppers.png');

>> figure,imshow(I)

>> X1=imrotate(I,30,'nearest');

>> figure,imshow(uint8(X1))

>> X2=imrotate(I,45,'nearest');

>> figure,imshow(uint8(X2))

>> X3=imrotate(I,60,'nearest');

>> figure,imshow(uint8(X3))

>> X4=imrotate(I,90,'nearest');

>> figure,imshow(uint8(X4))

(d)图像镜像变换

>> I=imread('forest.tif');

>> I=double(I);

>> figure,imshow(uint8(I));

>> H=size(I);

>> figure(2),

>> I2(1:H(1),1:H(2))=I(H(1):-1:1,1:H(2));

>> imshow(uint8(I2));

>> figure,imshow(uint8(I2));

>> I3(1:H(1),1:H(2))=I(1:H(1),H(2):-1:1);

>> figure,imshow(uint8(I3));

>> I4(1:H(1),1:H(2))=I(H(1):-1:1,H(2):-1:1);

>> figure,imshow(uint8(I4));

(e)图像切割

>> I1=imread('peppers.png');

>> I2=imcrop(I1,[75 68 220 100]);

>> imview(I2)

I3=imcrop(I1,[30 40 120 100]);

>> imview(I3)

(a)平移后的图像(b)放大后图像(b)缩小后的图像

(c)旋转30°后的图像旋转45°后的图像旋转60°后的图像旋转90°后的图像

(d)原始图像垂直镜像水平镜像对角镜像

(e)原始图像一次切割后图像二次切割后图像

4、练习灰度级插值法(p171)

>> I=imread('lena.bmp');

>> X1=imresize(I,1);

>> X2=imresize(I,1,'bilinear');

>> X3=imresize(I,1,'bicubic');

>> figure,imshow(X1)

>> figure,imshow(X2)

>> figure,imshow(X3)

最近邻差值法双线性插值法三次插值法

四、实验体会

在本次实验中掌握不同图像类型的转换,掌握了转换函数及其语法格式,如ind2rgb()函数将索引图像转换成真彩色。掌握图像代数运算和几何变换的方法,并通过多次不同的练习,明白了各种代数运算的差别像在乘法运算中如果使用的因数大于1,将会增强图像的亮度;如果缩放因数小于1,则会使图像变暗。掌握了灰度级插值法的实验方法并从图像中可以看出三次插值法的效果最好。

matlab图像处理综合实验实验报告

《数字图像处理》 实验报告 学院: 专业: 班级: 姓名: 学号:

实验一 实验名称:图像增强 实验目的:1.熟悉图像在Matlab下的读入,输出及显示; 2.熟悉直方图均衡化; 3.熟悉图像的线性指数等; 4.熟悉图像的算术运算及几何变换. 实验仪器:计算机,Matlab软件 实验原理: 图像增强是为了使受到噪声等污染图像在视觉感知或某种准则下尽量的恢复到原始图像的水平之外,还需要有目的性地加强图像中的某些信息而抑制另一些信息,以便更好地利用图像。图像增强分频域处理和空间域处理,这里主要用空间域的方法进行增强。空间域的增强主要有:灰度变换和图像的空间滤波。 图像的直方图实际上就是图像的各像素点强度概率密度分布图,是一幅图像所有像素集合的最基本统计规律,均衡化是指在每个灰度级上都有相同的像素点过程。 实验容如下: I=imread('E:\cs.jpg');%读取图像 subplot(2,2,1),imshow(I),title('源图像') J=rgb2gray(I)%灰度处理 subplot(2,2,2),imshow(J) %输出图像 title('灰度图像') %在原始图像中加标题 subplot(2,2,3),imhist(J) %输出原图直方图 title('原始图像直方图')

I=imread('E:\cs.jpg');%读取图像 subplot(1,2,1),imshow(I); theta = 30; K = imrotate(I,theta); subplot(1,2,2),imshow(K) 对数运算: I=imread('E:\dog.jpg'); subplot(2,2,1),imshow(I),title('源图像') J=rgb2gray(I)%灰度处理 subplot(2,2,2),imshow(J),title('灰度变换后图像') J1=log(1+double(J)); subplot(2,2,3),imshow(J1,[]),title('对数变换后') 指数运算: I=imread('E:\dog.jpg'); f=double(I); g=(2^2*(f-1))-1

Matlab图像的代数运算与逻辑运算

1.imresize函数可将图像调整为指定的大小,语法格式为A=imresize(B,[m,n]),将B图像调整为m行n列的像素大小,A为输出图片。 J=imread('C:\Users\Yang\Desktop\1.jpg'); J=imresize(J,[200,100]); %将图像调整为200行乘以100列个像素大小 imshow(J) -------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- 图像的代数运算 一.图像相加(imadd 函数) 图像是矩阵,图像与图像相加也就是矩阵的相加,两个矩阵对应元素相加,故图像大小和类型必须保持一致。图像与常数相加,是图像矩阵每个元素与该常数相加,相加之和(255为截断阈值)作为返回值。 格式:K=imadd(I,J); I,J是读入的两幅图像,二者中也可有一个是常数,K为相加之和。 I=imread('pears.png'); %读取图像 I=imresize(I,[300,300]);%调整图像尺寸 subplot(221),imshow(I); title('图1'); J=imread('peppers.png'); %读取图像 J=imresize(J,[300,300]);%调整图像尺寸 subplot(222),imshow(J); title('图2'); K1=imadd(I,J); subplot(223),imshow(K1); title('图像与图像相加') K2=imadd(J,100);

2.实验二 图像的基本运算

实验二 图像的基本运算 一、实验目的与要求 1. 掌握图像代数运算和几何变换的基本原理 2. 了解图像代数运算和几何变换的简单应用及MATLAB 实现 二、实验设备与软件 1. PC 计算机系统 2. MATLAB 软件,包括图像处理工具箱(Image Processing Toolbox) 3. 实验图片 三、实验原理及知识点 1.图像的代数运算 代数运算是指对两幅或两幅以上输入图像进行点对点的加、减、乘、除运算而得到目标图像的运算。图像处理代数运算的4种基本形式如下: 上式中,A(x,y)和B(x,y)是输入图像,C(x,y)是输出图像。 2.图像的缩放 数字图像的比例缩放是指将给定的图像在x 方向和y 方向按相同的比例a 缩放,从而得到一幅新的图像,又称为全比例缩放。如果x 方向和y 方向缩放的比例不同,则图像的比例缩放会改变图像像素间的相对位置,产生几何畸变。设原始图像中的点A 0(x 0,y 0)比例缩放后,在新图像中的对应点为A 1(x 1,y 1),则A 0(x 0,y 0)和A 1(x 1,y 1)之间的坐标关系可表示如下: 3.图像的旋转 设原始图像的任意点A 0(x 0,y 0)经旋转角度?以后得到新的位置A(x,y)。图 像的旋转可以用矩阵形式表示如下。 图像旋转之后也可以根据新点求解原始新点的坐标,其矩阵表示形式如下: 101010100000,10011x a x x ax y a y y ay ??????=? ? ???=? ? ???=? ? ????????? 即00cos sin 0sin cos 010011x x y y ββββ?????? ? ???=- ? ??? ? ?????????

实验报告二 Matlab图像代数运算和几何变换

实验二Matlab图像代数运算和几何变换 一、实验目的 1、掌握不同图像类型的转换 2、掌握图像代数运算和几何变换的方法; 3、掌握灰度级插值法的实验方法。 二、实验内容 1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither)(p69-73); 2、练习课本6.3.2(p139-p143)图像代数运算的内容; 3、练习图像平移 (p148),图像比例变换(p153),图像旋转(p156),图像镜像变换(p158),图像切割(p160)Matlab实现例题; 4、练习灰度级插值法(p171)。 三、实验步骤和结果 1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither) (1)mat2gray()函数 I=imread('rice.png'); >> J=filter2(fspecial('sobel'),I); >> K=mat2gray(J); >> imshow(I); >> figure,imshow(K) (2)、grayslice()函数 >> I=imread('snowflakes.png'); >> X=grayslice(I,16); >> imview(I) imview(X,jet(16)) (3)、rgb2ind()函数 > RGB=imread('peppers.png'); >> imshow(RGB); >> figure,imshow(RGB) >> [X,map]=rgb2ind(RGB,128); >> figure,imshow(X,map) (4)、im2bw()函数 >> load trees >> BW=im2bw(X,map,0.4); >> figure,imshow(X,map) >> figure,imshow(BW) (5)、ind2gray()函数 load trees >> I=ind2gray(X,map); >> figure,imshow(X,map) >> figure,imshow(I) (6)、dither()函数 >> RGB=imread('peppers.png'); >> [X,map]=rgb2ind(RGB,256); >> I=dither(RGB,map); >> BW=dither(I); >> imshow(RGB,map); >> figure,imshow(RGB,map); >> figure,imshow(BW) Result: (1)转换后图像(2)索引色图像

基础实验二 图像基本运算

基础实验二 图像基本运算 实验目的:熟悉图像的基本运算----代数运算和几何运算 一、实验内容: 1、选择两幅图像,一副是物体图像,一副是背景图像,采用正确的图像代数运算方法,分别进行图像叠加、混合图像的分离和图像的局部显示效果; 2、试将Lena 图像分别旋转45°和90°,与原图像相比,观察它们的区别。 二、实验原理: 1、代数运算是指对两幅图像或两幅以上输入图像进行点对点的加、减、乘和除运算而得到目标图像的运算; 2、图像旋转用矩阵表示如下: 00cos sin 0sin cos 010011x x y y ββββ????????????=-?????????????????? 三、实验方法及程序 1、选取两幅大小一样的灰度图像,将两幅图像进行加法、减法运算。 I = imread('e:/lena.jpg'); I = rgb2gray(I); J = imread('e:/flower.jpg'); I = im2double(I); J = im2double(J); K = I + 0.3*J; L = I - 0.3*J; Figure imshow(I); title('人物图'); figure imshow(J); title('背景图'); figure imshow(K); title('相加后的图'); figure imshow(L);

title('相减后的图'); 2、读取一幅图像,设置图像的旋转的角度分别为45°、60°和180°,采用图像旋转函数imrotate对图像进行旋转。 I = imread('e:/lena.jpg'); J = imrotate(I,45,'bilinear'); K = imrotate(I,60,'bilinear'); L = imrotate(I,180,'bilinear'); figure imshow(I); figure imshow(J); figure imshow(K); figure imshow(L); 四、实验结果分析 原始图旋转45度图

matlab数字图像处理实验

数字图像处理 实验指导书

目录 实验一MATLAB数字图像处理初步实验二图像的代数运算 实验三图像增强-空间滤波 实验四图像分割 3

实验一 MATLAB数字图像处理初步 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像间如何转化。 二、实验原理及知识点 1、数字图像的表示和类别 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。 图1 图像的采样和量化 根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: ➢亮度图像(Intensity images) ➢二值图像(Binary images)

MATLAB数字图像处理基础实验

MATLAB数字图像处理基础实验(转) 一、实验目的 1、复习MATLAB语言的基本用法; 2、掌握MATLAB语言中图象数据与信息的读取方法; 3、掌握在MATLAB中绘制灰度直方图的方法,了解灰度直方图的均衡化的方法。 二、实验原理 MATLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。作为强大的科学计算平台,它几乎能够满足所有的计算需求。 MATLAB软件具有很强的开放性和适用性。在保持内核不变的情况下,MATLAB可以针对不同的应用学科推出相应的工具箱(toolbox)。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、概率统计、信号处理、图像处理和物理仿真等,都在工具箱(Toolbox)家族中有自己的一席之地。在实验中我们主要用到MATLAB提供图象处理工具箱(Image Processing Toolbox)。 1、MATLAB与数字图像处理 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)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。 2、MATLAB语言的基本操作 MATLAB语言是一种运算纸型的运算语言,其特点就是与平时在运算纸上书写运算的形式相同,这使得它成为一种比较容易掌握的语言;其变量均以矩阵向量形式表示(单独一个数据可以认为是一维向量);其程序语法类似于C语言,只要有一点C语言基础的人可以很快掌握。针对数字图象处理的需要,可以重点掌握以下几个内容:矩阵、向量的输入和操作(包括如何输入一个矩阵,如何产生一个全零全一的矩阵,如何对一个矩阵的行列元素进行读取、写入);矩阵与向量的基本运算(包括加、减、点乘等) 以下主要介绍一下如何读取矩阵的指定行或指定列,举例说明: x=4:6%产生一个一维数组,范围从4到6,步长为1 x = 4 5 6 插入:通过对x进行插入运算创建矩阵A >> A=[x-3;x;x+3] %当然也可以用别的方法产生A矩阵此处只作为示例

数字图像处理 实验报告(完整版)

数字图像处理 实验一 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显示出来观察图像的特征。实验结果如下图: 源代码: >> I=imread('lily.tif') >>gg=im2bw(I,0.4);

实验二 图像的代数运算

实验二图像的代数运算 一、实验步骤 1.图像的加法运算 在MATLAB中,如果要进行两幅图像的加法,或者给一幅图像加上一个常数,可以调用imadd函数来实现。imadd函数将某一幅输入图像的每一个像素值与另一幅图像相应的像素值相加,返回相应的像素值之和作为输出图像。imadd函数的调用格式如下:Z = imadd(X,Y) 其中,X和Y表示需要相加的两幅图像,返回值Z表示得到的加法操作结果。 例如,以下代码使用加法操作将图2.1中的(a)、(b)两幅图像叠加在一起: I = imread(‘flower.tif’); J = imread(‘cross.tif’); K = imadd(I,J); imshow(K); %两幅图片尺寸大小一致% 图2.1 待叠加的两幅图像

图2.2 叠加后的图像效果 比较:待叠加的两幅图像和叠加后的图像效果 给图像的每一个像素加上一个常数可以使图像的亮度增加。例如,以下代码将增加图3(a)所示的RGB图像的亮度,加亮后的结果如图3(b)所示。 RGB = imread(‘rose.tif’); RGB2 = imadd(RGB,50); subplot(1,2,1);imshow(RGB); subplot(1,2,2);imshow(RGB2);

原图 加50 减50 亮度增加与变暗 2.图像的减法运算 在MATLAB中,使用imsubtract函数可以将一幅图像从另一幅图像中减去,或者从一幅图像中减去一个常数。imsubtract函数将一幅输入图像的像素值从另一幅输入图像相应的像素值中减去,再将这个结果作为输出图像相应的像素值。imsubtract函数的调用格式如下:Z = imsubtract(X,Y);其中,Z是X-Y操作的结果。

数字图像处理-实验报告(完整版)

数字图像处理 实验一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显示出来观察图像的特征。实验结果如下图: 源代码: >> I=imread('lily.tif') >>gg=im2bw(I,0.4); F>>igure, imshow(gg)

图像的代数运算(matlab编程实现,自己写的,有所不足,仅供参考)

图像的代数运算 一、设计目的 图像代数运算设计目的如下: 一是运用图像代数运算的相关知识降低同一场景的多幅图像中所含叠加性质的随机噪声。二是掌握检测多幅图像间的变化及运动的物体的方法。三是知道如何屏蔽掉图像的某些部分。由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势? 二、设计要求 1、自己编程实现所有算法,不得直接运用matlab函数,并与imadd、imsubtract、imdivide等函数进行效果比较。 2、在处理过程中请考虑:处理结果图像的像素值很可能超过图像数据类型所支持的最大值,尤其对于uint8类型的图像,溢出的情况。 三、设计内容 1、降低同一场景的多幅图像中所含叠加性质的随机噪声。 2、检测多幅图像间的变化及运动的物体。 3、屏蔽掉图像的某些部分。 4、由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?

四、设计方案 图像代数运算设计,根据已知的设计内容和要求我的方案如下:根据内容一我的方案是:首先读入一幅图像并对图像添加多种不同的随机噪声来生成同一场景多幅含随机噪声的图像。其次将得到噪声图像累加起来得到同一场景的多幅含叠加性质的随机噪声图像。最后通过对多幅图像求平均值的方法来降低同一场景的多幅图像中所含叠加性质的随机噪声(这里可将编程得到的图像求平均处理效果与调用imlincomp函数得到的处理效果比较)。 根据内容二我的方案是:先读入一幅图像并做运动模糊以及添加随机噪声处理来生成多幅运动和变化的图像。然后将得到的多幅运动变化图像与原图像相减来检测多幅图像间的变化及运动的物体。最后将编程得到的处理效果与调用imsubtract函数得到的处理效果进行比较。 根据内容三。。。。。。。。。

数字图像处理实验指导书

实验一数字图像处理编程基础 一、实验目的 1. 了解MATLAB图像处理工具箱; 2. 掌握MATLAB的基本应用方法; 3. 掌握MATLAB图像存储/图像数据类型/图像类型; 4. 掌握图像文件的读/写/信息查询; 5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法; 6. 编程实现图像类型间的转换。 二、实验原理 略。 三、实验容 1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。 2. 运行图像处理程序,并保存处理结果图像。 四、分析思考 归纳总结Matlab各个基本指令。 Dither 采用“抖动”方法从RGB 图像创建索引图像 grayslice 从灰度图像通过阈值处理创建索引图像 gray2ind 从灰度图像创建索引图像 ind2gray 从索引图像创建灰度图像 rgb2ind 从RGB 图像创建索引图像 ind2rgb 从索引图像创建RGB 图像 rgb2gray 从RGB 图像创建灰度图像

实验二 图像几何变换实验 一、实验目的 1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果; 2.掌握图像平移、剪切、缩放、旋转、镜像等几何变换的算法原理及编程实现; 3.掌握matlab 编程环境中基本的图像处理函数。 二、实验原理 1. 初始坐标为(,)x y 的点经过平移00(,)x y ,坐标变为(',')x y ,两点之间的关系为:00 ''x x x y y y =+⎧⎨=+⎩,以矩阵形式表示为: 00'10'01100 11x x x y y y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ 2. 图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为: '100'01010011x x y y -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ '100'01010011x x y y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ 3. 图像缩小和放大变换矩阵相同: '00'0010011X y x S x y S y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ 当1x S ≤,1y S ≤时,图像缩小;当1x S ≥,1y S ≥时,图像放大。 4. 图像旋转定义为以图像中某一点为原点以逆时针或顺时针方

数字图像处理实验报告图像增强处理与几何变换

实验图像增强处理与几何变换 一、实验目的 利用Matlab图像处理工具箱中的函数实现图像点处理、空间域平滑和锐化处理、彩色图像处理、几何处理,巩固其原理与计算方法学习,深化课程理论认知。 二、实验内容 1、图像点处理:灰度变换、直方图均衡化和直方图规定处理; 2、图像均值滤波和中值滤波、图像锐化处理; 3、图像几何变换处理; 4、图像彩色合成和彩色变换处理; 三、实验步骤 1、图像点处理:灰度变换、直方图均衡化和直方图规定处理; 1.1图像的灰度变换 启用MATLAB,输入以下代码运行 I= imread('cameraman-8.bmp','bmp'); figure; subplot(2,2,1), imshow(I); %获取图像直方图 subplot(2,2,2),imhist(I); [counts1,x1] = imhist(I);%观察Counts,x的值 subplot(2,2,3),stem(x1,counts1); %图像灰度变换 J=imadjust(I,[0.1 0.7],[0.0 0.9]); subplot(2,2,4), imshow (J); %对比灰度变换前后的图像及其直方图 figure; subplot(2,3,1),imshow(I); subplot(2,3,2),imshow(J); subplot(2,3,4),imhist(I); subplot(2,3,5),imhist(J); [counts2,x2] = imhist(J); subplot(2,3,6), stem(x2,counts2);

图 1.1.1 图 1.1.2 1.2图像直方图均衡化 启用MATLAB,输入以下代码运行 I=imread('cameraman-8.bmp','bmp') ; %直方图均衡化处理 J=histeq(I) ; %对比均衡化处理前后的图像及其直方图 figure(1),subplot(2,2,1),imshow(I),subplot(2,2,2),imshow(J); figure(1),subplot(2,2,3),imhist(I),subplot(2,2,4),imhist(J);

数字图像处理——实验二--图像的几何变换

实验二 图像的几何变换 一.实验目的及要求 掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像 和转置的基本原理及其MATLAB 编程实现方法。 二、实验设备 1.计算机; 2.MATLAB6.5; 三、实验内容及结果 (一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行 的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。 1. 图像缩放 Original Image e-- using the nearest neighbor mage-- using the bilinear inter 分析:imresize 函数功能:用于对图像做缩放处理 J1 = imresize(I, Scale, 'nearest') 即将图像I ,采用最近邻插值算法,放大(缩小)Scale 倍。 J2 = imresize(I, Scale, 'bilinear') 即将图像I ,采用双线性插值算法,放大(缩小)Scale 倍。 通过改变Scale 的大小,可以观察到生成的图像大小随之改变,且放大倍数越大,图像变得越模糊。 在放大相同倍数的情况下,可以观察到采用双线性插值算法的图像更为清晰。 2. 图像旋转

Original Image Rotated Image-- using the bilinear interpolation Rotated Image-- using the nearest neighbor interpolation 分析:imrotate 函数功能:用于对图像做旋转处理 J1 = imrotate(I, Theta, 'nearest') 即将图像I ,采用最近邻插值算法,绕图像的中心点旋转Theta 度, 正数表示逆时针旋转, 负数表示顺时针旋转,旋转后的图像超出的部分填充0(黑色)。 J2 = imrotate(I, Theta, 'bilinear', 'crop') 功能同上,不同的是采用了双线性插值算法,'crop'表示通过对旋转后的图像进行裁剪,保持旋转后输出图像的尺寸和输入图像的尺寸一样。 通过改变Theta 的大小,可以观察到生成的图像旋转角度随之改变,同时,采用双线性插值算法的图像更为清晰。 3.图像水平镜象

matlab 图像几何变换+答案

实验四:图像几何变换(编程报告) 一、实验目的 (1)学习几种常见的图像几何变换,并通过实验体会几何变换的效果; (2)掌握图像平移、剪切、缩放、旋转、镜像、错切等几何变换的算法原理及编 程实现 (3)掌握matlab编程环境中基本的图像处理函数 (4)掌握图像的复合变换 二、涉及知识点 (1)图像几何变换不改变图像像素的值,只改变像素所在的几何位置 (2)图像裁剪imcrop函数,语法格式为: B=imcrop(A);交互式用鼠标选取区域进行剪切 B=imcrop(A,[left top right bottom]);针对指定的区域[left top right bottom]进行剪切 (3)图像缩放imresize函数,语法格式为: B = imresize(A,m,method) 这里参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。 B = imresize(A,m,method)返回原图A的m倍放大的图像(m小于1时效果是 缩小)。 (4)图像旋转imrotate函数,语法格式为: B = imrotate(A,angle,’crop’),参数crop用于指定裁剪旋转后超出图像的部分。 三、实验内容 (1)将图像hehua.bmp裁剪成200X200大小 (2)制作动画,将一幅图像逐渐向左上角平移移出图像区域,空白的地方用白色 填充 (3)利用剪切图像函数制作动画 (4)将图像分别放大1.5倍和缩小0.8倍,插值方法使用双线性插值法,分别显 示图像。 (5)将图像水平镜像,再顺时针旋转45度,显示旋转后的图像。 (6)将图像分别进行水平方向30度错切,垂直方向45度错切,分别显示结果 四、实验环境 Windows下matlab编程环境 五、实验源代码及结果 1.f=imread('hehua.bmp'); figure; imshow(f); title('原图'); f2=imcrop(f,[50,50,250,250]); figure; imshow(uint8(f2)); title('裁剪后'); imwrite(f2,'d:/5/hehua1.bmp');

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

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

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

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

相关主题
相关文档
最新文档