绘制数字图像灰度直方图实验报告matlab实现
matlab 数字图像处理实验报告(五份)

《数字图像处理实验报告》实验一图像的增强一.实验目的1.熟悉图像在MATLAB下的读写、输出;2.熟悉直方图;3.熟悉图像的线性指数等;4.熟悉图像的算术运算和几何变换。
二.实验仪器计算机、MATLAB软件三.实验原理图像增强是指根据特定的需要突出图像中的重要信息,同时减弱或去除不需要的信息。
从不同的途径获取的图像,通过进行适当的增强处理,可以将原本模糊不清甚至根本无法分辨的原始图像处理成清晰的富含大量有用信息的可使用图像。
其基本原理是:对一幅图像的灰度直方图,经过一定的变换之后,使其成为均匀或基本均匀的,即使得分布在每一个灰度等级上的像素个数.f=H等或基本相等。
此方法是典刑的图像空间域技术处理,但是由于灰度直方图只是近似的概率密度函数,因此,当用离散的灰度等级做变换时,很难得到完全平坦均匀的结果。
频率域增强技术频率域增强是首先将图像从空间与变换到频域,然后进行各种各样的处理,再将所得到的结果进行反变换,从而达到图像处理的目的。
常用的变换方法有傅里叶变换、DCT变换、沃尔什-哈达玛变换、小波变换等。
假定原图像为f(x,y),经傅立叶变换为F(u,v)。
频率域增强就是选择合适的滤波器H(u,v)对F(u,v)的频谱成分进行处理,然后经逆傅立叶变换得到增强的图像。
四.实验内容及步骤1.图像在MATLAB下的读写、输出;实验过程:>> I = imread('F:\image\624baf9dbcc4910a.jpg');figure;imshow(I);title('Original Image');text(size(I,2),size(I,1)+15, ...'IMG_20170929_130307.jpg', ...'FontSize',7,'HorizontalAlignment','right');Warning: Image is too big to fit on screen; displaying at 25% > In imuitools\private\initSize at 86In imshow at 196Original Image2.给定函数的累积直方图。
数字图像处理matlab版实验报告

数字图像处理实验报告(matlab版)一.实验目的:熟悉数字图像处理中各种椒盐噪声的实质,明确各种滤波算法的的原理。
进一步熟悉matlab的编程环境,熟悉各种滤波算法对应的matlab函数。
实验结果给以数字图像处理课程各种算法处理效果一个更直观的印象。
二.实验原理:1.IPT(图像处理工具箱)基本函数介绍1. imread函数该函数用于从图形文件中读出图像。
格式A=IMRAED(FILENAME,FMT)。
该函数把FILENAME 中的图像读到A中。
若文件包含一个灰度图,则为二维矩阵。
若文件包含一个真彩图(RGB),则A为一三维矩阵。
FILENAME指明文件,FMT指明文件格式。
格式[X,MAP]=IMREAD(FILENAME,FMT).把FILENAME中的索引图读入X,其相应的调色板读到MAP中.图像文件中的调色板会被自动在范围[0,1]内重新调节。
FMT的可能取值为jpg 或jpeg,tif或tiff,bmp,png,hdf,pcx,xwd。
2.imwrite函数该函数用于把图像写入图形文件中。
格式IMWRITE(A,FILENAME,FMT)把图像A写入文件FILENAME中。
FILENAME指明文件名, FMT指明文件格式。
A既可以是一个灰度图,也可以是一个真彩图像。
格式IMWRITE(X,MAP,FILENAME,FMT)把索引图及其调色板写入FILENAME中。
MAP必须为合法的MATLAB调色板,大多数图像格式不支持多于256色的调色板。
FMT的可能取值为tif或tiff,jpg或jpeg,bmp,png,hdf,pcx,xwd。
3. imshow函数显示图像。
格式IMSHOW(I,N).用N级离散灰度级显示灰度图象I。
若省略N,默认用256级灰度显示24位图像,64级灰度显示其他系统。
格式IMSHOW(I,[LOW HIGH]),把I 作为灰度图显示。
LOW值指定为黑色,HIGH指定为白色,中间为按比例分布的灰色。
数字图像处理实验报告-基于Matlab

