直方图计算程序

直方图计算程序
直方图计算程序

///

///计算直方图(红色)

///

private void CalcHistRed()

{

//计算

int rBins = 256;

RangeF rRange = new RangeF(0f, 255f);

Image imageSource = new Image((Bitmap)pbSourc e.Image);

Image imageRed = imageSource.Split()[2];

DenseHistogram hist = new DenseHistogram(rBins, rRange);

hist.Calculate(new IImage[] { imageRed }, false, null);

//显示

pbHistogram.Image = GenerateHistImage(hist).Bitmap;

//释放资源

imageSource.Dispose();

imageRed.Dispose();

hist.Dispose();

}

///

///计算直方图(色调和饱和度)

///

private void CalcHistHs()

{

//计算

int hBins = 180;

RangeF hRange = new RangeF(0f, 179f); //色调的范围在0~180之间int sBins = 256;

RangeF sRange = new RangeF(0f, 255f);

Image imageSource = new Image((Bitmap)pbSourc e.Image);

Image imageHsv = imageSource.Convert(); //将色彩空间从BGR转换到HSV

Image[] imagesHsv = imageSource.Split(); //分解成H、S、V三部分

DenseHistogram hist = new DenseHistogram(new int[] { hBins, sBins }, new RangeF[] { hRange, sRange });

hist.Calculate(new IImage[] { imagesHsv[0], imagesHsv[1] }, false, n ull);

//显示

pbHistogram.Image = GenerateHistImage(hist).Bitmap;

//释放资源

imageSource.Dispose();

imageHsv.Dispose();

foreach (Image image in imagesHsv) image.Dispose();

hist.Dispose();

}

直方图均衡化及直方图规定化

《数字图像处理》实验 报告(二) 学号:____________ 姓名:__________ 专业:____ 课序号:__________ 计算机科学与技术学院

实验2直方图均衡化 一、实验学时:4学时(本部分占实验成绩的40%) 二、实验目的: 1、理解直方图均衡化的原理及步骤; 2、编程实现图像(灰度或彩色)的直方图均衡化。 三、必须学习和掌握的知识点: 直方图均衡化是一种快速有效且简便的图像空域增强方法,在图像处理中有着非常重要的意义,因此要求掌握。 四、实验题目: 编程实现灰度图像的直方图均衡化处理。要求给出原始图像的直方图、均衡化图像及其直方图和直方图均衡化时所用的灰度级变换曲线图。 五、思考题:(选做,有加分) 实现对灰度图像的直方图规定化处理。 六、实验报告: 请按照要求完成下面报告内容并提交源程序、可执行程序文件和实验结果图像。

1、请详细描述本实验的原理: 1.直方图均衡化概述 图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。直方图拉伸和直方图均衡化是两种最常见的间接对比度增强方法。直方图拉伸是通过对比度拉伸对直方图进行调整,从而“扩大”前景和背景灰度的差别,以达到增强对比度的目的,这种方法可以利用线性或非线性的方法来实现;直方图均衡化则通过使用累积函数对灰度值进行“调整”以实现对比度的增强。 直方图均衡化的英文名称是Histogram Equalization. 直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。 2基本思想 直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。 直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。设原始图像在(x,y)处的灰度为f,而改变后的图像为g,则对图像增强的方法可表述为将在(x,y)处的灰度f映射为g。在灰度直方图均衡化处理中对图像的映射函数可定义为:g = EQ (f),这个映射函数EQ(f)必须满足两个条件(其中L为图像的灰度级数): (1)EQ(f)在0≤f≤L-1范围内是一个单值单增函数。这是为了保证增强处理没有打乱原始图像的灰度排列次序,原图各灰度级在变换后仍保持从黑到白(或从白到黑)的排列。 (2)对于0≤f≤L-1有0≤g≤L-1,这个条件保证了变换前后灰度值动态范围的一致性。 累积分布函数(cumulative distribution function,CDF)即可以满足上述两个条件,并且通过该函数可以完成将原图像f的分布转换成g的均匀分布。此时的直方图均衡化映射函数为: gk = EQ(fk) = (ni/n) = pf(fi) , (k=0,1,2,……,L-1)

数字图像处理实验报告

实验一灰度图像直方图统计 一、实验目的 掌握灰度图像直方图的概念和计算方法,了解直方图的作用和用途。提高学生编程能力,巩固所学知识。 二、实验内容和要求 (1)用Photoshop显示、了解图像平均明暗度和对比度等信息; (2)用MatLab读取和显示一幅灰度图像; (3)用MatLab编写直方图统计的程序。 三、实验步骤 1. 使用Photoshop显示直方图: 1)点击文件→打开,打开一幅图像; 2)对图像做增强处理,例如选择图像→调整→自动对比度对图像进行灰度拉伸,观察图像进行对比度增强前后的视觉变化。 3)利用统计灰度图像直方图的程序分别针对灰度拉伸前后的灰度图像绘制其灰度直方图,观察其前后的直方图变化。 2.用MatLab读取和显示一幅灰度图像; 3. 绘制图像的灰度直方图; function Display_Histogram()

