目录
图像处理实验(一) (1)
——MATLAB初步(2学时) (1)
图像处理实验(二) (3)
——图像运算(4学时) (3)
图像处理实验(三) (7)
——直方图(2学时) (7)
图像处理实验(四) (10)
——图像变换(2学时) (10)
图像处理实验(五) (12)
——图像增强(4学时) (12)
图像处理实验(六) (16)
——图像压缩(4学时) (16)
图像处理实验(一)
——MATLAB初步(2学时)
一、实验目的:
1.熟悉MATLAB的工作环境
2.掌握图像的读取和显示
3.如何得到一副图像的基本信息
4.图像类型的转化
二、实验原理
计算机只能处理数字图像,数字图像在计算机中是以矩阵的形式存储的。MA TLAB中能够处理四种类型的图形,分别是二值图像、灰度图像、索引图像以及彩色图像。每一种类型的图像的特征是不一样的,我们可以利用MATLAB中提供的图像类型转换函数进行相互转换。
三、实验步骤:
实验准备:先获取一些图片信息,包括二值图像,灰度图像,彩色图像
1.在MATLAB中利用imread函数读取一副图像
F=Imread(‘test.bmp’);
2.利用size函数得到这幅图像的行数和列数
Size f
3.利用whos函数得到这幅图像的基本信息
Whos(f)
4.利用imshow显示这幅图像
Imshow(f)
四、实验仪器
1.计算机;
2.MATLAB程序;
3.移动式存储器(软盘、U盘等)。
4.记录用的笔、纸。
五、实验报告内容
1.叙述实验过程;
2.提交实验的原始图像和结果图像。
图像处理实验(二)
——图像运算(4学时)
一、实验目的:
1. 熟悉MATLAB 的工作环境
2. 掌握图像的基本运算:点运算、代数运算以及几何运算
二、实验原理
数字图象处理的算法很多,有对图像进行线性运算的,也有对多个图像进行处理的,还有从图像中提取特征的。我们按照图像处理的输入输出形式,可以将图像处理的算法可分为一下三种形式。
1)单幅图像 → 单幅图像 。 2)多幅图像 →单幅图像。
3)单(或多)幅图像→ 数字或符号等。 一、点运算 1)点运算是简单而常用的一种技术。对于一幅输入图像,经过点运算得到一副输出图像,输出图像的每个像素的灰度值仅有相应输入像素的灰度值决定。
2)点运算的种类 (1)线性点运算
点运算由灰度变换函数(gray-scale transformation, GST )确定。
%%f2(线性点运算——增加亮度值) RGB=imread('flowers.tif'); RGB2=imadd(RGB,50); RGB3=imadd(RGB,100); subplot(1,3,1),imshow(RGB);
subplot(1,3,2),imshow(RGB2);
()()a 1,b 0,a 1,b 0,a 10a 1,a 0,B A A GST f D D f D D b α==+*==*=≠*>*<<*<函数为线性,即
显然,
若图象像素不发生变化;若图象所有灰度值上移或下移;若,输出图象对比度增强;若输出图象对比度减小;
若暗区域变亮,亮区域变暗,图象求补。
subplot(1,3,3),imshow(RGB3);
(2)非线性点运算
二、代数运算
代数运算是对两幅输入图像进行点对点的加,减,乘,除运算而得到输出图像的运算。图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需要的算术操作,还能为许多复杂的图像处理提供准备。
%%f3(加法运算:两图像相加)
i=imread('rice.tif');
j=imread('cameraman.tif');
k=imadd(i,j); 注意:图片具有相同的大小,如果不同可以在画板中修改属性subplot(1,3,1),imshow(i);
subplot(1,3,2),imshow(j);
subplot(1,3,3),imshow(k);
%%f4(减法运算—减背景)
rice=imread('rice.tif');
background=imopen(rice,strel('disk',15));
rice2=imsubtract(rice,background);
subplot(1,2,1),imshow(rice);
subplot(1,2,2),imshow(rice2);
%%f5(减法运算—图像相减)
rice=imread('rice.tif');
pout=imread('pout.tif');
c=imsubtract(rice,pout);
subplot(1,2,2),imshow(c);
%不能这样相减
%提示使用Z = imlincomb(1.0, X, -1.0, Y)
三、几何运算
几何运算可以改变图像中物体之间的空间关系。这种运算可以看成是图像内的各物体在图像内移动的过程。例如,物体的转动、扭曲、倾斜、拉伸等等,都是几何运算的结果。%%f9 (图像平移)
用translate函数也可以实现以上功能:
I = imread('lenna原始图片.png');
se = translate(strel(1), [25 25]);
J = imdilate(I,se);
imshow(I), title('Original')
figure, imshow(J), title('Translated');
但是它始终保持原图像大小,当图像向右下移动时,有部分图像被剪切掉了。
%%f10(投影变换)
I=imread(' lenna原始图片.png ');
udata=[0 1];
vdata=[0 1];
tform=maketform('projective',[0 0;1 0;1 1;0 1],...
[-4 2;-8 -3;-3 -5;6 3]);
[B,xdata,ydata]=imtransform(I,tform,'bicubic','udata',udata,...
'vdata',vdata,'size',size(I),'fill',128); subplot(1,2,1),imshow(udata,vdata,I),axis on;
subplot(1,2,2),imshow(xdata,ydata,B),axis on;
%%f11图像缩放1)图像放大1.25 当然也可以缩小i=imread('lenna原始图片.png ');
j=imresize(i,1.25);
imshow(i);
figure,imshow(j);
%%f13(图像旋转与裁剪)
i=imread(‘lenna原始图片.png ');
j=imrotate(i,60,'bilinear');
j1=imrotate(i,60,'bilinear','crop');
subplot(1,3,1),imshow(i);
subplot(1,3,2),imshow(j);
subplot(1,3,3),imshow(j1);
%%f14求一幅图像的梯度图像(边缘)
j=zeros(512,512); 注意图像的大小是512*512 [i map]=imread('灰度图片.gif ');
i=double(i);
a=0;b=0;
for m=1:511
for n=1:511
a=i(m,n)-i(m+1,n);
b=i(m,n)-i(m,n+1);
a=abs(a);b=abs(b);
if a>b
j(m,n)=a;
else
j(m,n)=b;
end
if j(m,n)>3
j(m,n)=0;
else
j(m,n)=255;
end
end
end
imshow(j,[0 255]);
三、实验步骤:
实验准备:先获取一些图片信息,包括二值图像,灰度图像,彩色图像,然后根据实验内容的提示在计算机上验证。
四、实验仪器
1.计算机;
2.MATLAB程序;
3.移动式存储器(软盘、U盘等)。
4.记录用的笔、纸。
五、实验报告内容
1.叙述实验过程;
2.提交实验的原始图像和结果图像。
图像处理实验(三)
——直方图(2学时)
一、实验目的:
灰度直方图是数字图像处理中很重要的元素。灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像增强。
二、实验步骤:
1、灰度直方图
(1)计算出一幅灰度图像的直方图
clear
close all
I=imread('004.bmp');
imhist(I)
title('实验一(1)直方图');
(2)对灰度图像进行简单的灰度线形变换,
figure
subplot(2,2,1)
imshow(I);
title('试验2-灰度线性变换');
subplot(2,2,2)
histeq(I);
(3)看其直方图的对应变化和图像对比度的变化。
原图像f(m,n) 的灰度范围[a,b] 线形变换为图像g(m,n),灰度范围[a’,b’]
公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)
figure
subplot(2,2,1)
imshow(I)
J=imadjust(I,[0.3,0.7],[0,1],1);
title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换');
subplot(2,2,2)
imshow(J)
subplot(2,2,3)
imshow(I)
J=imadjust(I,[0.5 0.8],[0,1],1);
subplot(2,2,4)
imshow(J)
(4) 图像二值化(选取一个域值,(5) 将图像变为黑白图像)figure
subplot(2,2,1)
imshow(I)
J=find(I<150);
I(J)=0;
J=find(I>=150);
I(J)=255;
title(' 实验一(4)图像二值化( 域值为150 )');
subplot(2,2,2)
imshow(I)
clc;
I=imread('14499.jpg');
bw=im2bw(I,0.5);%选取阈值为0.5
figure;
imshow(bw) %显示二值图象
%灰度图象的直方图数据
clc
clear
fn='rice.tif';
I=imread (fn);
J=I;
%计算灰度图象的直方图数据
L=256; %灰度级
Ps = zeros(L,1); %统计直方图结果数据
nk=zeros(L,1);
[row,col]=size(I);
n=row*col; %总像素个数
for i = 1:row
for j = 1:col
num = double(I(i,j))+1; %获取像素点灰度级
nk(num,1) = nk(num,1)+1; %统计nk
end
end
%计算直方图概率估计
for i=1:L
Ps(i,1)=nk(i,1)/n;
end
figure(1),subplot(3,1,1);
imshow(J),title('原图');
subplot(3,1,2),plot(nk),title('直方图(nk)');
subplot(3,1,3),plot(Ps),title('直方图(Ps)');
%figure(4),imhist(hist);
%p=imhist(hist); %生成直方图函数,返回灰度图象直方图数据%figure(5),plot(p);
四、实验仪器
5.计算机;
6.MATLAB程序;
7.移动式存储器(软盘、U盘等)。
8.记录用的笔、纸。
五、实验报告内容
3.叙述实验过程;
4.提交实验的原始图像和结果图像。
图像处理实验(四)
——图像变换(2学时)
一、实验目的
1了解图像变换的意义和手段;
2熟悉离散傅里叶变换、离散余弦变换的基本性质; 3熟练掌握图像变换的方法及应用; 4通过实验了解二维频谱的分布特点;
5通过本实验掌握利用MA TLAB 编程实现数字图像的变换。
二、实验原理
1应用各种离散变换进行图像处理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
2图像变换的基本原理
(1)傅立叶(Fourier )变换的定义
对于二维信号,二维Fourier 变换定义为:
二维离散傅立叶变换为:
图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。
(2)离散余弦变换(DCT )的定义
()()()()??
? ??+??? ??+=∑∑-=-=N y v N x u y x f N v u F N x N y c 212cos 212cos ,2,1010ππ 其逆变换为
()()()()??
? ??+??? ??+=∑∑-=-=N y v N x u v u F N y x f N x N y c 212cos 212cos ,2,1010ππ 离散余弦变换是图像压缩中常用的一个变换编码方法,任何实对称函数的傅里叶变换中
只含余弦项,就成为余弦变换,因此余弦变换是傅里叶变换的特例。余弦变换与傅里叶变换一样有明确的物理意义,是简化傅里叶变换的重要方法。
3利用MA TLAB软件实现数字图像傅立叶变换、离散余弦变换:
(1)二维离散傅立叶变换
I=imread(‘*.gif’); %读入原图像文件
imshow(I); %显示原图像
fftI=fft2(I); %二维离散傅立叶变换
sfftI=fftshift(fftI); %直流分量移到频谱中心
RR=real(sfftI); %取傅立叶变换的实部
II=imag(sfftI); %取傅立叶变换的虚部
A=sqrt(RR.^2+II.^2);%计算频谱幅值
A=(A-min(min(A)))/(max(max(A)-min(min(A)))*225); %归一化
figure; %设定窗口
imshow(A); %显示原图像的频谱
(2)离散余弦变换
参见课本第45页例3.3。
三、实验步骤
1.打开计算机,安装和启动MATLAB程序;程序组中“work”文件夹中应有待处理
的图像文件;
2.利用MatLab工具箱中的函数编制FFT频谱显示的函数;
3.a).调入、显示“实验一”获得的图像;图像存储格式应为“.gif”;
b)对这三幅图像做FFT并利用自编的函数显示其频谱;
c)讨论不同的图像内容与FFT频谱之间的对应关系。
4.记录和整理实验报告。
四、实验仪器
1计算机;
2 MA TLAB程序;
3移动式存储器(软盘、U盘等)。
4记录用的笔、纸。
五、实验报告
1叙述实验过程;
2提交实验的原始图像和结果图像。
六、思考题
1.傅里叶变换有哪些重要的性质?
2.图像的二维频谱在显示和处理时应注意什么?
图像处理实验(五)
——图像增强(4学时)
一、实验目的:
1.掌握通过直接灰度变化来实现图像增强——线性拉伸和非线性拉伸
2.掌握基于灰度直方图的图像增强方法:直方图均衡化、直方图规定化
3.掌握空间滤波增强技术——平滑滤波(邻域平均,中值滤波)
4.学会用Matlab 中的下列函数对输入图像进行上述5类运算;感受各种不同的图像处理方法对最终图像效果的影响。Imhist ;histeq ;nlfilter ;mean2;std2;fspecial ;filter2;medfilt2;
二.实验内容:
实验内容一:直接灰度变化来实现图像增强——分段线性拉伸
获取实验用图像:Fig3.10(b).jpg. 使用imread 函数将图像读入Matlab 。产生灰度变换函数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对原图像Fig3.10(b).jpg 进行处理,打印处理后的新图像。
实验内容二:直接灰度变化来实现图像增强——非线性拉伸
获取实验用图像:Fig3.10(b).jpg. 使用imread 函数将图像读入Matlab 。产生灰度变换函数T2,使得:
用T2对原图像
实验内容三:直方图均衡化(histogram equalization )以及直方图匹配(histogram matching )
1. 仔细阅读Matlab 帮助文件中有关以上函数的使用说明,能充分理解其使用方法并能
运用它们完成实验内容。
2. 将Fig3.20(a).jpg 图像文件读入Matlab ,对其作直方图均衡化和直方图匹配运算,显
示运算前后该图像的直方图,处理后的图像和灰度变换函数。指定的直方图如下:
1400×r r ≤5 7000-310×r 5<r ≤20
900-5×r 20<r ≤180 -1440+8×r 180<r ≤225 3060-12×r 225<r ≤255
n =
实验内容四:邻域平均以及中值滤波
将Fig5.10(a).jpg图像文件读入Matlab,用fspecial函数生成一3×3邻域平均窗函数,再用filter2函数求邻域平均,试比较与用nlfilter 函数求邻域平均的速度。最后用medfilt2函数对图像进行中值滤波。要求显示用各种方法处理后的结果。
三.实验步骤:
实验内容一
%1
figure;
subplot(4,3,1);
i=imread('Fig3.10(b).jpg');
i=im2double(i);
imshow(i);title('1');
%2
subplot(4,3,2);
r=[0:0.001:1];
s=[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)); plot(r,s);title('2p,');
subplot(4,3,3);
T1=[i<0.35].*i*0.3+[i<=0.65].*[i>=0.35].*(0.105+2.6333*(i-0.35))+[i>0.65].*(1+0.3*(i-1)); imshow(T1);title('2i,');
imwrite(T1,'Fig3.10(b)_T1.jpg','jpg');
实验内容二
%1
figure;
subplot(4,3,1);
i=imread('Fig3.10(b).jpg');
i=im2double(i);
imshow(i);title('1');
%2
subplot(4,3,4);
r=[0:0.001:1];
s=[r<=0.5].*(r.^5)*15.9744+[r>0.5].*((r-0.5).^0.2+0.12);
plot(r,s);title('3p,');
subplot(4,3,5);
T2=[i<=0.5].*(i.^5)*15.9744+[i>0.5].*((i-0.5).^0.2+0.12);
imshow(T2);title('3i,');
imwrite(T2,'Fig3.10(b)_T2.jpg','jpg');
实验内容三
%1
subplot(3,2,1);
i=imread('Fig3.20(a).jpg');
imhist(i);title('org hist');
subplot(3,2,2);
i=im2double(i);
imshow(i);title('org img');
subplot(3,2,3);
iee=histeq(i);
imhist(iee);title('hist hsit');
subplot(3,2,4);
imshow(iee);title('histed img');
r=1:255;
n=1400*r.*[r<=5]+[7000-310*r].*[r>5].*[r<=20]+[900-5*r].*[r>20].*[r<=180]+[8*r-1440].* [r>180].*[r<=225]+[3060-12*r].*[r<=255].*[r>225];
subplot(3,2,5);
ie=histeq(i,n);
ie=ie*255;
ie=uint8(ie);
imhist(ie);title('after histogram matching hist');
subplot(3,2,6);
imshow(ie);title('after histogram matching img');
figure;
subplot(3,2,1);
plot(r,n);title('2 :r ,n fuctoin');
此外:(直方图均衡化)来自幻灯片
i=imread('pout.tif');
subplot(1,2,1),imshow(i);
subplot(1,2,2),imhist(i);
i2=histeq(i);
figure,
subplot(1,2,1),imshow(i2);
subplot(1,2,2),imhist(i2);
实验内容四
%1
figure;
i4=imread('Fig5.10(a).jpg');
i4=im2double(i4);
subplot(3,2,1);
imshow(i4);title('4 :org img ');
h = fspecial('average',[3 3]); %生成一3×3邻域平均窗函数Y = filter2(h,i4); %求邻域平均
subplot(3,2,2);
imshow(Y);title('fspecial and filter img');
YY=medfilt2(i4); %中值滤波
subplot(3,2,3);
imshow(YY);title('medfilt2 img');
四、实验仪器
9.计算机;
10.MATLAB程序;
11.移动式存储器(软盘、U盘等)。
12.记录用的笔、纸。
五、实验报告内容
5.叙述实验过程;
6.提交实验的原始图像和结果图像。
图像处理实验(六)
——图像压缩(4学时)
一、实验目的
1.理解有损压缩和无损压缩的概念;
2.理解图像压缩的主要原则和目的;
3.了解几种常用的图像压缩编码方式。
4.利用MATLAB程序进行图像压缩。
5.
二、实验原理
1.图像压缩原理
图像压缩主要目的是为了节省存储空间,增加传输速度。图像压缩的理想标准是信息丢失最少,压缩比例最大。不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。
信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质上是减少这些冗余量。高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大的图像信息。
编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。
(1).冗余度压缩方法,也称无损压缩、信息保持编码或嫡编码。具体说就是解码图像和压缩编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。
(2)信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。也就是说解码图像和原始图像是有差别的,允许有一定的失真。
应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分为以下3类:(1)无损压缩编码种类
哈夫曼(Huffman)编码,算术编码,行程(RLE)编码,Lempel zev编码。
(2)有损压缩编码种类
预测编码,DPCM,运动补偿;
频率域方法:正交变换编码(如DCT),子带编码;
空间域方法:统计分块编码;
模型方法:分形编码,模型基编码;
基于重要性:滤波,子采样,比特分配,向量量化;
(3)混合编码。
有JBIG,H261,JPEG,MPEG等技术标准。
本实验主要利用MA TLAB程序进行离散余弦变换(DCT)压缩和行程编码(Run Length
Encoding,RLE)。
1)离散余弦变换(DCT)图像压缩原理
离散余弦变换DCT在图像压缩中具有广泛的应用,它是JPEG、MPEG等数据压缩标
准的重要数学基础。
和相同图像质量的其他常用文件格式(如GIF(可交换的图像文件格式),TIFF(标签图像
文件格式),PCX(图形文件格式))相比,JPEG是目前静态图像中压缩比最高的。JPEG比其他几种压缩比要高得多,而图像质量都差不多(JPEG处理的图像只有真彩图和灰度图)。正是由于其高压缩比,使得JPEG被广泛地应用于多媒体和网络程序中。JPEG有几种模式,其中最常用的是基于DCT变换的顺序型模式,又称为基本系统(Baseline)。
用DCT压缩图像的过程为:
(1)首先将输入图像分解为8×8或16×16的块,然后对每个子块进行二维DCT
变换。
(2)将变换后得到的量化的DCT系数进行编码和传送,形成压缩后的图像格
式。
用DCT解压的过程为:
(1)对每个8×8或16×16块进行二维DCT反变换。
(2)将反变换的矩阵的块合成一个单一的图像。
余弦变换具有把高度相关数据能量集中的趋势,DCT变换后矩阵的能量集中在矩阵的左上角,右下的大多数的DCT系数值非常接近于0。对于通常的图像来说,舍弃这些接近于0的DCT的系数值,并不会对重构图像的画面质量带来显著的下降。所以,利用DCT 变换进行图像压缩可以节约大量的存储空间。压缩应该在最合理地近似原图像的情况下使用最少的系数。使用系数的多少也决定了压缩比的大小。
在压缩过程的第2步中,可以合理地舍弃一些系数,从而得到压缩的目的。在压缩过程的第2步,还可以采用RLE和Huffman编码来进一步压缩。
2)行程编码(RLE)原理:
例如如下这幅的二值图像,
如果采用行程编码可以按如下格式保存
其中10和8表示图像的宽和高。在这个小例子中行程编码并没有起到压缩图像的作用。这是由于这个图的尺寸过小,当图像尺寸较大时行程编码还是不错的无损压缩方法。对于灰度图像和二值图像,用行程编码—般都有很高的压缩率。行程编码方法实现起来很容易,对于具有长重复值的串的压缩编码很有效,例如:对于有大面积的阴影或颜色相同的图像,使用这种方法压缩效果很好。很多位图文件格式都采用行程编码,如TIFF,PCX,GEM,BMP 等。
3.图像压缩编码的MA TLAB程序语句
1)利用DCT变换进行图像压缩的MATLAB程序
RGB = imread('*.tif');
I = rgb2gray(RGB);
J = dct2(I);
imshow(log(abs(J)),[]), colormap(jet(64)), colorbar
J(abs(J) < 10) = 0;
K = idct2(J);
figure,imshow(I)
figure,imshow(K,[0 255])
2)利用离散余弦变换进行JPEG图像压缩
I=imread(‘*.tif’); %读入原图像;
I=im2double(I); %将原图像转为双精度数据类型;
T=dctmtx(8); %产生二维DCT变换矩阵
B=blkproc(I,[8 8],’P1*x*P2’,T,T’); %计算二维DCT,矩阵T及其转置T’是DCT函数
P1*x*P2的参数
Mask=[1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0]; %二值掩膜,用来压缩DCT系数,只留下DCT系数中左上
角的10个
B2=blkproc(B,[8 8],’ P1.*x.’,mask); %只保留DCT变换的10个系数
I2= blkproc(B2,[8,8],’P1*x*P2’,T’,T); %逆DCT,重构图像
Subplot(1,2,1);
Imshow(I);title(‘原图像’);%显示原图像
Subplot(1,2,2);
Imshow(I2);title(‘压缩图像’);%显示压缩后的图像。对比原始图像和压缩后的图像,
虽然舍弃了85%的DCT系数,但图像仍然清晰(当然
有一些质量损失)
3)利用行程编码(RLE)进行图像压缩
I=checkerboard(10,2); %调入原图像
[m n]=size(I);
J=[];
for i=1:m
value=I(i,1);
num=1;
for j=2:n
if I(i,j)==value
num=num+1;
else
J=[J num value];
num=1;
value=I(i,j);
end
end
I=[J num value 0 0]; %添加的行判断位0 0
end
disp(‘原图像大小:’)
whos(‘I’);
disp(‘压缩图像大小:’)
whos(‘J’);
disp(‘图像的压缩比:’)
disp(m*n/length(J))
三、实验步骤
1打开计算机,启动MA TLAB程序;
2调入“实验一”中获取的数字图像,并进行数据的行程(RLE)编码压缩处理;
3 将原图像在Photoshop软件中打开,分别以不同的位图文件格式进行“另保存”,比较它们的数据量。
4记录和整理实验报告
四、实验仪器
1计算机;
2 MA TLAB、Photoshop等程序;
3移动式存储器(软盘、U盘等)。
4记录用的笔、纸。
五、实验报告内容
1叙述实验过程;
2提交实验的原始图像和结果图像。
六、思考题
1.图像中哪些信息是主要的,哪些信息是次要的?
2.简述离散余弦变换(DCT)和行程编码(RLE)的原理。
实验一 实验内容和步骤 练习图像的读取、显示和保存图像数据,步骤如下: (1)使用命令figure(1)开辟一个显示窗口 (2)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内显示、二值图像和灰度图像,注上文字标题。 (3)保存转换后的灰度图像和二值图像 (4)在同一个窗口显示转换后的灰度图像的直方图 I=imread('BaboonRGB.bmp'); figure,imshow(I); I_gray=rgb2gray(I); figure,imshow(I_gray); I_2bw=Im2bw(I_gray); figure,imshow(I_2bw); subplot(1,3,1),imshow(I),title('RGB图像'); subplot(1,3,2),imshow(I_gray),title('灰度图像'); subplot(1,3,3),imshow(I_2bw),title('二值图像'); imwrite(I_gray,'Baboongray.png'); imwrite(I_2bw,'Baboon2bw.tif'); figure;imhist(I_gray);
RGB 图 像灰度图 像二值图 像 050100150200250 500 1000 1500 2000 2500 3000
(5)将原RGB 图像的R 、G 、B 三个分量图像显示在figure(2)中,观察对比它们的特点,体会不同颜色所对应的R 、G 、B 分量的不同之处。 [A_RGB,MAP]=imread('BaboonRGB.bmp'); subplot(2,2,1),imshow(A_RGB),title('RGB'); subplot(2,2,2),imshow(A_RGB(:,:,1)),title('R'); subplot(2,2,3),imshow(A_RGB(:,:,2)),title('G'); subplot(2,2,4),imshow(A_RGB(:,:,3)),title('B'); (6)将图像放大1.5倍,插值方法使用三种不同方法,在figure(3)中显示放大后的图像,比较不同插值方法的结果有什么不同。将图像放大到其它倍数,重复实验;A=imread('BaboonRGB.bmp'); figure(3),imshow(A),title('原图像'); B=imresize(A,1.5,'nearest'); figure(4),imshow(B),title('最邻近法') C=imresize(A,1.5,'bilinear'); ; figure(5),imshow(C),title('双线性插值'); D=imresize(A,1.5,'bicubic'); figure(6),imshow(D),title('双三次插值 '); RGB R G B
数字图像处理 实验指导书 河北工业大学 计算机科学与软件学院
实验一 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) 索引图像(Indexed images) RGB图像(RGB images) (1) 亮度图像 一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。若图像是double类,则像素取值就是浮点数。规定双精度型归一化亮度图像的取值范围是[0,1] (2) 二值图像 一幅二值图像是一个取值只有0和1的逻辑数组。 (3) 索引图像 索引颜色通常也称为映射颜色,在这种模式下,颜色都是预先定义的,并且可供选用的一组颜色也很有限,索引颜色的图像最多只能显示256种颜色。 一幅索引颜色图像在图像文件里定义,当打开该文件时,构成该图像具体颜色的索引值就被读入程序里,然后根据索引值找到最终的颜色。(4) RGB图像 一幅RGB图像就是彩色像素的一个M×N×3数组,其中每一个彩色相
数字图像处理 实验指导书 学院:通信与电子工程学院 专业:电子信息工程 班级: 学号: 姓名: XX理工大学
实验一 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) 索引图像(Indexed images) RGB图像(RGB images)
数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰
度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:
遥感数字图像处理教程实习报告
《数字图像处理》 课程实习报告 ( 2011 - 2012学年第 1 学期) 专业班级:地信09-1班 姓名:梁二鹏 学号:310905030114 指导老师:刘春国 ---------------------------------------------- 实习成绩: 教师评语: 教 师
签 名 : 年月日 实习一:图像彩色合成实习 一、实验目的 在学习遥感数字图像彩色合成基础上,应用所学知识,基于遥感图像处 理软件ENVI进行遥感数字图像彩色合成。 二、实验内容 彩色合成:利用TM图像can_tmr.img,实现灰度图像的密度分割、多波 段图像的真彩色合成、假彩色合成和标准假彩色合成。 三、实验步骤 1、显示灰度图像主要步骤: 1、打开ENVI4.7,单击FILE菜单,在下拉菜单中选择open image file 选 项,然后在弹出的对话框中选择can_tmr.img文件,单击打开。 2、在可用波段列表对话框中,选中某一波段图像,选中gray scale单选按 钮,单击LOAD BAND按钮,显示一幅灰度图像。 3、在可用波段列表对话框中,选择其他某一波段图像,进行显示。
4、利用可用波段列表中的display按钮,同时有多个窗口显示多个波段图像。 5、链接显示。利用图像窗口tool菜单下的link子菜单link display实现多图 像的链接显示。如图所示:红色方框。 6、使用tool菜单下的Cursor Location/value和pixel Locator功能在确定像 素的值和位置。
实验一 Matlab图像处理工具箱的初步练习 一、实验目的和任务 1、初步了解与掌握MA TLAB语言的基本用法; 2、掌握MA TLAB语言中图象数据与信息的读取方法; 3、掌握在MA TLAB语言中图像类型的转换。 二、实验仪器、设备及材料 1、计算机 2、MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) 3、实验所需要的图片 三、实验原理 将数字图像的RGB表示转换为YUV表示; Y=0.30R+0.59G+0.11B U=0.70R-0.59G-0.11B V=-0.30R-0.59G+0.89B 四、实验步骤 1、阅读资料并熟悉MatLab的基本操作 2、读取MATLAB中的图象数据 3、显示MATLAB中的图象文件。用MATLAB在自建的文件夹中建立m文件,在这个文件的程序中,将MA TLAB目录下work文件夹中的tree.tif 图象文件读出,用到imread,imfinfo等命令,观察一下图象数据,了解一下数字图象在MA TLAB中的处理就是处理一个矩阵的本质。 4、将3中的图象显示出来(用imshow)。 5、对MA TLAB目录下work文件夹中的flowers.tif进行真彩色图像、索引色图像、灰度图像、二值图像之间的相互变换,并显示。 6、进行真彩色图像RGB(lenacolor.jpg)、YIQ图像、HSV图像、YcbCr图像的相互转换,并显示。 五、实验报告要求 1、描述实验的基本步骤; 2、用图片给出步骤4、5、6中取得的实验结果; 六、实验所需图片
lenacolor.jpg 七、实验注意事项 1、学生应提前预习 2、请大家在E盘建一个目录(matlab),在每次启动时都要将这个目录加入到MATLAB的搜索路径中,添加的方法为File----Set Path----Tool---Add Path 八、思考题 1、图像之间转换的基础是什么,为什么可以实现相互的转换 九、附录 MATLAB简介 (1) MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MA TLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因此用MA TLAB处理数字图像非常的方便。MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。 1、MATLAB中图象数据的读取 A、imread imread函数用于读入各种图象文件,其一般的用法为 [X,MAP]=imread(‘filename’,‘fmt’) 其中,X,MAP分别为读出的图象数据和颜色表数据,fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。 例:[X,MAP]=imread(’flowers.tif’,’tif’);
《数字图像处理》实验指导书 编写: 罗建军 海南大学三亚学院 10月
目录 一、概述 ....................................................................... 错误!未定义书签。 二、建立程序框架 ....................................................... 错误!未定义书签。 三、建立图像类 ........................................................... 错误!未定义书签。 四、定义图像文档实现图像读/写.............................. 错误!未定义书签。 五、实现图像显示 ....................................................... 错误!未定义书签。 六、建立图像处理类................................................... 错误!未定义书签。 七、实现颜色处理功能............................................... 错误!未定义书签。 (一) 亮度处理................................................................. 错误!未定义书签。 (二) 对比度处理............................................................. 错误!未定义书签。 (三) 色阶处理................................................................. 错误!未定义书签。 (四) 伽马变换................................................................. 错误!未定义书签。 (五) 饱和度处理............................................................. 错误!未定义书签。 (六) 色调处理................................................................. 错误!未定义书签。 八、实现几何变换功能............................................... 错误!未定义书签。 (一) 图像缩放................................................................. 错误!未定义书签。 (二) 旋转......................................................................... 错误!未定义书签。 (三) 水平镜像................................................................. 错误!未定义书签。 (四) 垂直镜像................................................................. 错误!未定义书签。 (五) 右转90度................................................................. 错误!未定义书签。 (六) 左转90度................................................................. 错误!未定义书签。 (七) 旋转180度............................................................... 错误!未定义书签。 九、实现平滑锐化功能............................................... 错误!未定义书签。 十、图像处理扩展编程............................................... 错误!未定义书签。
实验二MATLAB图像运算一、实验目的 1.了解图像的算术运算在数字图像处理中的初步应用。 2.体会图像算术运算处理的过程和处理前后图像的变化。 二、实验步骤 1.图像的加法运算-imadd 对于两个图像f x,y和 (x,y)的均值有: g x,y=1 f x,y+ 1 (x,y) 推广这个公式为: g x,y=αf x,y+β (x,y) 其中,α+β=1。这样就可以得到各种图像合成的效果,也可以用于两张图像的衔接。说明:两个示例图像保存在默认路径下,文件名分别为'rice.png'和'cameraman.tif',要求实现下图所示结果。 代码: I1 = imread('rice.png'); I2 = imread('cameraman.tif'); I3 = imadd(I1, I2,'uint8'); I4 = imadd(I1, I2,'uint16'); subplot(2, 2, 1), imshow(I1), title('?-ê?í???1'); subplot(2, 2, 2), imshow(I2), title('?-ê?í???2'); subplot(2, 2, 3), imshow(I3), title('8??í?????ê?'); subplot(2, 2, 4), imshow(I4), title('16??í?????ê?'); 结果截图:
2.图像的减法运算-imsubtract 说明: 背景图像可通过膨胀算法得到background = imopen(I,strel('disk',15));,要求实现下图所示结果。 示例代码如下: I1 = imread('rice.png'); background = imerode(I1, strel('disk', 15)); rice2 = imsubtract(I1, background); subplot(2, 2, 1), imshow(I1), title('?-ê?í???'); subplot(2, 2, 2), imshow(background), title('±3?°í???'); subplot(2, 2, 3), imshow(rice2), title('′|àíoóμ?í???'); 结果截图: 3.图像的乘法运算-immultiply
第一章. 遥感概念 遥感(Remote Sensing,简称RS),就是“遥远的感知”,遥感技术是利用一定的技术设备和系统,远距离获取目标物的电磁波信息,并根据电磁波的特征进行分析和应用的技术。 遥感技术的原理 地物在不断地吸收、发射(辐射)和反射电磁波,并且不同物体的电磁波特性不同。 遥感就是根据这个原理,利用一定的技术设备和装置,来探测地表物体对电磁波的反射和地物发射的电磁波,从而提取这些物体的信息,完成远距离识别物体。 图像 人对视觉感知的物质再现。图像可以由光学设备获取,如照相机、镜子、望远镜、显微镜等;也可以人为创作,如手工绘画。图像可以记录、保存在纸质媒介、胶片等等对光信号敏感的介质上。随着数字采集技术和信号处理理论的发展,越来越多的图像以数字形式存储。因而,有些情况下“图像”一词实际上是指数字图像。 物理图像:图像是人对视觉感知的物质再现 数字图像:图像以数字形式存储。 图像处理 运用光学、电子光学、数字处理方法,对图像进行复原、校正、增强、统计分析、分类和识别等的加工技术过程。 光学图像处理 应用光学器件或暗室技术对光学图像或模拟图像(胶片或图片)进行加工的方法技术 数字图像处理 是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。图像处理能做什么?(简答) 是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。数字图像处理主要目的:提高图像的视感质量,提取图像中所包含的某些特征或特殊信息,进行图像的重建,更好地进行图像分析,图像数据的变换、编码和压缩,更好图像的存储和传输。数字图像处理在很多领域都有应用。 遥感图像处理(processing of remote sensing image data )是对遥感图像进行辐射校正和几何纠正、图像整饰、投影变换、镶嵌、特征提取、分类以及各种专题处理的方法。常用的遥感图像处理方法有光学的和数字的两种。
数字图像处理程序
数字图像处理实验 图像处理实验(一)直方图 灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特 征更加明显。 灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像 增强。 1、灰度直方图 (1)计算出一幅灰度图像的直方图 clear close all I=imread('004.bmp'); imhist(I) title('实验一(1)直方图'); (2)对灰度图像进行简单的灰度线形变换, figure subplot(2,2,1) imshow(I); title('试验2-灰度线性变换'); subplot(2,2,2) histeq(I); (3)看其直方图的对应变化和图像对比度的变化。 原图像 f(m,n) 的灰度范围 [a,b] 线形变换为图像 g(m,n),灰度范围[a’,b’]公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a) figure subplot(2,2,1) imshow(I) J=imadjust(I,[0.3,0.7],[0,1],1); title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换 '); subplot(2,2,2) imshow(J) subplot(2,2,3) imshow(I) J=imadjust(I,[0.5 0.8],[0,1],1); subplot(2,2,4) imshow(J) (4) 图像二值化(选取一个域值,(5) 将图像变为黑白图像) figure subplot(2,2,1)
6.3实验步骤 (1)对彩色图像的表达和显示 * * * * * * * * * * * *显示彩色立方体* * * * * * * * * * * * * rgbcube(0,0,10); %从正面观察彩色立方体 rgbcube(10,0,10); %从侧面观察彩色立方 rgbcube(10,10,10); %从对角线观察彩色立方体 %* * * * * * * * * *索引图像的显示和转换* * * * * * * * * * f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %rgb图像转换成8色索引图像,不采用抖动方式 [X1,map1]=rgb2ind(f,8,'nodither'); figure,imshow(X1,map1); %采用抖动方式转换到8色索引图像 [X2,map2]=rgb2ind(f,8,'dither'); figure,imshow(X2,map2); %显示效果要好一些 g=rgb2gray(f); %f转换为灰度图像 g1=dither(g);%将灰色图像经过抖动处理,转换打二值图像figure,imshow(g);%显示灰度图像 figure,imshow(g1);%显示抖动处理后的二值图像 程序运行结果:
彩色立方体原图 不采用抖动方式转换到8色索引图像采用抖动方式转换到8色索引图像 灰度图像抖动处理后的二值图像
(2)彩色空间转换 f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %转换到NTSC彩色空间 ntsc_image=rgb2ntsc(f); figure,imshow(ntsc_image(:,:,1));%显示亮度信息figure,imshow(ntsc_image(:,:,2));%显示色差信息figure,imshow(ntsc_image(:,:,3));%显示色差信息 %转换到HIS彩色空间 hsi_image=rgb2hsi(f); figure,imshow(hsi_image(:,:,1));%显示色度信息figure,imshow(hsi_image(:,:,2)); %显示饱和度信息figure,imshow(hsi_image(:,:,3));%显示亮度信息 程序运行结果: 原图 转换到NTSC彩色空间
数字图像处理习题
一、判断题(10分)(正确√,错误×) 1.图像处理就是对图像信息进行加工处理,以满足人的视觉心理和实际应用的要求 (√) 2.在MA TLAB中,uint8是无符号8位整数(√) 3.在MA TLAB中,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)(√)
实验一数字图像处理编程基础 一、实验目的 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. 图像旋转定义为以图像中某一点为原点以逆时针或顺时针方
数字图像处理实验报告
实验一数字图像处理编程基础 一、实验目的 1. 了解MA TLAB图像处理工具箱; 2. 掌握MA TLAB的基本应用方法; 3. 掌握MA TLAB图像存储/图像数据类型/图像类型; 4. 掌握图像文件的读/写/信息查询; 5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法; 6. 编程实现图像类型间的转换。 二、实验内容 1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。 2. 运行图像处理程序,并保存处理结果图像。 三、源代码 I=imread('cameraman.tif') imshow(I); subplot(221), title('图像1'); imwrite('cameraman.tif') M=imread('pout.tif') imview(M) subplot(222), imshow(M); title('图像2'); imread('pout.bmp') N=imread('eight.tif') imview(N) subplot(223), imshow(N); title('图像3'); V=imread('circuit.tif') imview(V) subplot(224), imshow(V); title('图像4');
N=imread('C:\Users\Administrator\Desktop\1.jpg') imshow(N); I=rgb2gary(GRB) [X.map]=gary2ind(N,2) RGB=ind2 rgb(X,map) [X.map]=gary2ind(I,2) I=ind2 gary(X,map) I=imread('C:\Users\dell\Desktop\111.jpg'); subplot(231),imshow(I); title('原图'); M=rgb2gray(I); subplot(232),imshow(M); [X,map]=gray2ind(M,100); subplot(233),imshow(X); RGB=ind2rgb(X,map); subplot(234),imshow(X); [X,map]=rbg2ind(I); subplot(235),imshow(X); 四、实验效果
《数字图像处理》 实验报告 学院:信息工程学院 专业:电子信息工程 学号: 姓名: 2015年6月18日
目录 实验一图像的读取、存储和显示 (2) 实验二图像直方图分析 (6) 实验三图像的滤波及增强 (15) 实验四噪声图像的复原 (19) 实验五图像的分割与边缘提取 (23) 附录1MATLAB简介 (27)
实验一图像的读取、存储和显示 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像的显示。 二、实验原理 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 三、实验设备 (1) PC计算机 (2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) (3) 实验所需要的图片 四、实验内容及步骤 1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件设为flower.jpg语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。 7.用imread()读入图像:Lenna.jpg 和camema.jpg; 8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;
遥感数字图像处理教程 第一章概论 1.1图像和遥感数字图像 1.1.1图像和数字图像 本书定义图像为通过镜头等设备得到的视觉形象 根据人眼的视觉可视性可将图像分为可视图像和不可视图像。可视图像有图片、照片、素描和油画等,以及用透镜、光栅和全息技术产生的各种可见光图像。不可见图像包括不可见光成像和不可测量值 按图像的明暗程度和空间坐标的连续性,可将图像分为数字图像和模拟图像。数字图像是指用计算机存储和处理的图像,是一种空间坐标和灰度不连续、以离散数字原理表达的图像。在计算机内,数字图像表现为二维阵列,属于不可见图像。模拟图像指空间坐标和明暗程度连续变化的、计算机无法直接处理的图像,属于可见图像。 利用计算机技术,可以实现模拟图像和数字图像之间相互转换。把模拟图像转化为数字图像成为模/数转换,记作A/D转换; 数字图像最基本的单位是像素。像素是A/D转换中国的取样点,是计算机图像处理的最小单位;每个像素具有特定的空间位置和属性特征。 1.1.2遥感数字图像 遥感数字图像时数字形式的遥感图像。不同的地物能够反射或辐射不同长波的电磁波,利用这种特性,遥感系统可以产生不同的遥感数字图像。 遥感数字图像中的像素成为亮度值。亮度值的高低由遥感传感器所探测到的地物电磁波的辐射强度决定。由于地物反射或辐射电磁波的性质不同受大气的影响不同,相同地点不同图像的亮度值可能不同。 图像的每个像素对应三维世界中的一个实体、实体的一部分或多个实体。在太阳照射下,一些电磁波被这个实体反射,一些被吸收。反射部分电磁波到达传感器被记录下来,成为特定像素点的值。 1.2压感数字图像处理 1.2.1遥感数字图像处理概述 遥感数字图像处理是利用计算机图像处理系统对遥感图像中的像素进行系列操作的过程。遥感数字图像处理主要包括三个方面 1.图像增强,使用多种方法,如:灰度拉伸、平滑、瑞华、彩色合成、主成分变换K-T变换、代数运算、图像融合等压抑、去除噪声、增强整体图像或突出图像中的特定地物的信息,是图像更容易理解、解释和判读、 图像增强着重强调特定图像特征,在特征提取、图像分析和视觉信息的显示很有用。 2.图像校正:图像校正也成图像回复、图像复原,主要是对传感器或环境造成的退化图像进行模糊消除、噪声滤除、几何失真或非线性校正。 信息提取:根据地物光谱特征和几何特征,确定不同地物信息的提取规则。 1.2.2 遥感数字图像处理系统 数字图像处理需要借助数字图像处理系统来完成。一个完整的遥感数字图像处理系统包括硬件系统和软件系统两大部分。 1.硬件系统 包括计算机、数字化设备、大容量存储、显示器和输出设备以及操作台 1)计算机 是图像处理核心,大的内存和高的CPU速度有助于加快处理的进度。 2)数字化设备
数字图像处理 实验指导书
目录 实验一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)