华东师范大学电子工程系2017.6实验1:图像灰度级修正【实验目的】掌握常用的图像灰度级修正方法(灰度变换法和直方图均衡化),加深对直方图的理解。
观察图像的增强效果,对灰度级修正前后的图像加以比较。
【实验内容】1)编程实现图像的灰度变换,改变图像的输入、输出映射参数范围(线性拉伸和反比);2)修改参数gamma值(大于、小于、等于1),观察处理结果;3)对图像直方图作均衡化处理,显示均衡前后的图像及其直方图。
【实验代码】original=imread('lena.bmp');linstr=imadjust(original,[0.3 0.7],[0 1]); %线性拉伸opposite=imadjust(original,[0 1],[1 0]); %反比above=imadjust(original,[0 1],[0 1],2); %gamma>1equal=imadjust(original,[0 1],[0 1],1); %gamma=1below=imadjust(original,[0 1],[0 1],0.5); %gamma<1subplot(3,3,1);imshow(original);title('原图像');subplot(3,3,2);imshow(linstr);title('线性拉伸');subplot(3,3,3);imshow(opposite);title('反比');subplot(3,3,4);imshow(above);title('gamma>1');subplot(3,3,5);imshow(equal);title('gamma=1');subplot(3,3,6);imshow(below);title('gamma<1');subplot(3,3,7);imhist(original);title('原图像直方图'); histequal=histeq(original);%对图像均衡化subplot(3,3,8);imshow(histequal);title('均衡后的图像'); subplot(3,3,9);imhist(histequal);title('均衡图像的直方图'); axis([0 256 0 2000]);【输出图像】【实验思考】根据以下图片以及实验结果可知gamma>1时图像整体变暗,灰度级整体变小;gamma<1时图像整体变亮,灰度级整体变小;而gamma=1时,图像维持不变。
数字图像处理实验报告(图像灰度变换处理)

数字图像处理实验报告班级:姓名:学号:数字图像处理实验报告一.实验名称:图像灰度变换二.实验目的:1 学会使用Matlab;2 学会用Matlab软件对图像灰度进行变换,感受各种不同的灰度变换方法对最终图像效果的影响。
三.实验原理:Matlab中经常使用的一些图像处理函数:读取图像:img=imread('filename'); //支持TIFF,JPEG,GIF,BMP,PNG,XWD等文件格式。
显示图像:imshow(img,G); //G表示显示该图像的灰度级数,如省略则默认为256。
保存图片:imwrite(img,'filename'); //不支持GIF格式,其他与imread相同。
亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]); //将low_in至high_in之间的值映射到low_out至high_out之间,low_in 以下及high_in以上归零。
绘制直方图:imhist(img);直方图均衡化:histeq(img,newlevel); //newlevel表示输出图像指定的灰度级数。
像平滑与锐化(空间滤波):w=fspecial('type',parameters);imfilter(img,w); //这两个函数结合将变得十分强大,可以实现photoshop里的任意滤镜。
图像复原:deconvlucy(img,PSF); //可用于图像降噪、去模糊等处理。
四.实验步骤:1.获取实验用图像:Fig3.10(b).jpg. 使用imread函数将图像读入Matlab。
2.产生灰度变换函数T1,使得:0.3r r < 0.35s = 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进行处理,打印处理后的新图像。
数字图像处理实验 图像生成及取反 图像亮(灰)度变换

数字图像处理实验报告实验一图像处理入门实验:图像生成及取反1、【实验目的】了解matlab有关图像的基本操作,如图像的读写,显示等。
熟悉调试环境。
2、【实验步骤】(1)Matlab workspace中生成一幅大小为512×512像素的8位灰度图, 背景为黑色,中心有一个宽40像素高20像素的白色矩形。
(2)将这幅图像保存为文件test.bmp。
•从文件test.bmp中读出图像到变量I。
•在Matlab图形界面中显示变量I所代表的图像。
•将获得的图像的格式分别转换为“*.tif”、“*.jpg”的格式保存,检查图像文件数据量的大小。
•将图片保存或拷贝到MATLAB程序组根目录的“work”文件夹中,以便后面的实验利用。
•将test.bmp 编程取反,观察效果。
3、【实验源码】(1)图像生成B=zeros(512,512)(2) 在图像中生成宽40像素高20像素的白色矩形for i=246:266for j=246:266B(i,j)=1;endend(3)图像保存imwrite(B,'test.bmp')(4)读出图像到变量I并另存为“*.tif”、“*.jpg”的格式e=imread('test.bmp')imshow(e)imwrite(e,'test.tif')imwrite(e,'test.jpg')(5)将test.bmp 编程取反for j=1:512for k=1:512if(i(j,k)==255)i(j,k)=0;elsei(j,k)=255;end;endend4、【实验截图】查看文件大小将test.bmp 编程取反5、【实验小结】(1)通过本次实验,对Matlab软件处理图像的相关功能有了初步了解。
(2)在灰度图像的取反操作中,可以使用双重循环,对每一行每一列的象素值进行更改操作。
实验二图像亮(灰)度变换1、【实验目的】灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。
数字图象处理实验报告《matlab基本操作 》

