数字图像处理实验一(附源程序)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理—实验一
一.实验内容:
图像灰度变换
二.实验目的:
学会用Matlab 软件对图像灰度进行变换;感受各种不同的灰度变换方法对最终图像效果的影响。
三.实验步骤:
1.获取实验用图像:rice.jpg. 使用imread 函数将图像读入Matlab 。
2.产生灰度变换函数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对原图像rice.jpg 进行处理,使用imwrite 函数保存处理后的新图像。
3.产生灰度变换函数T2,使得:
s =
用T2对原图像rice.jpg 进行处理,使用imwrite 保存处理后的新图像。 4.分别用 s = r 0.6; s = r 0.4; s = r 0.3 对kids.tiff 图像进行处理。为简便起见,请
使用Matlab 中的imadjust 函数。使用imwrite 保存处理后的新图像。
5.对circuit.jpg 图像实施反变换(Negative Transformation )。s =1-r; 使用
imwrite 保存处理后的新图像。
6.对rice.jpg 图像实施灰度切片(Gray-level slicing )。具体要求如下:
当0.2 ≤ r ≤ 0.4时,将r 置为0.6, 当r 位于其他区间时, 保持其灰度与原图像一样。使用imwrite 保存处理后的新图像。
7.利用灰度变换对Picture.jpg 做增强处理,突出图中的人物,改善整个图像过
于灰暗的背景。通过调节参数,观察变换后的图像与原始图像的变化,寻找出最佳的灰度变换结果。写出所采用的拉伸表达式。(提示:用imhist 观察图像直方图,利用分段线性灰度变换。
)
四.实验报告要求:
用imshow, plot等函数生成各类图像,提交原图像和各种变换函数的曲线,以及按各种变换函数处理后的图像。
%%%%%%%% 班级:0410201
%%%%%%%% 姓名:xx
%%%%%%%% 学号:041010329
clear all;
clc;
close all;
%%%%%%%%处理rice.png
a=imread('rice.png');
figure,imshow(a),title('原图');axis on;
a=double(a)/256;
figure,imhist(a),title('原直方图');axis on;
r=[0:0.001:1];
s1=[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)); %产生灰度变换函数T1
s2=[r<=0.5].*(r.^5)*15.9744+[r>0.5].*((r-0.5).^0.2+0.12); %产生灰度变换函数T2
a1=[a<0.35].*a*0.3+[a<=0.65].*[a>=0.35].*(0.105+2.6333*(a-0.35))+[a>0.65].*(1+0.3*(a-1));
a2=[a<=0.5].*(a.^5)*15.9744+[a>0.5].*((a-0.5).^0.2+0.12);
figure,imshow(a1),title('改后一');axis on;
figure,imhist(a1),title('改后直方图一');axis on;
figure,plot(r,s1),title('变换函数一');axis on;
figure,imshow(a2),title('改后二');axis on;
figure,imhist(a2),title('改后直方图二');axis on;
figure,plot(r,s2),title('变换函数二');axis on;
imwrite(a1,'改后rice一.jpg');
imwrite(a2,'改后rice二.jpg'); %%%%%%%%处理kids.tif
b=imread('kids.tif');
figure,imshow(b),title('原图');axis on;
b=double(b)/256;
figure,imhist(b);title('原直方图');axis on;
s1=r.^0.6;
s2=r.^0.4;
s3=r.^0.3;
b1=imadjust(b,[],[],0.6);
b2=imadjust(b,[],[],0.4);
b3=imadjust(b,[],[],0.3);
figure,imshow(b1),title('改后一');axis on; figure,imhist(b1),title('改后直方图一');axis on; figure,plot(r,s1),title('变换函数一');axis on; figure,imshow(b2),title('改后二');axis on; figure,imhist(b2),title('改后直方图二');axis on; figure,plot(r,s2),title('变换函数二');axis on; figure,imshow(b3),title('改后三');axis on; figure,imhist(b3),title('改后直方图三');axis on; figure,plot(r,s3),title('变换函数三');axis on; imwrite(b1,'改后kids一.jpg');
imwrite(b2,'改后kids二.jpg');
imwrite(b3,'改后kids三.jpg'); %%%%%%%%处理circuit.tif
c=imread('circuit.tif');
figure,imshow(c),title('原图');axis on;
c=double(c)/256;
figure,imhist(c),title('原直方图');axis on;
s=1-r;