南昌大学实验报告
学生姓名:
学
号:
专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期:2017.3.15 实验成绩:
实验一 图像信号的数字化
一. 实验目的
(1) 通过本实验了解图像的数字化过程,了解数字图像的数据矩阵表示法。
(2) 掌握取样(象素个数)、量化与图像质量的关系。
二. 实验原理
在数字系统进行处理、传输和存储图像,必须把代表图像的连续信号转变为
离散信号,这样的变换过程称为图像信号的数字化。它包括两种处理:取样和量
化,对坐标值进行数字化称为取样,对幅值数字化称为量化,数字图像的质量很
大程度上取决于取样和量化中所用到的样本数和灰度级。
三. 实验内容
(1) 选取任意函数,实现 MATLAB 中的二维绘图。
(2) 选取任意函数,实现 MATLAB 中的三维绘图。
(3) 选取任意一副灰度图像,imread 进行读取,显示其像素值阵列。
(4) 使用 MATLAB 函数实现图像的缩放,观察图像采样的像素数对图像质量的
影响,观察“棋盘格”现象。
(5) 使用灰度分割减小灰度级来显示同一幅图像,二值图显示图像,观察图像
量化对图像质量的影响,观察“伪轮廓”现象。
四. 源程序及结果
(1)显示函数
y
8.0
e
5.0
x
sin
10
x
的二维图像。
程序:
x=0:0.01:10;
y=0.8*exp(-0.5*x).*sin(10*x);
plot(y);
结果:
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
0
200
400
600
800
1000
1200
(2)三维图像
程序:
[x,y]=meshgrid(-3:1/8:3);
z=peaks(x,y);
surfl(x,y,z);
shading interp
colormap(gray);
axis([-3 3 -3 3 -8 8])
结果:
5
0
-5
2
0
3
2
1
-2
-2
-3
0
-1
2
(3)读取图像
程序:
I=imread('2.jpg');
figure;
imshow(I);
结果:
(4)放大和缩小
程序:
A=imread('boy.jpg');
[M,N,Q]=size(A);
K=rgb2gray(A);
B=imresize(K,[50,50],'nearest');C=imresize(K,[100,100],'nearest');
D=imresize(K,[1000,1000],'nearest');
E=imresize(K,0.2,'nearest');%放大倍数为 0.1 倍
F=imresize(K,0.5,'nearest');%放大倍数为 0.2 倍
subplot(2,3,1);imshow(A);title('原图');
subplot(2,3,2);imshow(B);title('像素 50*50');
subplot(2,3,3);imshow(C);title('像素 100*100');
subplot(2,3,4);imshow(D);title('像素 1000*1000');
subplot(2,3,5);imshow(E);title('原图像缩小为 0.1 倍');
subplot(2,3,6);imshow(F);title('原图像缩小为 0.2 倍');hold on;figure;
结果:
3
原 图
像 素 50*50
像 素 100*100
像 素 1000*1000
原 图 像 缩 小 为 0.2倍
原 图 像 缩 小 为 0.5倍
(5)灰度分割
程序:
A=imread('620.jpg');
[M,N,Q]=size(A);
K=rgb2gray(A);
thresh=graythresh(K);
A1=histeq(K,32);A2=histeq(K,128);A3=histeq(K,256);
B1=im2bw(A1,thresh);B2=im2bw(A2,thresh);B3=im2bw(A3,thresh);
subplot(2,3,1);imshow(K,[0,31]);title('灰度级为 32 的图像');
subplot(2,3,2);imshow(K,[0,127]);title('灰度级为 128 的图像');
subplot(2,3,3);imshow(K,[0,255]);title('灰度级为 256 的图像');
subplot(2,3,4);imshow(B1,[]);title('灰度级 4 的二值化图');
subplot(2,3,5);imshow(B2,[]);title('灰度级 32 的二值化图');
subplot(2,3,6);imshow(B3,[]);title('灰度级 256 的二值化图');
结果:
4
灰 度 级 为 32的 图 像
灰 度 级 为 128的 图 像
灰 度 级 为 256的 图 像
灰 度 级 4的 二 值 化 图 灰 度 级 32的 二 值 化 图 灰 度 级 256的 二 值 化 图
五.结果分析
观察结果(1),使用 plot 函数可以轻松画出各种复杂的函数图形。
观察结果(2),在 matlab 中给定图形的范围,描述出图形的特征,就可以
画出其三维图形,十分方便。
观察结果(3),用 imread 函数可以将图像读入 matlab,然后用 imshow 函
数显示图像。
观察(4)对原图进行图片缩放的过程中,当像素数为 50*50(2500)的时
候,棋盘格现象比较突出;像素为 100*100(10000)的时候,棋盘格现象不是
很突出 ,观察图三 的变量工作 区,发现 实际原图像 的像素大小 为 185*194
(35890),显然可以看出我们对原图像做的工作只是缩小,并且缩小得越小,
棋盘格现象越严重,正印证了当量化级数一定时图像的采样像素数越低,块状现
象或是说棋盘格现象越明显,同时在 imresize 上直接改变图像大小,当图像缩
小为 0.2 倍,棋盘效果更明显。
观察(5)显然灰度级为 4,32,256 的二值图中背景均出现伪轮廓,且灰度级
越小伪轮廓范围越大,印证了当采样的像素数一定时,灰度级越大,伪轮廓现象
越明显。
5
6
南昌大学实验报告
学生姓名:
学
号:
专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期:2017.3.22 实验成绩:
实验二 图像灰度修正
一. 实验目的
1.掌握常用的图像灰度级修正方法,包括图象的线性和非线性灰度点运算和直方
图均衡化法,加深对灰度直方图的理解。
2.掌握对比度增强、直方图增强的原理,方法。
二. 实验原理
灰度变换在空间域中进行,它是将原图像的灰度级按照一定的线性或是非线
性函数映射到指定的灰度级上,起到图像增强、突出细节等作用,直方图均衡化
则是在频域上对灰度值的频谱密度分布更加均匀化,能起到增强对比度的作用。
三. 实验内容
1.任意选取一副图像,应用线性和非线性点运算,调整灰度的图像细节更容易看
清,显示灰度变换前后的图像。
2.使用分段线性灰度变换,实现任意图像的对比度拉伸。
3.任意选择一副灰度图像,实现图像的直方图均衡。显示原始图片,原始直方图
分布,直方图均衡后图像及直方图分布。
四. 源程序和结果
1.线性点运算和非线性点运算与分段线性灰度变换
程序:
clear;
I = imread('b.jpg');
B=2*I;
A=double(I);
A=40*(log(A+1));
H=uint8(A);
figure;imshow(I)
figure;
subplot(121);imshow(B);title('线性变换');
subplot(122);imshow(H);title('非线性变换');
7
f0=0;g0=0;%对图像灰度进行分段的点
f1=80;g1=100;
f2=150;g2=210;
f3=255;g3=255;
figure,plot([f0,f1,f2,f3],[g0,g1,g2,g3])
axis tight,xlabel('f'),ylabel('g')
title('intensitytransformation')%绘制变换曲线
r1=(g1-g0)/(f1-f0);
b1=g0-r1*f0;
r2=(g2-g1)/(f2-f1);
b2=g1-r2*f1;
r3=(g3-g2)/(f3-f2);
b3=g2-r3*f2;
[m,n]=size(I);
X=double(I);
for i=1:m
for j=1:n
f=X(i,j);
g(i,j)=0;
if(f>=f1)&&(f<=f2)
g(i,j)=r1*f+b2;
elseif(f>=f2)&&(f<=f3)
g(i,j)=r3*f+b3;
end
end
end
figure;
imshow(mat2gray(g))
结果:
原图:
8