武汉工程大学
《数字图像处理》实验报告2
专业班级
实验时间
学生学号
实验地点
学生姓名
指导教师
实验项目
数字图像基本操作
实验类别
基础性
实验学时
%读入原始图像
f=imread('pollen.tif');
%显示原始图像
subplot(3,2,1);imshow(f);
title('original image');
subplot(3,2,2);imhist(f);
title('original image histogram');
%将原始图像均衡化,目的是与后面的规定化做对比
subplot(121),imshow(a);
title('原图为:');
subplot(122),imshow(c); %显示处理后的图像
title('均衡化后的图为:');
通过以上变换后总的效果为:
%读入原始图像
f=imread('pollen.tif');
%显示原始图像
iptsetpref('ImshowAxesVisible','on')
c2=A2*(1/((2*pi)^0.5)*sig2); %设置c2=A2*(1/sqrt(2*pi)*sig)),即高斯函数的系数部分;
k2=2*(sig2^2); %设置指数部分的分母,即(1/2*sig^2),同上
灰度直方图

灰度直方图实验报告
1、设计目的
通过MATLAB仿真软件,实现灰度图像处理;统计这幅图像回灰度直方图,并显示原图,直方图;学习并熟悉MATLAB编程环境的一般操作和运用。
2、实验原理
统计一幅灰度图像中的所以灰度值的个数,并且显示出来。
利用matlab自带函数,可以方便的统计灰度图像的直方图。
3、实验仪器
PC机
4、实验步骤
打开一幅彩色图像,将其灰度化,并统计直方图,显示其原图像灰度图像以及灰度直方图。
5、实验结果
5.1.1 打开原图
imageName=strcat('example.bmp');%获取图像名称
I= imread(imageName); %读取彩色图像
figure(1);
% subplot(2,4,1);
imshow(I);
title('原图')
5.1.2 原图转化为直方图
huidu_example=rgb2gray(I); %转换为灰度图,huidu为灰度值
% subplot(2,4,5); %窗口显示灰度图
imshow(huidu_example);
title('原图转化为灰度图');
5.1.3 原图转化为灰度图的直方图
figure(2);%画出灰度直方图
imhist(huidu_example);
title('原图转化为灰度图的直方图');
6、实验结论及体会
通过对彩色图像灰度化的学习,运用MATLAB进行彩色图像灰度化。
进一步熟悉了MATLAB仿真平台使用方法,并且加深了对彩色图像处理的相关知识的了解。
实验一图像的灰度直方图实验

实验一图像的灰度直方图实验1实验目的:1)熟悉MATLAB软件界面和初步使用图像处理工具箱。
2)掌握图像格式转换和图像矩阵显示方法。
3)掌握图像灰度直方图的显示和灰度调整方法。
2实验内容:1)图像类型转换和不同图像显示方法图像类型转换:dither: 将灰度图像变成索引图像或将灰度图像变成二值图像。
[X,map]=gray2ind(I,n) ;n---灰度级数,缺省为64BW=dither(I)例子程序:clear ; %清除内存原有一切变量RGB=imread('gyy1.jpg'); % 把RGB图读入矩阵I=rgb2gray(RGB); %把RGB图变为灰度图[A,map]=gray2ind(I,128); %把灰度图变索引图BW=dither(I); %把灰度图变为二值图subplot(2,2,1),imshow(RGB);title('yuantu'); %显示原图subplot(2,2,2),imshow(A,map),title('xmap'); %显示索引图subplot(2,2,3),imshow(I),title('graytu'); %显示灰度图subplot(2,2,4),imshow(BW),title('BWtu'); %显示二值图gray2ind: 将二值图像转换为索引图像。
[X,map]=gray2ind(BW,n) ;n---灰度级数,缺省为64grayslice: 将灰度图像转为索引图像。
X=grayslice(I,n);im2bw: 将灰度图像、索引图像、真彩色图像转为二值图像。
BW=im2bw(I,level); BW=im2bw(X,map,level); BW=im2bw(RGB,level)level---- 归一化阈值,取值在[0,1]之间。
eg: BW=im2bw(X,map,0.6)im2double: 转换为双精度型。
数字图像处理实验报告

数字图像处理实验报告实验一数字图像基本操作及灰度调整一、实验目的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 --=12)对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围,如直接使用原图,则一部分细节可能丢失。
数字图像实验报告二图像的灰度变换与直方图均衡

实验二图像的灰度变换与直方图均衡一、实验目的1.理解图像灰度变换与直方图均衡的定义;2.掌握图像灰度变换与直方图均衡化的方法;3.学会利用matlab编程实现灰度变换和直方图均衡的方法。
二、实验内容1. 利用matlab语言直接编程实现图像的对比度调整;2. 利用matlab语言编程实现图像的反转;3. 利用matlab语言直接编程实现图像的二值化;4. 利用matlab语言直接编程实现图像的直方图均衡化处理。
三、实验步骤(一)利用matlab语言直接编程实现图像的对比度调整实验代码如下:A=imread('E:\实验报告\数字图像处理实验报告\数字图像实验报告二通信五班韩奇20110803520\lena.jpg');I=double(A);J=I*0.5+40;A1=uint8(J);figure(1);subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(A1);J=I*1+40;A1=uint8(J);figure(2);subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(A1);J=I*3+40;A1=uint8(J);figure(3);subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(A1);J=exp(I);A1=uint8(J);figure(4);subplot(1,2,1),imshow(A);subplot(1,2,2),imshow(A1); 生成图像如下:从图中可以看出,第一幅图相对于原图的对比度降低了,第二幅图相对于原图对比度提高了40个灰度级,第三幅图对比度提高太多,效果反而不好。
在三幅图中,第二幅图视觉效果最好,对比度明显又不至于太亮。
第四幅图是指数灰度变换。
(二)利用matlab语言编程实现图像的反转实验代码如下:A=imread('E:\实验报告\数字图像处理实验报告\数字图像实验报告二通信五班韩奇20110803520\lena.jpg');E=imadjust(A,[0.35 0.65],[1 0]);figure;imshow(E);生成图像如下:从图中可以看出,原来亮的部分经过反转之后变暗,暗的部分经过反转变亮。
图像灰度变换增强&直方图增强实验报告

