数字图像处理第一次试验:图像的基本操作和基本统计指标计算
前言
为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!
一、实验目的
(1)熟悉MATLAB图像处理工具箱,在掌握MATLAB基本操作的基础上,本课程主要依靠图像处理工具箱验证和设计图像处理算法。对于初学者来说,勤学多练、书序MATLAB图像处理工具箱也是学好本课程的必经之路。
(2)了解计算图像的统计指标的方法及其在图像处理中的意义。
(3)了解图像的几何操作,如改变图像大小、剪切、旋转等。
二、实验主要仪器设备
(1)台式计算机或笔记本电脑
(2)MATLAB(安装了图像处理工具箱,即Image Processing Toolbox(IPT))
(3)典型的灰度、彩色图像文件
三、实验原理
(1)将一幅图像视为一个二维矩阵。
(2)利用MATLAB图像处理工具箱读、写和显示文件。
① 调用imread函数将图像文件读入图像数组(矩阵)。例如”I=imread(‘tire.tif’);”。其基本格式为:“A=imread(‘filename.fmt’)”,其中,A为二维矩阵,filename.为文件名,fmt为图像文件格式的扩展名。
② 调用imwrite函数将图像矩阵写入图像文件。例如“imwrite(A,’test_image.jpg’);”。其基本格式为“imwrite(a,filename.fmt)”。
③ 调用imshow函数显示图像。例如“imshow(‘tire.tif’);”。其基本格式为:I为图像矩阵,N为显示的灰度级数,默认时为256.
计算图像有关的统计参数。
四、实验内容
(1)利用MATLAB图像处理工具箱和Photoshop读、写和显示图像文件。
(2)利用MATLAB计算图像有关的统计参数。
五、实验步骤
(1)利用“读图像文件I/O”函数读入图像Italy.jpg。
(2)利用“读图像文件I/O”的iminfo函数了解图像文件的基本信息:主要包括filename(文件名)、FileModDate(文件修改时间)、Filesize(文件尺寸)、Format(文件格式)、FormatVersion(格式版本)、Width(图像宽度)、Height(图像高度)、BitDepth(每个像素的位深度)、ColorType(彩色类型)、CodingMethod(编码方法)等。
(3)利用“像素和统计处理”函数计算读入图像的二维相关系数(corr2函数)、确定像素颜色值(impixel函数)、确定像素的平均值(mean2函数)、显示像素信息(pixval函数)、计算像素的标准偏移(std2函数)等。
要求:参照例题2.1,对图像J加均值为0、方差为0.01的高斯白噪声形成有噪图像J1,即“J1=imnoise(J,’gaussian’,0,0.01);”,求J1的像素总个数、图像灰度的平均值、标准差、J和J1的互协方差和相关系数、J和K的互协方差和相关系数。
如果将方差加至0.1,重新计算上述统计参数。
(4)改变图像大小(imresize函数),旋转图像(imrotate函数)、对图像进行裁剪(imcrop函数)等,再对操作后的图像进行统计。
要求:参照例2.1,将图像I分别放大和缩小1.5倍、旋转30°,在对操作后的图像进行统计。
(5)将上述不同操作后的图像用“读图像文件I/O”函数分别写入各自的图像文件。
六、实验程序
I=imread('0.jpg');
subplot(3,3,1);
imshow(I);
A=imfinfo('0.jpg');
J=rgb2gray(I);
subplot(3,3,2);
imshow(J);
J1=imnoise(J,'gaussian',0,0.01);
subplot(3,3,3);
imshow(J1);
B=numel(J1);
ave=mean2(J1);
sd=std2(J1);
J2=im2double(J);
J3=im2double(J1);
Cfg=cov(J2,J3);
corrgfg=corr2(J2,J3);
s=size(J);
all_white=255*ones(s(1),s(2));
all_white_uint8=uint8(all_white);
K=imsubtract(all_white_uint8,J);
subplot(3,3,4);
imshow(K);
K1=im2double(K);
Cfg2=cov(J2,K1);
corrgfg2=corr2(J2,K1);
J4=imresize(I,0.2);
subplot(3,3,5);
imshow(J4);
J5=imrotate(I,30);
subplot(3,3,6);
imshow(J5);
RECT=[0 200 300 250];
J6=imcrop(I,RECT);
subplot(3,3,7);
imshow(J6);
imwrite(J1,'2.jpg');
imwrite(J,'3.jpg');
imwrite(K,'4.jpg');
imwrite(J4,'5.jpg');
imwrite(J5,'6.jpg');
imwrite(J6,'7.jpg');
运行结果:
令imnoise中设定的方差为0.1,运行结果如下:
再令imrotate的旋转角度为330度(即顺时针旋转30度,效果如下)
最终写入图像文件,结果如下图所示:
六、实验报告要求
(1)利用MATLAB图像处理工具箱读、写和显示文件,计算图像的有关统计参数的原理。
(2)记录、读取加噪、几何变换处理后的图像及图像的统计数据
(3)列出上述图像处理的程序
(4)回答思考题
(5)撰写心得和体会
七、预习要求
(1)了解MATLAB图像处理工具箱和Photoshop的基本功能。
(2)了解图像基本指标特征的含义
八、思考题
(1)说明图像的统计特征对图像处理的意义。
图像的种类很多,不同图像的用途和处理方法也不相同。图像处理算法往往针对一定特征(如颜色、纹理、形状、空间关系等)的图像,因此对图像特征的分析至关重要。图像是典型的二维随机信号,其统计特征对于进一步处理和分析是十分重要的。图像的统计特征是图像的一类基本特征。一些算法也是基于图像的统计指标设计的。图像是直观的,但处理的过程常常是抽象的。通过统计分析,可以得到某个图像区别于其他图像的许多参数指标。
(2)比较不同图像的统计特征的差别,并分析原因。
不同图像的尺寸、大小、颜色、纹理、形状等不同。
(3)讨论施加不同方差的噪声对图像统计参数产生的影响。
施加不同方差噪声,会改变图像的灰度平均值、协方差矩阵、灰度标准差。
(4)图像旋转后,图像的尺寸是否发生变化?如果数据增加,多余的数据是怎样补充的?对图像统计参数会产生怎样的影响?
由实验结果图6可以看出,图像旋转后,尺寸也会变化,多余数据用黑色补充,图像的大小等发生变化。