绘制数字图像灰度直方图实验报告MATLAB实现
数字图像处理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实现
数字图像处理实验报告实验二灰度图像的二值化处理学号姓名日期实验二灰度图像的二值化处理一、实验目的图像二值化是数字图像处理技术中的一项基本技术,二值化图像的显示与打印十分方便,存储与传输也非常容易,在目标识别、图像分析、文本增强、字符识别等领域得到广泛应用。
图像二值化是将灰度图像转化为只有黑白两类像素的图像,大多采用阈值化算法处理。
在不同的应用中,阈值的选取决定着图像特征信息的保留。
因此,图像二值化技术的关键在于如何选取阈值。
二、实验内容1、编程绘制数字图像的直方图。
2、灰度图像二值化处理。
三、实验要求1、自己选择灰度图像。
2、选择多种阈值分割算法,并比较和分析图像二值化处理的结果。
3、使用VC++编程序。
四、设计思想(阈值选取算法)灰度图像是指只含亮度信息,不含色彩信息的图像,将彩色图像转化成为灰度图像的过程称为图像的灰度化处理。
图像的二值化处理就是将图像上的点的灰度置为0或255,也就是使整个图像呈现出明显的黑白效果。
即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。
阀值分割选取算法有:典型的全局阀值算法的Otsu 算法、局部阀值方法中的Bersen算法、灰度拉伸法、直方图方法等等。
1.Otsu算法的设计思想:设阀值将图像分割成两组,一组灰度对应目标,另一组灰度对应背景,则这两组灰度值的类内方差最小,两组的类间方差最大。
对图像设阈值将图像分割成两组,一组灰度对应目标,另一组灰度对应背景,则这两组灰度值的类内方差最小,两组的类间方差最大。
2.Bersen算法的设计思想:把灰度阈值选取为随像素位置变化而变化的函数,它是一种动态选择阈值的自适应方法。
3.灰度拉伸算法设计思想:灰度拉伸又叫对比度拉伸,它是最基本的一种灰度变换,使用的是最简单的分段线性变换函数,它的主要思想是提高图像处理时灰度级的动态范围。
4.直方图算法的设计思想:把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。
数字图像处理实验报告-基于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进行处理,打印处理后的新图像。
数字图象处理实验报告《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),同上
数字图像处理实验程序MATLAB
实验一内容(一)(1)彩色图像变灰度图像A=imread('1.jpg');B=rgb2gray(A);figuresubplot(1,2,1),imshow(A)title('原图')subplot(1,2,2),imshow(B)title('原图灰度图像')(2)彩色图像变索引图像A=imread('1.jpg');figuresubplot(1,2,1),imshow(A)title('原图')[X,map]=rgb2ind(A,128);subplot(1,2,2),imshow(X,map)title('原图索引图像')(3)彩色图像变二值图像A=imread('1.jpg');figuresubplot(1,2,1),imshow(A)title('原图')C=im2bw(A,0.2);subplot(1,2,2),imshow(C)title('原图二值图像')(4)灰度图像变索引图像(一)A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')C=grayslice(B,39);subplot(1,2,2),imshow(C)title('灰度变索引图像')(5)灰度图像变索引图像(二)A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')[X,map]=gray2ind(B,63);subplot(1,2,2),imshow(X,map)title('灰度变索引图像')(6)灰度图像变彩色图像A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')C=gray2rgb(B,map);subplot(1,2,2),imshow(C)title('灰度变彩色图像')内容(二)(1)灰度平均值A=imread('1.jpg');figureB=rgb2gray(A);subplot(1,2,1),imshow(B)title('灰度图像')B=double(B);[m,n]=size(B);sumg=0.0;for i=1:m;for j=1:n;sumg=sumg+B(i,j);endendavg=sumg/(m*n) % 均值maxg=max(max(B)) % 区域最大灰度ming=min(min(B)) % 区域最小灰度(2)彩色平均值figureimshow(A)title('彩色图像')A=double(A);[m,n]=size(A);sumg=0.0;for i=1:m;for j=1:n;sumg=sumg+A(i,j);endendavg=sumg/(m*n)squre=m*nmaxg=max(max(A))ming=min(min(A))内容(三)采样量化实验二图像变换傅里叶变换、反变换、I=imread('19.jpg');A=rgb2gray(I);x1=fft2(A);x2=fftshift(x1);x3=ifft(x1)/10;figure,subplot(1,4,1);imshow(A)title('原图');subplot(1,4,2);imshow(x1)title('频谱图');subplot(1,4,3);imshow(log(abs(x2)+1),[0 10]);title('直流分量移至频谱图中心');subplot(1,4,4);imshow(x3,[0 10])title('傅里叶反变换');DCT变换、反变换I=rgb2gray(X);subplot(1,3,1);imshow(I);title('原图');subplot(1,3,2);J=dct2(I);imshow(log(abs(J)),[0 20]);title('二维离散余弦变换');subplot(1,3,3);K=idct2(J)/20;imshow(K,[0 20]);title('二维离散反余弦变换');利用DCT变换压缩图像I=imread('19.jpg');A=rgb2gray(I);B=DCT2(A);B(abs(B)<0.1)=0;C=idct2(B)/255;figure,subplot(1,3,1);imshow(A);title('原图');subplot(1,3,2);imshow(B);title('二维离散余弦变换频谱图');subplot(1,3,3);imshow(C);title('压缩后图像');实验三图像增强(一)灰度图像增强(1)线性变换法clc;clear all;I=imread('19.jpg');A=rgb2gray(I);colormap;imshow(A);%设置图像倒数参数j=imadjust(A,[0 1],[1 0],1.5);figure;subimage(j)(2)灰度图像的非线性变换(之对数)I=imread('19.jpg');colormapimshow(I)J=double(I);J=45*log(J+1);I=uint8(J);figure,subimage(J)(二)直方图校正直方图均衡I=imread('19.jpg');B=rgb2gray(I);imshow(B,[40 255]);figure,imhist(B)title('直方图')J=imadjust(B,[0.15 0.9],[0 1]); figure,imhist(B,64)title('均衡直方图')滤波I=imread('19.jpg');figure,B=rgb2gray(I);C=imnoise(B,'salt & pepper',0.02);D=imfilter(B,fspecial('average',3)); E=medfilt2(B);subplot(1,3,2)imshow(D)title('均值滤波')subplot(1,3,3)imshow(D)title('中值滤波')subplot(1,3,1)imshow(C)title('加入椒盐噪声图像')锐化处理I=imread('19.jpg');A=rgb2gray(I);figure,subplot(2,3,1),imshow(A);title('原图');hs=fspecial('sobel');S=imfilter(A,hs);hp=fspecial('prewitt');P=imfilter(A,hs);A=double(A);%双精度型H=[0 1 0,1 -4 1,0 1 0];%拉普拉斯算子J=conv2(A,H,'same');K=A-J;subplot(2,3,2),imshow(K);title('拉普拉斯锐化图像');B=edge(A,'roberts',0.1);subplot(2,3,3),imshow(B);title('罗伯特锐化图像');subplot(2,3,4),imshow(S);title('sobel算子锐化图像');subplot(2,3,5),imshow(P);title('prewitt算子锐化图像');实验四放缩A=imread('19.jpg');imshow(A);title('原图')B=imresize(A,2)figure,imshow(B);title('二倍图')C=imresize(A,0.5)figureimshow(C)title('二分之一图')旋转A=imread('19.jpg');figuresubplot(1,4,1),imshow(A);title('原图像')B=imrotate(A,30,'nearest');subplot(1,4,2),imshow(uint8(B));title('旋转30度图像')C=imrotate(A,45,'nearest');subplot(1,4,3),imshow(uint8(C));title('旋转45度图像')D=imrotate(A,60,'nearest');subplot(1,4,4),imshow(uint8(D));title('旋转60度图像')镜像A1=imread('19.jpg');A1=double(A1);Figure,subplot(1,4,1),imshow(uint8(A1));H=size(A1);title('原像')A2(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,1:H(2),1:H(3));%垂直镜像subplot(1,4,2),imshow(uint8(A2));title('垂直镜像')A3(1:H(1),1:H(2),1:H(3))=A1(1:H(1),H(2):-1:1,1:H(3));%水平镜像subplot(1,4,3),imshow(uint8(A3));title('水平镜像')A4(1:H(1),1:H(2),1:H(3))=A1(H(1):-1:1,H(2):-1:1,1:H(3));%对角镜像subplot(1,4,4),imshow(uint8(A4));title('对角镜像')剪切A1=imread('19.jpg');A2=imcrop(A1,[75 68 100 110]);figuresubplot(1,2,1),imshow(A1);title('原像')subplot(1,2,2),imshow(A2);title('剪切后像')实验五阈值分割A=imread('19.jpg');figuresubplot(1,4,1),imshow(A);title('原图像')B=im2bw(A,91/255);subplot(1,4,2),imshow(B);title('阈值91的图像')C=im2bw(A,71/255);subplot(1,4,3),imshow(C);title('阈值71的图像')D=im2bw(A,140/255);subplot(1,4,4),imshow(D);title('阈值140的图像')边缘检测I=imread('19.jpg');A=rgb2gray(I);figuresubplot(1,4,1),imshow(A);title('原图像')B=edge(A,'sobel',0.1);%edge边缘检测函数subplot(1,4,2),imshow(B);title('sobel算子检测')C=edge(A,'roberts',0.1);%0.1为门限subplot(1,4,3),imshow(C);title('roberts算子检测')D=edge(A,'prewitt',0.1);subplot(1,4,4),imshow(D);title('prewitt算子检测')所谓数字图像处理[7]就是利用计算机对图像信息进行加工以满足人的视觉心理或者应用需求的行为。
MATLAB数字图像处理实验-推荐下载
imshow(a); title('灰度图');
figure; b=dct2(a); imshow(log(abs(b)),[]),colormap(jet(64)),colorbar; title('DCT 变换结果');
figure; b(abs(b)<10)=0; % idct c=idct2(b)/255; imshow(c); title('IDCT 变换结果'); 图象处理变换(三)小波变换 实验内容: 熟悉小波变换的概念和原理,熟悉 matlab 小波工具箱主要函数的使 用.利用二维小波分析对一幅图象作 2 层小波分解,并在此基础上提取各层的低 频信息实现图像的压缩. 程序如下:
(2)锐化:锐化的目的是增强被模糊的细节。锐化是用高通滤波器来完成,在 空域中,接近原点处为正,在远离原点处为负。 利用模板进行图象增强就是进行模板卷积。 1、 利用二个低通邻域平均模板(3×3 和 9×9)对一幅图象进行平滑,验证模 板尺寸对图象的模糊效果的影响。 2、 利用一个低通模板对一幅有噪图象(GAUSS 白噪声)进行滤波,检验两种 滤波模板(分别使用一个 5×5 的线性邻域平均模板和一个非线性模板:3×5 中值滤波器)对噪声的滤波效果。 3、 选择一个经过低通滤波器滤波的模糊图象,利用 sobel 和 prewitt 水平边 缘增强高通滤波器(模板)对其进行高通滤波图象边缘增强,验证模板的滤波 效果。 4、 选择一幅灰度图象分别利用 一阶 Sobel 算子和二阶 Laplacian 算子对其进 行边缘检测,验证检测效果。 二、实验步骤: 1、利用低通邻域平均模板进行平滑:
figure subplot(2,2,1) imshow(I) J=find(I<150); I(J)=0; J=find(I>=150); I(J)=255; title(' 实验一(4)图像二值化 ( 域值为 150 ) ');
数字图像实验报告二图像的灰度变换与直方图均衡
实验二图像的灰度变换与直方图均衡一、实验目的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);生成图像如下:从图中可以看出,原来亮的部分经过反转之后变暗,暗的部分经过反转变亮。
灰度直方图,用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.熟悉图像在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语言实现)
数字图象处理实验要求(应用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等图像文件格式的读,写和显示。
数字图像处理实验报告
实验报告课程名称数字图像处理实验项目点运算和直方图处理实验仪器 PC机 MATLAB软件系别专业班级/学号学生姓名实验日期成绩指导老师实验1 点运算和直方图处理一、实验目的1. 掌握利用Matlab图像工具箱显示直方图的方法2. 掌握运用点操作进行图像处理的基本原理。
3. 进一步理解利用点操作这一方法进行图像处理的特点。
4. 掌握利用Matlab图像工具箱进行直方图均衡化的基本方法。
二、实验的硬件、软件平台硬件:计算机软件:MATLAB三、实验内容及步骤1. 了解Matlab图像工具箱的使用。
2. 利用Matlab图像工具箱对图像进行点操作,要求完成下列3个题目中的至少2个。
⑴图1灰度范围偏小,且灰度偏低,改正之。
⑵图2暗处细节分辨不清,使其能看清楚。
⑶图3亮处细节分辨不清,使其能看清楚。
图1 图2 图33. 给出处理前后图像的直方图。
4. 利用MatLab图像处理工具箱中函数对以上图像进行直方图均衡化操作,观察结果。
四、思考题1. 点操作能完成哪些图像增强功能?2. 直方图均衡化后直方图为何并不平坦?为何灰度级会减少?五、实验报告要求1.对点操作的原理进行说明。
2.给出程序清单和注释。
3.对处理过程和结果进行分析(包括对处理前后图像的直方图的分析)。
题目1%图1灰度范围偏小,且灰度偏低,改正之。
方法:像素点操作clcclear allclose allI=imread('Image1.png'); %读取标题为“Point2”的位图,并用“I”表示该图j=rgb2gray(I); %转为灰度图像,并用j表示[l,r]=size(j); %将j的行数返回到第一个输出变量l,将列数返回到第二个输出变量rfigure(1); %创建一个空的窗口subplot(221); %将窗口分成2行2列,并在第一个位置进行操作imshow(j); %显示图片jtitle('原图像'); %标题for m=1:l %循环语句,行数m的值从1到l,下同for n=1:rp(m,n)=j(m,n)*1.8; %将j图中的每一个点的像素值乘以一个常数,得到的新像素以原来的位置构成图pendendsubplot(222);imshow(p);title('处理后图像') ;subplot(2,2,3) ;imhist(j); %显示图像j的直方图title('原图像直方图');subplot(2,2,4);imhist(p);title('处理后图像直方图');输出的图像:图4对比图像处理前后的直方图可知,原图的灰度范围较小。
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)
.XX 大学实验报告学院:专业: 班级:~~~ 学号 ~~~~ 实验组 ~~~实验时间 ~~~~~指导教师~~~成绩实验项目名称实验二:数字图像的直方图规定化办理实验(一)掌握数字图像的直方图规定化办理的算法和方法。
目(二)熟习数字图像的直方图规定化办理的算法原理。
的 实验 依据实验内容及参照程序, 独立达成此次实验,记下不懂的知识点,查阅资料或许向老 要 师咨询。
求直方图规定化是用于产生办理后有特别直方图的图像方法。
令p r (r)和p z (z)分别为原始图像和希望图像的灰度概率密度函数。
对原始图像和希望图像均作直方图均衡化办理,应有:rz1p r (r)dr ,VG(Z)ST(r)p z (z)dz ,Z G (V)因为都是作直方图均衡化办理,所以办理后的原图像的灰度概率密度函数P S (S)及理实验 想图像的灰度概率密度函数P V (V)是相等的。
所以,能够用变换后的原始图像灰度级S原取代上式中的V ,即ZG1[T(r)]。
利用此式能够从原始图像获取希望的图像灰度级。
理 对失散图像,有n i,V ik1G 1(S i )G 1[T(r i )]P Z (Z i )G(Z i )P Z (Z i ),Z ini0综上所述,数字图像的直方图规定化就是将直方图均衡化后的结果映照到希望的理想直方图上,使图像按人的意向去变换。
数字图像的直方图规定的算法以下:(一)将原始图像作直方图均衡化办理,求出原图像中每一个灰度级r i 所对应的变.换函数S i。
(二)对给定直方图作近似计算,获取理想图像中每一个灰度级Z i所对应的变换函数V i。
(三)找出V i S i的点对,并映照到Z i。
(四)求出P i(Z i)。
实1.准备好的图片,并保留好或许选好MATLAB的工作路径验2.将参照程序稍做改正,并运转。
步3.结果分析。
骤程序以下:1.文件名:fc.mA=imread('123.jpg');I=rgb2gray(A);J=histeq(I);figure,imshow(A)figure,imshow(I);title('原灰色图像');figure,imhist(I);title('原图像的灰度直方图');实figure,imhist(J);title('均衡化图像的直方图');验figure,imshow(J);内title('均衡化图像');容2.文件名:ff.mI=imread('tire.tif');J=histeq(I,32);[counts,x]=imhist(J);Q=imread('123.jpg');figure;imshow(Q);title('原图像');A=rgb2gray(Q);figure;imhist(A);title('原图像直方图');M=histeq(A,counts);.figure;imshow(M);title('直方图规定化后的图像');figure;imhist(M);title('规定直方图');实验数据将上程序稍做变动后所得结果加:Figure;subplot(1,2,1);imhist(I,64);subplot(1,2,2);imhist(J,64);得图:.2...实验1.对程序要充分的认识,合适变动程序,比较程序和直方图之间的关系。
matlab 图像 实验报告
matlab 图像实验报告Matlab图像实验报告引言:Matlab是一种强大的计算机编程语言和开发环境,广泛应用于科学计算、数据分析和图像处理等领域。
本实验报告旨在介绍基于Matlab的图像处理实验,包括图像读取、图像处理和图像显示等方面的内容。
一、图像读取图像读取是图像处理的第一步,通过读取图像可以获取图像的像素信息。
在Matlab中,可以使用imread函数来读取图像文件。
例如,通过以下代码可以读取一张名为"image.jpg"的图像:```matlabimage = imread('image.jpg');```二、图像处理1. 灰度化处理灰度化处理是将彩色图像转换为灰度图像的过程。
在Matlab中,可以使用rgb2gray函数来实现灰度化处理。
以下是一个简单的示例:```matlabgray_image = rgb2gray(image);```2. 图像增强图像增强是通过一系列的处理方法来改善图像的质量和视觉效果。
在Matlab中,有多种图像增强方法可供选择,如直方图均衡化、滤波和边缘检测等。
以下是一个直方图均衡化的示例:```matlabenhanced_image = histeq(gray_image);```3. 图像分割图像分割是将图像划分为若干个区域的过程,每个区域具有相似的特征。
在Matlab中,可以使用各种图像分割算法,如阈值分割和基于区域的分割。
以下是一个简单的阈值分割示例:```matlabthreshold = graythresh(enhanced_image);binary_image = imbinarize(enhanced_image, threshold);```三、图像显示图像显示是将处理后的图像展示给用户的过程。
在Matlab中,可以使用imshow函数来显示图像。
以下是一个简单的示例:```matlabimshow(binary_image);```四、实验结果与讨论本次实验中,我们选择了一张名为"image.jpg"的彩色图像进行处理。
数字图像处理:图像的灰度变换(Matlab实现)
数字图像处理:图像的灰度变换(Matlab实现)(1)线性变换:通过建⽴灰度映射来调整源图像的灰度。
k>1增强图像的对⽐度;k=1调节图像亮度,通过改变d值达到调节亮度⽬的;0i = imread('theatre.jpg');i = im2double(rgb2gray(i));[m,n]=size(i);%增加对⽐度Fa = 1.25; Fb = 0;O = Fa.*i + Fb/255;figure(1), subplot(221), imshow(O);title('Fa = 1.25, Fb = 0, contrast increasing');figure(2),subplot(221), [H,x]=imhist(O, 64);stem(x, (H/m/n), '.');title('Fa = 1.25, Fb = 0, contrast increasing');%减⼩对⽐度Fa =0.5; Fb = 0;O = Fa.*i + Fb/255;figure(1), subplot(222),imshow(O);title('Fa = 0.5, Fb = 0, contrast decreasing');figure(2), subplot(222), [H,x] = imhist(O, 64);stem(x, (H/m/n), '.');title('Fa = 0.5, Fb = 0, contrast decreasing');%线性亮度增加Fa = 0.5; Fb = 50;O = Fa.*i + Fb/255;figure(1), subplot(223), imshow(O);title('Fa = 0.5, Fb = 50, brightness control');figure(2), subplot(223), [H,x]=imhist(O,64);stem(x, (H/m/n), '.');title('Fa = 0.5, Fb = 50, brightness control');%反相显⽰Fa = -1; Fb = 255;O = Fa.*i + Fb/255;figure(1), subplot(224), imshow(O);title('Fa = -1, Fb = 255, reversal processing');figure(2), subplot(224),[H,x]=imhist(O, 64);stem(x, (H/m/n), '.');title('Fa = -1, Fb = 255, reversal processing');(2)对数变换:增强低灰度,减弱⾼灰度值。
数字图像处理基本操作及灰度调整实验报告
一.实验目的1.掌握读、写图像的基本方法;2.掌握MATLAB 语言中图像数据与信息的读取方法;3.理解图像灰度变换处理在图像增强的作用;4.掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法。
二.实验基本原理1. 灰度变换灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。
1) 图像反转灰度级范围为[0, L-1]的图像反转可由下式获得r L s --=12) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围,如直接使用原图,则一部分细节可能丢失。
解决的方法是对原图进行灰度压缩,如对数变换:s = c log(1 + r ),c 为常数,r ≥ 03) 幂次变换:0,0,≥≥=γγc cr s4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸:其对应的数学表达式为:2. 直方图均衡化灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频度,它是图像最基本的统计特征。
依据定义,在离散形式下, 用r k 代表离散灰度级,用p r (r k )代表p r (r ),并且有下式成立:nn r P k k r =)( 1,,2,1,010-=≤≤l k rk式中:n k 为图像中出现r k 级灰度的像素数,n 是图像像素总数,而n k /n 即为频数。
直方图均衡化处理是以累积分布函数变换法为基础的直方图修正法。
假定变换函数为ωωd p r T s r r)()(0⎰==(a) Lena 图像 (b) Lena 图像的直方图图1-1 Lena 图像及直方图当灰度级是离散值时,可用频数近似代替概率值,即1,,1,010)(-=≤≤=l k r nn r p k k k r式中:l 是灰度级的总数目,p r (r k )是取第k 级灰度值的概率,n k 是图像中出现第k 级灰度的次数,n 是图像中像素总数。
实验一图像的灰度直方图实验
实验一图像的灰度直方图实验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、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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下进行简单的编程、调试和修改操作。
同时我知道了直方图均衡化是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,就是把对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的图像数量大致相同。
通过图像间的对比,我发现变换后的图像某些细节会消失。