实验二图像灰度变换增强&直方图增强一、实验目的1、结合实例学习图像灰度变换增强和直方图均衡化增强,并通过实验体会图像增强的效果;2、理解和掌握图像灰度变换增强和直方图均衡化增强的原理和应用,掌握利用MATLAB编程实现图像增强的方法。
二、实验内容1、图像的直方图的显示;2、图像灰度值调整到指定范围;3、图像直方图均衡化增强。
三、实验要求1、独立完成;2、编写MATLAB程序,并对程序中所调用函数的功能进行必要的说明(可用“help函数名”进行查询);3、调试运行后保存实验结果(注意保存的文件格式);4、完成实验报告。
四、实验原理1、图像对比度处理(灰度变换增强)由于图像的亮度范围不足或非线性会使图像的对比度不甚理想,可用像素幅值重新分配的方法来改善图像对比度,图像的对比度处理有线性变换、分段线性变换和非线性变换三种方法。
在MATLAB中,提供了调整灰度值至指定范围的函数imadjust,它的常见调用方法如下:J=imadjust(I):映射到[0,255]J=imadjust(I,[low_inhigh_in],[low_outhigh_out])J=imadjust(I,[low_inhigh_in],[low_outhigh_out],gamma)其中,I是输入图像,J是返回的调整后的图像,该函数把[low_in;high_in]的像素值调整到[low_out;high_out],而低于low_in的像素值映射为low_out,高于high_in的像素值映射为high_out。
(分段线性)Gamma描述了输入图像和输出图像之间映射曲线的形状,如果gamma〈l,则映射偏重更高数值(明亮)输出(指数);如果gamma>1,则映射偏重于更低数值(灰暗)输出(对数);如果gamma=1,则输入和输出之间的映射关系为一条直线(线性)。
2、灰度直方图(1)灰度直方图的定义简单地说,灰度直方图就是反映一幅图像中的灰度级与出现这种灰度的概率之间关系的图形。
灰度直方图,用MATLAB实现imhist

灰度直⽅图,⽤MATLAB实现imhist灰度直⽅图:灰度直⽅图描述了⼀幅图像的绘图统计信息,主要应⽤于图像分割和图像灰度变换等处理过程中。
从数学上说它是⼀个关于灰度的函数,如令x表⽰灰度值(⼀般0≤x≤255),则f(x)表⽰当x为特定灰度时,⼀幅图像上灰度值为x的像素的数量,要注意的是这⾥的函数f(x)是⼀个离散的函数。
从图形上来说,灰度直⽅图就是⼀个⼆维图,横坐标表⽰灰度值(灰度级别),纵坐标表⽰具有各个灰度值或者灰度级别的像素在图像中出现的次数或者概率;imhist⽬的:获取图像的灰度直⽅图。
⽤法:imhist( img );直接显⽰图像img的灰度直⽅图;imhist(img,n);显⽰⼀个统计n个灰度级信息的直⽅图,默认n为256;[counts, x] = imhist( img ) ;获取直⽅图信息,x为灰度级向量(⼀维),记录着图像中灰度的所有值,⽽counts也是⼀个向量(⼀维),⾥⾯记录着x 中对应灰度值出现的个数。
注:imhist只能统计灰度图像的直⽅图,⽽对于RGB图像则需要分别统计每个通道的直⽅图。
故使⽤imhist时,要将rgb图转换为灰度图。
clc;clear all;i=imread('lena.jpg');if(numel(size(i))==3) %判断图像是否⾮灰度图像; i=rgb2gray(i);endimhist(i); %⽤⾃带函数imhist实现;title('imhist');[m,n]=size(i);h=zeros(1,256); %⽣成⼀个1*256的0矩阵;for a=1:m for b=1:n h(i(a,b)+1)=h(i(a,b)+1)+1; %统计每个像素的数值,由于i(a,b)代表像素数值有0数值,⽽MATLAB中矩阵下标从1开始,所以⽤i(a,b)+1代替下标; endendfigure;bar(h); %⽤bar画图函数实现;axis([0 255 0 3000]); %控制bar的坐标范围,axis([Xmin Xmax Ymin Ymax]);title('histogram');xlabel('intensity');ylabel('frequency');实验结果如下:。
数字图像的直方图规定化处理实验matlab