Input=imread('timg.jpg'); figure(100); imshow(uint8(Input)); title('原始图像'); Input_Image=rgb2gray(Input); figure(200); imshow(uint8(Input_Image)); title('灰度图像'); sum=0; His_Image=zeros(1,256); [m,n]=size(Input_Image); for k=0:255 for I=1:m for j=1:n if Input_Image(I,j)==k His_Image(k+1)=His_Image(k+1)+1; end end end end figure(300); plot(His_Image); title('图像的灰度直方图'); 4.显示图像的灰度直方图。

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('原始图像直方图') %在原图直方图上加标题运行结果如下:

实验-直方图统计及亮度调整概要

实验 2.直方图统计及亮度调整 一、实验目的 了解并掌握直方图统计方法以及分段线性拉伸、直方图均衡等亮度调整算法, 通过观察对这些运算建立感性认识。 二、实验内容 1. 观察各类图像的直方图; 2. 操作 LUT 灰度对照表,进行分段线性拉伸; 3. 采用直方图均衡方法对低对比度的图像进行对比度增强。 三、基本原理 1.直方图的定义 图象的灰度直方图是一个函数, 表示数字图象中每一灰度级与该灰度级出现的频数 (即具有这一灰度级的象素数目间的对应关系: P b N b M ( ( = M 为一幅图象所包含的象素总数; N (b 为图象中灰度值为 b 的象素总数。通常,以灰度值 b 为横坐标, N (b 为纵坐标。直方图是图象中象素灰度值的一阶概率分布密度的一种近似。 2.对比度增强 对比度增强又称为点运算,逐点改变输入图象的每一象素的灰度,而各象素的位置不改变, 一般用来拓宽图象的灰度范围。

(1灰度变换法(LUT 对照 典型的对比度拉伸灰度变换关系如图 1所示,其对应关系如下: g f f a f a g a f b f b g b f L a b = ≤< -+≤< -+≤

图 1. 典型的对比度拉伸灰度变换关系 可见,输出和输入图象之间各点的灰度是按照一定的映射关系相联系的,这种映射关系在计算机中则是通过一个查照表(look-up table,即 LUT 实现的。通过 LUT 对照改变了图象中不同灰度特性趋于的对比度或反差(contrast ,达到改善视觉效果的目的。 (2 直方图均衡 直方图均衡(histogram equalization就是通过点运算使输入图像的灰度分布较为均匀, 使图像具有较好的视觉效果。设 r , s 分别为原图和新图的灰度, ?r (r , ?s (s 分别为原图及新图的概率密度函数,则均衡变换为原图像的累积分布函数: s T r r r r ==?( ?( 0 对于离散图像,均衡转换公式为: ∑∑=====k j j k j j r k k n M L r P r T s 0max 0 ( ( 其中, L max 指图像中的最大灰度值(对于灰度图像就是 255。 四、实验步骤 (一 Matlab 的 demo 演示

数字图像处理点运算和直方图处理

实验1 点运算和直方图处理 一、实验目的 1. 掌握利用Matlab图像工具箱显示直方图的方法 2. 掌握运用点操作进行图像处理的基本原理。 3. 进一步理解利用点操作这一方法进行图像处理的特点。 4. 掌握利用Matlab图像工具箱进行直方图均衡化的基本方法。 二、实验的硬件、软件平台 硬件:计算机 软件:操作系统:WINDOWS 7 应用软件:MATLAB 三、实验内容及步骤 1. 了解Matlab图像工具箱的使用。 2. 利用Matlab图像工具箱对图像进行点操作,要求完成下列3个题目中 的至少2个。 ⑴图1灰度范围偏小,且灰度偏低,改正之。 ⑵图2暗处细节分辨不清,使其能看清楚。 ⑶图3亮处细节分辨不清,使其能看清楚。 图1 图2 图3 3. 给出处理前后图像的直方图。 4. 利用MatLab图像处理工具箱中函数对以上图像进行直方图均衡化操 作,观察结果。 四、思考题 1. 点操作能完成哪些图像增强功能? 2. 直方图均衡化后直方图为何并不平坦?为何灰度级会减少? 五、实验报告要求

1.对点操作的原理进行说明。 2.给出程序清单和注释。 3.对处理过程和结果进行分析(包括对处理前后图像的直方图的分析)。 实验代码以及解读 点操作: I = imread('POINT1.BMP')。 %读入图像 j=rgb2gray(I)。%将图像转为灰度图像 INFO=IMFINFO('POINT1.BMP') %获取图片的格式、尺寸、颜色数量、修改时间等信息[l,r]=size(j)。%图片大小 figure。%建立一个图形框 subplot(221) imshow(j) %在两行两列的第一个位置放置图片j title('POINT1.BMP') %给该图片加上标题POINT1.BMP for m=1:l for n=1:r %从第一个像素循环到最后一个像素p1(m,n)=j(m,n)*1.2。%把各点乘上1.2得到p1图 end end for m=1:l for n=1:r p2(m,n)=j(m,n)*2。%%把各点乘上2得到p2图 end end for m=1:l for n=1:r p3(m,n)=j(m,n)*2+50。%把各点乘上2再加50得到p2图 end end subplot(222) imshow(p1) title('j(m,n)*1.2') %p1图放在第二个位置且冠名j(m,n)*1.2 subplot(223) imshow(p2) title('j(m,n)*2') %p1图放在第三个位置且冠名j(m,n)* 2 subplot(224) imshow(p3) title('j(m,n)*2+50') %p1图放在第四个位置且冠名j(m,n)*2+50 figure。%建立一个新的窗口并且依次显示以上四个图的直方图

灰度图像直方图统计

1.灰度图像直方图统计实习报告 一、实习目的 在学习灰度图像直方图的概念、计算方法、性质和相关应用的基础上,应用Photoshop软件和编写灰度直方图统计程序,能初步掌握图像文件格式读写与图像数据处理,提高学生兴趣和编程能力,巩固所学知识。 二、实习内容 1.实习数据 E:\ 数字图像处理\实习一\Lena.raw 2.利用Photoshop显示图像的灰度直方图,从直方图上了解图像平均明暗度和对比度等信息。 3.要求利用C或C++语言编写灰度图像直方图统计的程序。 三、实习步骤 1.使用Photoshop显示直方图。 (1)点击“文件”-->“打开”,打开一幅图像,此处选取“lena.raw”; (2)点击“图像”-->“直方图”,显示图像的直方图;

(3)对图像做增强处理,例如选择“图像”-->“调整”-->“自动对比度”对图像进行灰度拉伸,然后再显示直方图,观察它的变化。 2.用C或C++编写显示直方图的程序。 具体代码如下: #include "stdio.h" #include "windows.h" void main() { FILE *fp; //文件类指针

fp=fopen("lena.raw","rb"); //打开二进制文件 if (fp==NULL) { printf("文件已损坏,请重新打开。 \n"); } else printf("文件已打开,已经生成.txt文档,请查看。\n"); BYTE PIXEL[512*512]; fread(PIXEL,1,512*512,fp);//二进制文件读取 fclose(fp);//关闭文件 int HistogramStat[256]; for(int i=0;i<256;i++) HistogramStat[i]=0;//赋初值 for (i=0;i<512*512;i++) { int a=PIXEL[i]; HistogramStat[a]++; } //统计像素个数 fp=fopen("灰度直方图.txt","rb"); fprintf(fp,"图像灰度,像素个数\n"); for (i=0;i<256;i++) { if (HistogramStat[i]!=0) fprintf(fp,"%5d,%5d\n",i,HistogramStat[i]); } fprintf(fp,"像素个数为0的已被省略。");//输出内容 } 四、思考题 1灰度直方图可以反映出一幅图像的哪些特性? 答:(1)表征了图像的一维信息。只反映图像中像素不同灰度出现的次数,而未反映像素所在的位置。即丢失了像素的位置信息。 (2)与图像之间的关系式多对一的映射关系。一幅图像唯一确定出与之对应的直方图,但不同的图像可能有相同的直方图。 (3)一幅图像可分为多个子区域,子图直方图之和为整图的直方图。 2灰度直方图有何用途?编程实现一种灰度直方图应用的程序。 答:(1)用于判断图像量化是否恰当。 (2)用于确定图像的二值化阈值。 (3)计算图像中物体的面积。 (4)计算图像信息量H(熵)。 3在本次实习的基础上,试编写直方图均衡的程序。 五、实习心得体会

实验2(A) 灰度图像直方图统计与均衡化

实验2 灰度图像直方图统计与均衡化 一、 实验目的 1. 学习灰度图像直方图的概念、计算方法、性质和相关应用。 2. 利用VC++编写灰度图像直方图统计程序。 3. 掌握灰度直方图的概念及其计算方法; 4. 熟练掌握直力图均衡化和直方图规定化的计算过程; 5. 熟练掌握空域滤波中常用的平滑和锐化滤波器; 6. 掌握色彩直方图的概念和计算方法 7. 利用VC++程序进行图像增强。 二、 实验原理 灰度直方图是灰度级的函数,描述的是图像中每种灰度级像素的个数,反映图像中每种灰度出现的频率。 i i v n n = (0.1) 式中,n 是图像总的像素个数;n i 是图像中具有第i 个灰度级的像素个数;v i 是第i 个灰度级出现的频率。 依据定义,若图像具有L 级灰度,通常L =256,即8位灰度级,则大小为M ?N 的灰度图像f (x , y )的灰度直方图hist[0, …, L -1]可用如下步骤计算获得: ① 初始化,hist[k ]=0 ; k =0, 1, …, L -1。 ② 按像素扫描图像,对灰度级中的每个灰度值,统计图像中具有该灰度值的像素个数。 (),;0,1,,1;0,1,,1hist f x y x M y N ++=-=-???? (0.2) 3. 直方图归一化。 ()(),hist f x y M N ?????i i v n n = (0.3) 图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。本实验以直方图均衡化增强图像对比度的方法为主要内容,其他方法同学们可以在课后自行联系。

基于matlab的直方图均衡化

目录 1、引言 (2) 2、直方图基础 (3) 3、直方图均衡化 (3) 3.1 直方图均衡化的概念 (3) 3.2 直方图均衡化理论 (4) 3.3 Matlab 实现 (4) 4、结论 (7) 致谢 (7) 参考文献 (7)

图像增强处理 —直方图均衡化的Matlab 实现摘要:为了使图像的灰度范围拉开或使灰度均匀分布,从而增大反差,使图像细节清晰,以达到增强的目的,通常采用直方图均衡化及直方图规定化两种变换,此文中探讨了直方图的理论基础,直方图均衡化的概念及理论,以Matlab为平台,对某地区遥感TM单波段遥感影像进行直方图均衡化,并给出了具体程序、仿真结果图像、直方图及变换函数。实验结果表明,原来偏暗的且对比度较低的图像经过直方图均衡化后图像的对比度及平均亮度明显提高,直方图均衡化处理能有效改善灰度图像的对比度差和灰度动态范围。 关键词:图像增强直方图均衡化 Matlab 1、引言 图像增强是指对图像的某些特征,如边缘、轮廓或对比度等进行强调或尖锐化。当一幅图像曝光不足或过度,造成对比度过小或过大而不能显示具体细节,通过增加这些细节的动态范围改善图像的视觉效果。图像增强可以突出图像中所感兴趣的特征信息,改善图像的主观视觉质量,提高图像的可懂度。 增强的首要目标是处理图像,使其比原始图像更适合于特定应用。图像增强的方法分为两大类:空间域方法和频域方法。“空间域”一词是指图像平面本身,这类方法是以对图像的像素直接处理为基础的。“频域”处理技术是以修改图像的傅氏变换为基础的。 一般说来,原始遥感数据的灰度值范围都比较窄,这个范围通常比显示器的显示范围小的多。增强处理可将其灰度范围拉伸到0-255 的灰度级之间来显示,从而使图像对比度提高,质量改善。增强主要以图像的灰度直方图最为分析处理的基础。直方图均衡化能够增强整个图像的对比度,提高图像的辨析程度,算法简单,增强效果好。本文主要讨论了空间域的直方图均衡化增强,并用Matlab 进行实验验证。 2、直方图基础 1、灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像元的个数。确定图像像

四、灰度直方图是数字图像处理的重要工作。请简述灰度直方图规定化

四、灰度直方图是数字图像处理的重要工作。请简述灰度直方图规定化、均衡化的基本原理。并以分辨率为5*4,图像的深度6bit 的图像为例,自举例说明直方图均衡化的计算过程。 解答: 数字图像的直方图是作为图像每一个灰度级的统计概率分布"它提供了图像灰度分布的概貌,直方图增强技术正是利用修改给定图像直方图的方法来增强图像的,最后得到的图像增强程度取决于我们所采用的直方图。令变量r 和s 分别代表图像增强前后的像素灰度级,相应灰度级分布的概率密度分别为()r P r 和()s P s 。 为讨论方便,假设像素灰度值已经归一化在区间[0,1],在灰度级坐标中r=0表示黑,r=1表示白。对区间[0,1]内任一个r 值按变换函数: s = T(r) (1) 进行变换,T (r )满足两个条件:(1)单值单调递增函数;(2) 0≤T (r )≤1。 条件(1)使灰度级保持从黑到白的次序,条件(2)保证映射变换后像素灰度值在允许的范围内。从s 到r 的反变换为:1()r T s -=,0≤s ≤1。 (2) 同样,规定变量s 也满足条件(1)和(2)。由概率理论知,若()r P r 和变换函数s = T(r) 已知,1()r T s -=是单值单调增加函数,则有: 1() ()[P () ]s r r T s dr P s r ds -== (3) 直方图增强技术就是通过变换函数T (r )控制图像灰度级的概率密度函数而改变图像的外貌。 对于连续图像,变换函数为: ()(),01r r s T r P r dr r ==≤≤? (4) 此式右边为累积分布函数(CDF ),由该式对r 求导有: ()r ds P r dr = (5) 代入(3)得到: 1()1 ()[() ]1,01() r r T s r P s P r s P r -===≤≤ (6) 这说明,在变换后变量s 在定义域内, ()s P s 是均匀概率密度。在图像增强意义上,这 相当于像素的动态范围增加。 对于离散图像,灰度级k r 的概率值为: (),01,0,1,2, (1) r k k n P r r k L n = ≤≤=- (7) 其中,n 表示图像中像素的总数,k n 是在图像中出现这种灰度级的次数,L 表示灰度级

摄像头编程并且对图像的处理以及直方图的算法

题目:图像的基本处理班级:2011级软件2班姓名:刘磊磊 时间:20130907

摘要:随着数字化与多媒体时代的来临,数字图像处理已经成为必备的基础知识。全国各大专院校的计算机、电子、通信、医学、光学及许多相关专业都开设了与数字图像预处理相关的课程。数字图像二值化是图像预处理中的一项重要技术,其在模式识别、光学字符识别、医学成像等方面都有着重要应用。本论文主要为大家介绍24位真彩图像的灰度、二值处理以及图像的一些简单的打开和保存和如何画直方图,还有一些通过这次小学期学到的一些知识。 关键字:灰度处理,二值化 图像的打开 void CText1Dlg::ShowPic() { if(m_path =="") //判断图片路径是否存在 { return; } hwnd = GetDlgItem(IDC_pic); hDesDC = hwnd->GetDC()->m_hDC; hSrcDC = CreateCompatibleDC(hDesDC); hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),m_path,IMAGE_BITMAP,0,0, LR_LOADFROMFILE|LR_CREATEDIBSECTION); GetObject(hBitmap, sizeof(BITMAP), &bm); SelectObject(hSrcDC, hBitmap); hwnd->GetClientRect(&rect); ::SetStretchBltMode(hDesDC,COLORONCOLOR); ::StretchBlt(hDesDC, rect.left, rect.top, rect.right, rect.bottom, hSrcDC, 0, 0, bm.bmWidth, bm.bmHeight,+SRCCOPY); UpdateData(false);

基于灰度直方图的图像分割阈值自适应选取方法

中北大学 毕业设计(论文)任务书 学院、系: 专业: 学生姓名:车永健学号: 设计(论文)题目:基于灰度直方图的图像分割阈值自适应选取方法 起迄日期: 2015年3月9日~2015年6月20日设计(论文)地点: 指导教师:郭晨霞 系主任: 发任务书日期:2015年 2 月25 日

任务书填写要求 1.毕业设计(论文)任务书由指导教师根据各课题的具体情况填写,经学生所在系的负责人审查、系领导签字后生效。此任务书应在毕业设计(论文)开始前一周内填好并发给学生; 2.任务书内容必须用黑墨水笔工整书写或按教务处统一设计的电子文档标准格式(可从教务处网页上下载)打印,不得随便涂改或潦草书写,禁止打印在其它纸上后剪贴; 3.任务书内填写的内容,必须和学生毕业设计(论文)完成的情况相一致,若有变更,应当经过所在专业及系主管领导审批后方可重新填写; 4.任务书内有关“学院、系”、“专业”等名称的填写,应写中文全称,不能写数字代码。学生的“学号”要写全号(如020*******,为10位数),不能只写最后2位或1位数字; 5.有关年月日等日期的填写,应当按照国标GB/T 7408—94《数据元和交换格式、信息交换、日期和时间表示法》规定的要求,一律用阿拉伯数字书写。如“2004年3月15日”或“2004-03-15”。

毕业设计(论文)任务书

毕业设计(论文)任务书 3.对毕业设计(论文)课题成果的要求〔包括毕业设计(论文)、图纸、实物样品等): 1、论文一份; 2、程序代码及图像结果; 3、英文翻译一份。 4.毕业设计(论文)课题工作进度计划: 起迄日期工作内容 2015年 3月 9 日~ 3 月20日 4 月 1 日~ 4月 20 日 4 月 21 日~ 5月 10 日 5 月 11 日~ 6月 15 日 6 月 16 日~ 6月 19 日查找资料,完成开题报告; 学习有关知识,方案确定,完成中期报告;完善算法并仿真验证; 撰写、修改、评阅毕业论文; 论文答辩 学生所在系审查意见: 系主任: 年月日

绘制数字图像灰度直方图实验报告MATLAB实现

数字图像处理 实验报告 实验一绘制直方图 学号 姓名 日期

实验一绘制直方图 一、实验内容 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)));%计算现有每个灰度级出现的概率

实验-数字图像的直方图统计

实验二数字图像的直方图统计 一、实验目的 1.了解对灰度图像进行直方图统计的基本原理; 2.掌握用VC编程实现直方图统计的方法; 3.在微机上调试程序; 5. 分析数字图像直方图的特点。 二、实验原理 图像的直方图 图像的(灰度统计)直方图是一个一维的离散函数。它的定义为: 设s k为图像f(x,y)的第k级灰度值,n k是f(x,y)中具有灰度值s k的象素的个数,n是图像象素总数,则: p s(s k)= n k/n k=0,1, ,L-1 称为图像f(x,y)的直方图。 这里p s(s k)代表原始图中第k个灰度级的出现概率。以n k为自变量,以p s(s k)为函数,得到的曲线就是图像的直方图,在实际中常常直接将对第k个灰度级的统计值n k作为图像的直方图。 它提供了原图灰度值的分布情况,也可以说给出了一幅图所有灰度值的整体描述。 对灰度图像进行直方图统计的程序流程图如图2-1所示。 图2-1 灰度图像直方图统计流程 三、实验前准备 1.预习本实验中关于数字图像直方图统计的有关内容; 2. 预习VC中添加对话框的步骤和方法; 3.了解本实验的目的和实验内容。 四、实验内容 1.在实验一的基础上读入并显示一幅数字图像; 2.编写对灰度图像进行直方图统计的程序,并将结果显示在屏幕上。 五、实验报告要求 1.总结对灰度图像进行直方图统计的过程,比较不同的图像其直方图特性;

2.对实验结果进行分析。 六、参考步骤和程序 在实验一的基础上,进行如下操作: 1、点击ResourceView,右键点击Dialog,选Insert Dialog 在属性对话框中将ID改为 ID_HIST,对话框名称改为“直方图” 2、在工具栏中点“插入”-“新建类”,输入类名,并选Base Class为CDialog,Dialog ID为 ID_HIST。这样就将对话框和类联系起来了,在该对话框中拖入一Edit控件,将其ID 设为IDC_HISTSHOW; 3、快捷键“Ctrl+W”,出现MFC ClassWizard对话框,在Messages栏中分别选 WM_INITDIALOG和WM_Paint,再点击“Add Function”,即将对话框初始化和画图函数加入对话框类之中。 4、在Hist.h文件“public:”下面输入如下变量定义: LONG m_lCount[256]; char* m_lpDIBBits; LONG m_lWidth; LONG m_lHeight; int m_iIsDraging; CDlgIntensity(CWnd* pParent = NULL); 5、打开Hist.cpp程序,在CHist::OnInitDialog()函数中“// TODO: Add extra initialization here” 前将如下代码拷贝进去: unsigned char* lpSrc; LONG i; LONG j; 6、在“// TODO: Add extra initialization here”后将如下代码拷贝进去: CWnd* pWnd=GetDlgItem(IDC_HISTSHOW); pWnd->GetClientRect(m_MouseRect); pWnd->ClientToScreen(&m_MouseRect); CRect rect; GetClientRect(rect); ClientToScreen(&rect); m_MouseRect.top-=rect.top; m_MouseRect.left-=rect.left; m_MouseRect.top+=25; m_MouseRect.left+=10; m_MouseRect.bottom=m_MouseRect.top+255; m_MouseRect.right=m_MouseRect.left+256; for(i=0;i<256;i++) { m_lCount[i]=0;

图像的直方图是图像的重要统计特征

图像的直方图是图像的重要统计特征,它可以认为是图像灰度密度函数的近似。直方图虽然不能直接反映出图像内容,但对它进行分析可以得出图像的一些有用特征,这些特征能反映出图像的特点。当图像对比度较小时,它的灰度直方图只在灰度轴上较小的一段区间上非零,较暗的图像由于较多的像素灰度值低,因此它的直方图的主体出现在低值灰度区间上,其在高值灰度区间上的幅度较小或为零,而较亮的图像情况正好相反。通常一幅均匀量化的自然图像的灰度直方图在低值灰度区间上频率较大,这样的图像较暗区域中的细节常常看不清楚。为使图像变清晰,可以通过变换使图像的灰度动态范围变大,并且让灰度频率较小的灰度级经变换后,其频率变得大一些,使变换后的图像灰度直方图在较大的动态范围内趋于均化。事实证明,通过图像直方图修改进行图像增强是一种有效的方法。 均匀量化的自然图像的灰度直方图通常在低值灰度区间上频率较大,使得图像中较暗区域中的细节常常看不清楚。为了使图像清晰,可将图像的灰度范围拉开,并且让灰度频率较小的灰度级变大,即让灰度直方图在较大的动态范围内趋于一致。 前面介绍的直方图均衡化处理方法从实验效果看还是很不错的,从实现算法上也可以看出其优点主要在于能自动整幅图像的对比度,但具体的增强效果也因此不易控制,只能得到全局均衡化处理的直方图。在科研和工程应用中往往要根据不同的要求得到特定形状的直方图分布以有选择的对某灰度范围进行局部的对比度增强,此时可以采用对直方图的规定化处理,通过选择合适的规定化函数取得期望的效果。 a=imread('花.jpg'); subplot(2,2,1); imshow(a); title('原始图像'); subplot(2,2,2); a=rgb2gray(a); imhist(a); title('原始图像直方图'); subplot(2,2,3);

灰度直方图

1.灰度直方图 灰度直方图(histogram)是灰度级的函数,它表示图象中具有每种灰度级的象素的个数,反映图象中每种灰度出现的频率。如下图所示,灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频率,是图象的最基本的统计特征。 从概率的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数pdf(probability density function),而概率分布函数就是直方图的累积和,即概率密度函数的积分,如下图所示:

若直接从代表每种灰度的象素数目的直方图来观察,常用如下的表示: dr r dP r p dr r p r P r )()(, )()(0 = =?∑???===≈ ===== =k i i k k k k k r r n n r P n n r p n r n A dA r p dr dr r H A r P A dr r dA A r H r p dr r H A dr r H r A 00 0000255 00 )()()(1)(1 )(,/)()()() ()(, )()(,而概率分布函数,则概率密度的象素数为,灰度为若记象素总数为,时,在离散情况下,取概率密度象素总数一幅图象的总面积,或

灰度直方图的计算是很简单的,依据定义,若图象具有L(通常L=256, 即8位灰度级)级灰度,则大小为MxN的灰度图象f(x,y)的灰度直方图hist[0…L-1]可用如下计算获得: 1. 1.初始化 hist[k]=0 ; k=0,…,L-1 2. 2.统计 hist[f(x,y)]++ ; x, y =0,…,M-1, 0,…,N-1 3. 3.标准化 hist[f(x,y)]/=M*N 2.直方图均衡化 直方图均衡化是通过灰度变换将一幅图象转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。 设灰度变换s=f(r)为斜率有限的非减连续可微函数,它将输入图象A(x,y) 转换为输出图象B(x,y),输入图象的直方图为H A (r),输出图象的直方图为H B (s), 则它们的关系可由如下过程导出:

数字图像处理实验报告--直方图规定化 0528

数字图像处理实验报告--直方图规定化

数字图像处理实验报告 实验名称:直方图规定化 姓名: 班级: 学号: 专业:电子信息工程(2+2) 指导教师:陈华华 实验日期:2012年5月24日

直方图匹配(规定化) 直方图均衡化能够自动增强整个图像的对比度,但它的具体增强效果不容易控制,处理的结果总是得到全局均匀化的直方图。实际上有时需要变换直方图,使之成为某个特定的形状,从而有选择地增强某个灰度值范围内的对比度。这时可以采用比较灵活的直方图规定化。一般来说正确地选择规定化的函数可以获得比直方图均衡化更好的效果。 所谓直方图规定化,就是通过一个灰度映像函数,将原灰度直方图改造成所希望的直方图。所以,直方图修正的关键就是灰度映像函数。 直方图匹配方法主要有3个步骤(这里设M和N分别为原始图和规定图中的灰度级数,且只考虑N≤M的情况): (1) 如同均衡化方法中,对原始图的直方图进行灰度均衡化: (2) 规定需要的直方图,并计算能使规定的直方图均衡化的变换: (3) 将第1个步骤得到的变换反转过来,即将原始直方图对应映射到规定的直方图,也就是将所有pf(fi)对应到pu(uj)去。 一、A图直方图规定B图

Matlab程序: %直方图规定化 clear all A=imread('C:\Users\hp\Desktop\A.tif'); %读入A图像 imshow(A) %显示出来 title('输入的A图像') %绘制直方图 [m,n]=size(A); %测量图像尺寸 B=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255

数字图像实验报告二图像的灰度变换与直方图均衡

实验二图像的灰度变换与直方图均衡 一、实验目的 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); 生成图像如下:

编程实现计算图像直方图、图像熵解析

数字图像处理实验报告——图像常用格式及显示 武汉大学 2016.04

1 实验内容 本实验报告主要介绍 主要内容 1. 理解灰度映射原理; 2. 掌握灰度映射计算方法; 3. 理解图像直方图的定义; 4. 理解图像直方图的作用; 5. 理解图像熵的定义及作用; 6. 掌握图像直方图计算方法; 7. 掌握图像熵的计算方法; 8. 进一步熟悉图像文件256色、24位真彩色BMP图像格式; 9. 进一步熟悉Visual C++ 6.0编程界面,及使用方法; 10. 熟悉Visual C++中绘图函数方法; 11. 编程完成计算图像几种灰度映射; 12. 编程实现计算图像直方图、图像熵; 13. 编程绘制图像直方图; 14. 根据不通灰度映射处理观察图像直方图变化; 15. 总结实验过程(实验报告):编程、调试、结果、分析、结论。 主要目的 1. 建立相关实验环境:从指定服务器指定位置拷贝实验相关材料,包括:实验要求,实例程序,示例图像,VC++6.0程序,实验相关幻灯片; 2. 使用实验一建立的简单多文档应用程序框架及、图像夺取和显示功能,进一步熟悉图像的格式及显示,熟悉图像的组织和存储方式。 3. 编写图像线性灰度映射: 4. 编写图像直方图统计程序: 5. 观察图像直方图 主要函数说明 1.void CZhangyanImageView::OnProcessZhifangtu() 函数目的:在用户界面中添加直方图处理,并添加函数在.cpp文件中 函数参数说明:建立直方图处理函数 2.void CZhangyanImageView::OnProcessLinetran() 函数目的:在用户界面中添加灰度变换处理,并添加函数在.cpp文件中函数参数说明:建立灰度变换处理函数 主要代码注释 1.灰度变换函数代码 CZhangyanImageDoc* pDoc = GetDocument();//定义引用doc的指针ASSERT_V ALID(pDoc); unsigned char * pBits=pDoc->m_pBits;//把文件中的m_pBits赋予pBits int nWidth=pDoc->imageWidth; int nHeight=pDoc->imageHeight;//定义整形的image图片宽和高

数字图像处理实验报告--直方图规定化

数字图像处理实验报告 实验名称:直方图规定化 姓名: 班级: 学号: 专业:电子信息工程(2+2) 指导教师:陈华华 实验日期:2020年5月24日

直方图匹配(规定化) 直方图均衡化能够自动增强整个图像的对比度,但它的具体增强效果不容易控制,处理的结果总是得到全局均匀化的直方图。实际上有时需要变换直方图,使之成为某个特定的形状,从而有选择地增强某个灰度值范围内的对比度。这时可以采用比较灵活的直方图规定化。一般来说正确地选择规定化的函数可以获得比直方图均衡化更好的效果。 所谓直方图规定化,就是通过一个灰度映像函数,将原灰度直方图改造成所希望的直方图。所以,直方图修正的关键就是灰度映像函数。 直方图匹配方法主要有3个步骤(这里设M和N分别为原始图和规定图中的灰度级数,且只考虑N≤M的情况): (1) 如同均衡化方法中,对原始图的直方图进行灰度均衡化: (2) 规定需要的直方图,并计算能使规定的直方图均衡化的变换: (3) 将第1个步骤得到的变换反转过来,即将原始直方图对应映射到规定的直方图,也就是将所有pf(fi)对应到pu(uj)去。 一、A图直方图规定B图

Matlab程序: %直方图规定化 clear all A=imread('C:\Users\hp\Desktop\A.tif'); %读入A图像 imshow(A) %显示出来 title('输入的A图像') %绘制直方图 [m,n]=size(A); %测量图像尺寸 B=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255 B(k+1)=length(find(A==k))/(m*n); %计算每级灰度出现的概率,将其存入B中相应位置 end figure,bar(0:255,B,'g'); %绘制直方图 title('A图像直方图') xlabel('灰度值') ylabel('出现概率') axis([0,260,0,0.015]) C=imread('C:\Users\hp\Desktop\B.tif');%读入B图像 imshow(C) %显示出来 title('输入的B图像') %绘制直方图 [m,n]=size(C); %测量图像尺寸 D=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255 D(k+1)=length(find(C==k))/(m*n); %计算每级灰度出现的概率,将其存入D中相应位置 end

相关文档
最新文档