数字图像基本操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一数字图像基本操作
一、实验目的
1)掌握读、写图像的基本方法。

2)掌握MATLAB语言中图像数据与信息的读取方法。

3)理解图像灰度变换处理在图像增强的作用。

二、实验内容与要求
复制若干图形文件(如forest.tif和b747.jpg)至MATLAB目录下work文件夹中。

1.熟悉MATLAB语言中对图像数据读取,显示等基本函数
特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot ()函数、Figure()函数。

1)将MA TLAB目录下work文件夹中的forest.tif图像文件读出.用到imread,imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。

将这个图像显示出来(用imshow)。

尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。

2)将MA TLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray()将其转化为灰度图像,记为变量B。

2.图像灰度变换处理在图像增强的作用
1)读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入
图像进行灰度变换,比较相应的处理效果。

2)对B进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。

图1.1分段线性变换函数
三、实验原理与算法分析
1.灰度变换
灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。

1)图像反转
灰度级范围为[0, L-1]的图像反转可由下式获得
-
=1
L
s-
r
2)对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围,如直接
使用原图,则一部分细节可能丢失。

解决的方法是对原图进行灰度压缩,如对数变换:
s = c log(1 + r ),c 为常数,r ≥ 0
3) 幂次变换:
0,0,≥≥=γγc cr s
4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展
拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸:
其对应的数学表达式为:
四、实验步骤
1. 熟悉MATLAB 语言中对图像数据读取,显示等基本函数 1) 文件读取与信息显示:
load trees;
[X,map]=imread('forest.tif');
subimage(X,map); I=imread('forest.tif');
imshow(I);
imfinfo('forest.tif');
2) map 颜色矩阵的修改
[X,map]=imread('forest.tif');
map1=map+map;
subimage(X,map1);
3) 灰度图像的转化
RGB=imread('b747.jpg');
B=rgb2gray(RGB);
figure(1);imshow(RGB);title('原图');
figure(2);imshow(B);title('灰度图');
2. 图像灰度变换处理在图像增强中的作用
RGB=imread('b747.jpg');
B=rgb2gray(RGB);
figure(1);imshow(RGB);title('原图');
figure(2);imshow(B);title('灰度图');
%J = imadjust(I,[low_in; high_in],[low_out; high_out])
% 将low_in至high_in之间的值映射到low_out至high_out之间,low_in以下及high_in以上归零。

g1=imadjust(B,[0 1],[1 0]);
% imcomplement:对图像进行求反运算
g2=imcomplement(B);
g3=im2uint8(mat2gray(log(1+double(B))));
figure(3);imshow(g1);title('灰度调整图');
figure(4);imshow(g2);title('反色图');
figure(5);imshow(g3);title('对数变换图');
3.绘制图像灰度直方图的方法,对图像进行均衡化处理
1)对B进行如图所示的分段线形变换处理
x1=0:0.01:0.125;
x2=0.125:0.01:0.75;
x3=0.75:0.01:1;
y1=2*x1;
y2=0.25+0.6*(x2-0.125);.
y3=0.625+1.5*(x3-0.75);
x=[x1,x2,x3];
y=[y1,y2,y3];
plot(x,y)
title('分段线性曲线');
五、实验结果分析与讨论。

相关文档
最新文档