实验总结
1.对程序要充分的了解,适当改动程序,对照程序和直方图之间的关系。
2.直方图均衡化处理后,图像的直方图较为平直,各灰度级的值相对均匀。由于灰度级具有均匀的概率分布,图像看起来更清晰了。
指导教师意见
〔三〕找出 的点对,并映射到 。
〔四〕求出 。
实验步骤
1.准备好的图片,并保存好或者选好MATLAB的工作路径
2.将参考程序稍做修改,并运行。
3.结果分析。
实验容
程序如下:
1.文件名:fc.m
A=imread('123.jpg');
I=rgb2gray(A);
J=histeq(I);
figure,imshow(A)
J=histeq(I,32);
[counts,*]=imhist(J);
Q=imread('123.jpg');
figure;imshow(Q);
title('原图像');
A=rgb2gray(Q);
figure;imhist(A);
title('原图像直方图');
M=histeq(A,counts);
实验原理
直方图规定化是用于产生处理后有特殊直方图的图像方法。
令 和 分别为原始图像和期望图像的灰度概率密度函数。对原始图像和期望图像均作直方图均衡化处理,应有:
, ,
由于都是作直方图均衡化处理,所以处理后的原图像的灰度概率密度函数 及理想图像的灰度概率密度函数 是相等的。因此,可以用变换后的原始图像灰度级S代替上式中的V,即 。利用此式可以从原始图像得到希望的图像灰度级。对离散图像,有
, ,
综上所述,数字图像的直方图规定化就是将直方图均衡化后的结果映射到期望的理想直方图上,使图像按人的意愿去变换。数字图像的直方图规定的算法如下:
数字图像灰度图像二值化实验报告matlab实现1

数字图像灰度图像二值化实验报告matlab实现数字图像处理实验报告实验二灰度图像的二值化处理学号姓名日期实验二灰度图像的二值化处理一、实验目的图像二值化是数字图像处理技术中的一项基本技术,二值化图像的显示与打印十分方便,存储与传输也非常容易,在目标识别、图像分析、文本增强、字符识别等领域得到广泛应用。
图像二值化是将灰度图像转化为只有黑白两类像素的图像,大多采用阈值化算法处理。
在不同的应用中,阈值的选取决定着图像特征信息的保留。
因此,图像二值化技术的关键在于如何选取阈值。
二、实验内容1、编程绘制数字图像的直方图。
2、灰度图像二值化处理。
三、实验要求1、自己选择灰度图像。
2、选择多种阈值分割算法,并比较和分析图像二值化处理的结果。
3、使用VC++编程序。
四、设计思想(阈值选取算法)灰度图像是指只含亮度信息,不含色彩信息的图像,将彩色图像转化成为灰度图像的过程称为图像的灰度化处理。
图像的二值化处理就是将图像上的点的灰度置为0或255,也就是使整个图像呈现出明显的黑白效果。
即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。
阀值分割选取算法有:典型的全局阀值算法的Otsu 算法、局部阀值方法中的Bersen算法、灰度拉伸法、直方图方法等等。
1.Otsu算法的设计思想:设阀值将图像分割成两组,一组灰度对应目标,另一组灰度对应背景,则这两组灰度值的类内方差最小,两组的类间方差最大。
对图像设阈值将图像分割成两组,一组灰度对应目标,另一组灰度对应背景,则这两组灰度值的类内方差最小,两组的类间方差最大。
2.Bersen算法的设计思想:把灰度阈值选取为随像素位置变化而变化的函数,它是一种动态选择阈值的自适应方法。
3.灰度拉伸算法设计思想:灰度拉伸又叫对比度拉伸,它是最基本的一种灰度变换,使用的是最简单的分段线性变换函数,它的主要思想是提高图像处理时灰度级的动态范围。
4.直方图算法的设计思想:把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。
数字图象处理实验要求(应用MATLAB语言实现)

数字图象处理实验要求(应用MA TLAB语言实现)实验一数字图象的读取与灰度直方图一、实验目的1、初步了解与掌握MA TLAB语言的基本用法;2、掌握MA TLAB语言中图象数据与信息的读取方法;3、掌握在MA TLAB中绘制灰度直方图的方法,了解灰度直方图的均衡化的方法。
二、实验原理MA TLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。
作为强大的科学计算平台,它几乎能够满足所有的计算需求。
MA TLAB软件具有很强的开放性和适用性。
在保持内核不便的情况下,MA TLAB可以针对不同的应用学科推出相应的工具箱(toolbox)。
目前,MA TLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、概率统计、信号处理、图像处理和物理仿真等,都在工具箱(Toolbox)家族中有自己的一席之地。
在实验中我们主要用到MA TLAB 提供图象处理工具箱(Image Processing Toolbox)。
1、MATLAB与数字图像处理MA TLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。
实际上MA TLAB 中的绝大多数的运算都是通过矩阵这一形式进行的。
这一特点也就决定了MA TLAB在处理数字图像上的独特优势。
理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。
二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。
而MA TLAB的长处就是处理矩阵运算,因此用MA TLAB处理数字图像非常的方便。
MA TLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。
matlab图像处理图像灰度变换,直方图变换

matlab图像处理图像灰度变换,直⽅图变换附录1 课程实验报告格式每个实验项⽬包括:1)设计思路,2)程序代码,3)实验结果,4)实验中出现的问题及解决⽅法。
实验⼀:直⽅图灰度变换 A :读⼊灰度图像‘debye1.tif ’,采⽤交互式操作,⽤improfile 绘制⼀条线段的灰度值。
imread('rice.tif');imshow('rice.tif'),title('rice.tif'); improfile,title('主对⾓线上灰度值')B:读⼊RGB图像‘flowers.tif’,显⽰所选线段上红、绿、蓝颜⾊分量的分布imread('flowers.tif'); imshow('flowers.tif'),title('flowers.tif');improfile,title('主对⾓线红绿蓝分量')C:图像灰度变化f=imread('rice.png');imhist(f,256); %显⽰其直⽅图g1=imadjust(f,[0 1],[1 0]); %灰度转换,实现明暗转换(负⽚图像) figure,imshow(g1)%将0.5到0.75的灰度级扩展到范围[0 1]g2=imadjust(f,[0.5 0.75],[0 1]);figure,imshow(g2)图像灰度变换处理实例:g=imread('me.jpg');imshow(g),title('原始图⽚');h=log(1+double(g)); %对输⼊图像对数映射变换h=mat2gray(h); %将矩阵h转换为灰度图⽚h=im2uint8(h); %将灰度图转换为8位图imshow(h),title('转换后的8位图');运⾏后的结果:实验⼆:直⽅图变换A:直⽅图显⽰I=imread('cameraman.tif'); %读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直⽅图title('原始图像直⽅图') %在原图直⽅图上加标题运⾏结果如下:例⼦:读⼊图像‘rice.png’,在⼀个窗⼝中显⽰灰度级n=64,128和256的图像直⽅图。
数字图像处理实验报告图像增强处理与几何变换

实验图像增强处理与几何变换一、实验目的利用Matlab图像处理工具箱中的函数实现图像点处理、空间域平滑和锐化处理、彩色图像处理、几何处理,巩固其原理与计算方法学习,深化课程理论认知。
二、实验内容1、图像点处理:灰度变换、直方图均衡化和直方图规定处理;2、图像均值滤波和中值滤波、图像锐化处理;3、图像几何变换处理;4、图像彩色合成和彩色变换处理;三、实验步骤1、图像点处理:灰度变换、直方图均衡化和直方图规定处理;1.1图像的灰度变换启用MATLAB,输入以下代码运行I= imread('cameraman-8.bmp','bmp');figure; subplot(2,2,1), imshow(I);%获取图像直方图subplot(2,2,2),imhist(I);[counts1,x1] = imhist(I);%观察Counts,x的值subplot(2,2,3),stem(x1,counts1);%图像灰度变换J=imadjust(I,[0.1 0.7],[0.0 0.9]);subplot(2,2,4), imshow (J);%对比灰度变换前后的图像及其直方图figure;subplot(2,3,1),imshow(I);subplot(2,3,2),imshow(J);subplot(2,3,4),imhist(I);subplot(2,3,5),imhist(J);[counts2,x2] = imhist(J);subplot(2,3,6), stem(x2,counts2);图 1.1.1图 1.1.21.2图像直方图均衡化启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp','bmp') ;%直方图均衡化处理J=histeq(I) ;%对比均衡化处理前后的图像及其直方图figure(1),subplot(2,2,1),imshow(I),subplot(2,2,2),imshow(J); figure(1),subplot(2,2,3),imhist(I),subplot(2,2,4),imhist(J);图 1.2 1.3直方图规定化启用MATLAB,输入以下代码运行I1=imread('TM5.bmp','bmp');I2=imread('TM3.bmp','bmp');%直方图规定化处理K1=histeq(I1,imhist(I2));%对比规定化处理前后的图像及其直方图figure;subplot(3,2,1),imshow(I1);subplot(3,2,2), imhist(I1);subplot(3,2,3),imshow(I2);subplot(3,2,4), imhist(I2);subplot(3,2,5),imshow(K1);subplot(3,2,6), imhist(K1);图 1.32、图像空间域平滑2.1 用均值滤波器实现图像空间域的平滑启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp','bmp');J=imnoise(I,'gaussian'); %添加高斯噪声K=imnoise(I,'salt & pepper'); %添加椒盐噪声M=imnoise(I,'speckle'); %添加乘性噪声H=ones(3,3)/9; %3*3的均值去噪模板%滤波去噪处理I1=imfilter(I,H);J1=imfilter(J,H);K1=imfilter(K,H);M1=imfilter(M,H) ;%对比线性滤波去噪处理前后的图像figure;subplot(2,4,1),imshow(I);title('原图');subplot(2,4,2),imshow(J); title('高斯噪声图像'); subplot(2,4,3),imshow(K); title('椒盐噪声图像'); subplot(2,4,4),imshow(M); title('乘性噪声图像'); subplot(2,4,6),imshow(J1); title('高斯噪声滤波图像'); subplot(2,4,7),imshow(K1); title('椒盐噪声滤波图像'); subplot(2,4,8),imshow(M1) ; title('乘性噪声滤波图像') ; 输出图像如下图 2.12.2 用中值滤波器实现图像空间域的平滑启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp');I1=imnoise(I,'gaussian');I2=imnoise(I,'salt & pepper',0.02);I3=imnoise(I,'speckle');%3×3中值滤波模板J=medfilt2(I,[3,3]);J1=medfilt2(I1,[3,3]);J2=medfilt2(I2,[3,3]);J3=medfilt2(I3,[3,3]);figure,subplot(2,4,1),imshow(I) ; title('原图') ;subplot(2,4,2),imshow(I1) ; title('添加高斯噪声') ;subplot(2,4,3),imshow(I2) ; title('添加椒盐噪声') ;subplot(2,4,4),imshow(I3) ; title('添加乘性噪声') ;subplot(2,4,6),imshow(J1) ;title('高斯噪声3*3中值滤波') ; subplot(2,4,7),imshow(J2) ;title('椒盐噪声3*3中值滤波') ; subplot(2,4,8),imshow(J3) ;title('乘性噪声3*3中值滤波') ;K=medfilt2(I, [5,5]); %5×5中值滤波模板K1=medfilt2(I1,[5,5]);K2=medfilt2(I2,[5,5]);K3=medfilt2(I3,[5,5]);figure;subplot(2,2,1),imshow(K); title('原图5*5中值滤波'); subplot(2,2,2),imshow(K1) ; title('高斯噪声5*5中值滤波') ; subplot(2,2,3),imshow(K2); title('椒盐噪声5*5中值滤波'); subplot(2,2,4),imshow(K3) ; title('乘性噪声5*5中值滤波'); 输出结果如下图 2.2.1图 2.2.22.3 图像空间域锐化启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp','bmp')H=fspecial('sobel')%用sobel算子做模板%锐化处理J=imfilter(I,H)%锐化处理前后图像对比figure,subplot(1,2,1),imshow(I),subplot(1,2,2),imshow(J); 输出图像如下图 2.33、图像几何变换3.1 缩放启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp', 'bmp') ;%放大图像J=imresize(I,2) ;%缩小图像K=imresize(I,0.5) ;%图像对比figure(1),subplot(),imshow(I),title('原图'),figure(2),subplot(),imshow(J),title('放大两倍的图'),figure(3),subplot(),imshow(K),title('缩小0.5倍的图') ;输出图像如下图 3.1.1 图3.1.2图 3.1.33.2旋转启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp', 'bmp') ;%旋转图像M=imrotate(I,45) ;%图像对比figure;subplot(1,2,1),imshow(I),subplot(1,2,2),imshow(M) ;输出图像如下图 3.24、彩色图像处理4.1彩色合成启用MATLAB,输入以下代码运行I=imread('peppers.bmp','bmp');J1=I; J2=I;J3=I; J4=I;J5=I;%改变J1、J2、J3、J4、J5中的波段次序,组合成新的波段合成J1(:,:,1)=I(:,:,2); J1(:,:,2)=I(:,:,3); J1(:,:,3)=I(:,:,1) ;J2(:,:,1)=I(:,:,1); J2(:,:,2)=I(:,:,3); J2(:,:,3)=I(:,:,2) ;J3(:,:,1)=I(:,:,2); J3(:,:,2)=I(:,:,1); J3(:,:,3)=I(:,:,3) ;J4(:,:,1)=I(:,:,3); J4(:,:,2)=I(:,:,2); J4(:,:,3)=I(:,:,1) ;J5(:,:,1)=I(:,:,3); J5(:,:,2)=I(:,:,1); J5(:,:,3)=I(:,:,2) ;%对比原图像I与新图像J1、J2、J3、J4、J5的彩色差异,理解假彩色合成figure,subplot(2,3,1),imshow(I),title('原图');subplot(2,3,2),imshow(J1),title('变换一') ;subplot(2,3,3),imshow(J2),title('变换二') ;subplot(2,3,4),imshow(J3),title('变换三') ;subplot(2,3,5),imshow(J4),title('变换四') ;subplot(2,3,6),imshow(J5),title('变换五');输出图像如下图4.1 4.2彩色变换启用MATLAB,输入以下代码运行I=imread('peppers.bmp','bmp');HSV=rgb2hsv(I) ;RGB=hsv2rgb(HSV) ;%对比彩色变换前后的图像figure;subplot(1,3,1),imshow(I),title('原图'),subplot(1,3,2),imshow(HSV),title('HSV图像'); subplot(1,3,3),imshow(RGB),title('RGB图像') ;输出结果如下图 4.2四、实验算法要点总结1、图像点处理直方图修正法通常分为直方图均衡化和直方图规定化两类2、图像均值滤波和中值滤波、图像锐化处理3、图像几何变换处理4、图像彩色合成和彩色变换处理通过映射函数将彩色图像或多光谱图像变换成新的三基色分量线性假彩色映射表示为:。
计算机图像处理基础实验3(matlab)

开课实验室:年月日学院年ຫໍສະໝຸດ 、专业、班姓名成绩
课程
名称
计算机图像处理
实验项目
名称
统计并显示图像的灰度直方图
指导教师
教师评语
教师签名:
年月日
一、实验目的
1、了解灰度直方图。
2、能够编程实现对灰度直方图的统计并显示。
3、掌握matlab中统计直方图函数imhist。
二、实验原理
1、用imread函数可以读出图像的矩阵,元素值即为灰度值。
end
bar(p),title('编程实现后的图像');
figure,imhist(f),title('imhist实现后的图像')
五、实验结果及分析
1、编程实现结果:
2、imhist函数的结果:
3、分析:
由图可见,两个处理方法结果基本一致,说明了编程与使用函数效果是一致的。
4、实验心得:
通过本次实验,我学会了运用matlab编程实现对灰度直方图的统计、显示,加深了对灰度直方图的认识。
2、灰度直方图是数字图像中各灰度值与其出现频数之间的统计关系。横坐标为灰度级,纵坐标为该灰度级出现的次数。
3、利用for循环结构,统计每个灰度级出现的次数。
三、程序流程
1、读出图像的数据矩阵,矩阵的大小。
2、构造一个1到254的函数,作为灰度值。
3、利用for循环统计每个灰度值出现的次数。
4、显示灰度值与出现次数的关系,极为灰度直方图。
5、用imhist函数显示图像的直方图。
四、程序代码
i=imread('pout.tif');
[m n]=size(f);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理
实验报告
实验一绘制直方图
学号
姓名
日期
实验一绘制直方图
一、实验内容
1、编程绘制数字图像的直方图。
2、直方图均衡处理。
二、实验步骤
1、设计思想或者流程图。
灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。
通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。
直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。
从而达到清晰图像的目的。
2、源程序并附上注释。
clear all
%一,图像的预处理,读入彩色图像将其灰度化
PS=imread('1.jpg'); %读入JPG彩色图像文件
imshow(PS) %显示出来
title('输入的彩色JPG图像')
imwrite(rgb2gray(PS),'PicSampleGray.bmp'); %将彩色图片灰度化并保存
PS=rgb2gray(PS); %灰度化后的数据存入数组
%二,绘制直方图
[m,n]=size(PS); %测量图像尺寸参数
GP=zeros(1,256); %预创建存放灰度出现概率的向量
for k=0:255
GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置
end
figure,bar(0:255,GP,'g') %绘制直方图
title('原图像直方图')
xlabel('灰度值')
ylabel('出现概率')
%三,直方图均衡化
S1=zeros(1,256);
for i=1:256
for j=1:i
S1(i)=GP(j)+S1(i); %计算Sk
end
end
S2=round((S1*256)+0.5); %将Sk归到相近级的灰度
for i=1:256
GPeq(i)=sum(GP(find(S2==i))); %计算现有每个灰度级出现的概率
end
figure,bar(0:255,GPeq,'b') %显示均衡化后的直方图
title('均衡化后的直方图')
xlabel('灰度值')
ylabel('出现概率')
%四,图像均衡化
PA=PS;
for i=0:255
PA(find(PS==i))=S2(i+1); %将各个像素归一化后的灰度值赋给这个像素
end
figure,imshow(PA) %显示均衡化后的图像
title('均衡化后图像')
imwrite(PA,'PicEqual.bmp');
3、程序运行结果比较。
(包括结论)
原始图像
均衡化后图象
原图像直方图
均衡化后直方图
通过原始图像和均衡化后的图像对比,均衡化后图像由彩色图像变为了灰度图像。
原始图像直方图与均衡化后直方图对比,均衡化后的直方图灰度值更加平均,在整幅图像中不在集中。
4、实验体会。
(心得体会、收获)
通过此次实验,我学会了对matlab的基本操作,能够在matlab下进行简单的编程、调试和修改操作。
同时我知道了直方图均衡化是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,就是把对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的图像数量大致相同。
通过图像间的对比,我发现变换后的图像某些细节会消失。