图像处理之直方图匹配

图像处理之直方图匹配
图像处理之直方图匹配

直方图匹配,又称直方图规定化,即变换原图的直方图为规定的某种形式的直方图,从而使两幅图像具有类似的色调和反差。直方图匹配属于非线性点运算。

直方图规定化的原理:对两个直方图都做均衡化,变成相同的归一化的均匀直方图,以此均匀直方图为媒介,再对参考图像做均衡化的逆运算

///

/// 直方图匹配

///

/// 原始图像

/// 匹配图像

/// 处理后图像

/// 处理成功true 失败false

public static bool HistogramMatching(Bitmap srcBmp, Bitmap matchingBmp, out Bitmap dstBmp) {

if (srcBmp == null || matchingBmp == null) {

dstBmp = null;

return false;

}

dstBmp = new Bitmap(srcBmp);

Bitmap tempSrcBmp = new Bitmap(srcBmp);

Bitmap tempMatchingBmp = new Bitmap(matchingBmp);

double[] srcCpR = null;

double[] srcCpG = null;

double[] srcCpB = null;

double[] matchCpB = null;

double[] matchCpG = null;

double[] matchCpR = null;

//分别计算两幅图像的累计概率分布

getCumulativeProbabilityRGB(tempSrcBmp, out srcCpR, out srcCpG, out srcCpB);

getCumulativeProbabilityRGB(tempMatchingBmp, out matchCpR, out matchCpG, out matchCpB);

double diffAR = 0, diffBR = 0, diffAG = 0, diffBG = 0, diffAB = 0, diffBB = 0;

byte kR = 0, kG = 0, kB = 0;

//逆映射函数

byte[] mapPixelR = new byte[256];

byte[] mapPixelG = new byte[256];

byte[] mapPixelB = new byte[256];

//分别计算RGB三个分量的逆映射函数

//R

for (int i = 0; i < 256; i++) {

diffBR = 1;

for (int j = kR; j < 256; j++) {

//找到两个累计分布函数中最相似的位置

diffAR = Math.Abs(srcCpR[i] - matchCpR[j]);

if (diffAR - diffBR < 1.0E-08) {//当两概率之差小于0.000000001时可近似认为相等

diffBR = diffAR;

//记录下此时的灰度级

kR = (byte)j;

}

else {

kR = (byte)Math.Abs(j - 1);

break;

}

}

if (kR == 255) {

for (int l = i; l < 256; l++) {

mapPixelR[l] = kR;

}

break;

}

mapPixelR[i] = kR;

}

//G

for (int i = 0; i < 256; i++) {

diffBG = 1;

for (int j = kG; j < 256; j++) {

diffAG = Math.Abs(srcCpG[i] - matchCpG[j]);

if (diffAG - diffBG < 1.0E-08) {

diffBG = diffAG;

kG = (byte)j;

}

else {

kG = (byte)Math.Abs(j - 1);

break;

}

}

if (kG == 255) {

for (int l = i; l < 256; l++) {

mapPixelG[l] = kG;

}

break;

}

mapPixelG[i] = kG;

}

//B

for (int i = 0; i < 256; i++) {

diffBB = 1;

for (int j = kB; j < 256; j++) {

diffAB = Math.Abs(srcCpB[i] - matchCpB[j]);

if (diffAB - diffBB < 1.0E-08) {

diffBB = diffAB;

kB = (byte)j;

}

else {

kB = (byte)Math.Abs(j - 1);

break;

}

}

if (kB == 255) {

for (int l = i; l < 256; l++) {

mapPixelB[l] = kB;

}

break;

}

mapPixelB[i] = kB;

}

//映射变换

BitmapData bmpData = dstBmp.LockBits(new Rectangle(0, 0, dstBmp.Width, dstBmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

unsafe {

byte* ptr = null;

for (int i = 0; i < dstBmp.Height; i++) {

ptr = (byte*)bmpData.Scan0 + i * bmpData.Stride;

for (int j = 0; j < dstBmp.Width; j++) {

ptr[j * 3 + 2] = mapPixelR[ptr[j * 3 + 2]];

ptr[j * 3 + 1] = mapPixelG[ptr[j * 3 + 1]];

ptr[j * 3] = mapPixelB[ptr[j * 3]];

}

}

}

dstBmp.UnlockBits(bmpData);

return true;

}

///

/// 计算各个图像分量的累计概率分布

///

/// 原始图像

/// R分量累计概率分布

/// G分量累计概率分布

/// B分量累计概率分布

private static void getCumulativeProbabilityRGB(Bitmap srcBmp, out double[] cpR, out double[] cpG, out double[] cpB) {

if (srcBmp == null) {

cpB = cpG = cpR = null;

return;

}

cpR = new double[256];

cpG = new double[256];

cpB = new double[256];

int[] hR = null;

int[] hG = null;

int[] hB = null;

double[] tempR = new double[256];

double[] tempG = new double[256];

double[] tempB = new double[256];

getHistogramRGB(srcBmp, out hR, out hG, out hB);

int totalPxl = srcBmp.Width * srcBmp.Height;

for (int i = 0; i < 256; i++) {

if (i != 0) {

tempR[i] = tempR[i - 1] + hR[i];

tempG[i] = tempG[i - 1] + hG[i];

tempB[i] = tempB[i - 1] + hB[i];

}

else {

tempR[0] = hR[0];

tempG[0] = hG[0];

tempB[0] = hB[0];

}

cpR[i] = (tempR[i] / totalPxl);

cpG[i] = (tempG[i] / totalPxl);

cpB[i] = (tempB[i] / totalPxl);

}

}

///

/// 获取图像三个分量的直方图数据

///

/// 图像

/// R分量直方图数据

/// G分量直方图数据

/// B分量直方图数据

public static void getHistogramRGB(Bitmap srcBmp, out int[] hR, out int[] hG, out int[] hB) {

if (srcBmp == null) {

hR = hB = hG = null;

return;

}

hR = new int[256];

hB = new int[256];

hG = new int[256];

BitmapData bmpData = srcBmp.LockBits(new Rectangle(0, 0, srcBmp.Width, srcBmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);

unsafe {

byte* ptr = null;

for (int i = 0; i < srcBmp.Height; i++) {

ptr = (byte*)bmpData.Scan0 + i * bmpData.Stride;

for (int j = 0; j < srcBmp.Width; j++) {

hB[ptr[j * 3]]++;

hG[ptr[j * 3 + 1]]++;

hR[ptr[j * 3 + 2]]++;

}

}

}

srcBmp.UnlockBits(bmpData);

return;

}

ENVI实习直方图匹配,校正,分类

ENVI实习 一实验目的 (1)主要学习ENVI软件的基本功能 (2)ENVI 软件完成影像增强(包括直方图匹配和去云)、融合、正射校正和监督、非监督分类四个大方面的试验。 (3)掌握视窗操作模块的功能和操作技能 二软件和设备 ENVI4.5一套 三实验原理 各个任务的试验原理和操作详细见下面操作,再次不详述。

一、图像增强(算法、原理、对比图) 1、直方图匹配 在ENVI 中使用Histogram Matching 工具可以自动地把一幅实现图像的直方图匹配到另一幅上,从而使两幅图像的亮度分布尽可能地接近。使用该功能以后,在该功能被启动的窗口内,输入直方图将发生变化,以与所选图像显示窗口的当前输出直方图相匹配。在灰阶和彩色图像上,都可以使用该功能。 操作步骤:选择Enhance > Histogram Matching,出现Histogram Matching Input parameters 对话框,在Match To中选择想匹配的图像。在Input Histogram 会有Image、Scroll、Zoom、Band、、ROI来选择如数直方图的来源,下图为输入图像数据及其所用的拉伸(直方图匹配之前):

下图为Match To 想匹配的图像及其拉伸:

利用直方图匹配后图像2的直方图结果: 从结果可以看出,匹配后的图像在亮度上已经明显增强,从偏暗增强为较亮;其直方图与#1中的图像直方图在亮度上分布也很接近。

2、图像去云 常规的云处理算法会随云的覆盖类型的不同而不同,对在大范围内存在薄云的影像来说,采用同态滤波法较好。同态滤波法把频率过滤与灰度变化结合起来,分离云与背景地物,最终从影像中去除云的影响,这种方法由于涉及到滤波器以及截至频率的选择,在滤波的过程中有时会导致一些有用信息的丢失。对于局部有云的影像来说,一般使用时间平均法,这种算法适用于地物特征随时间变化较小的地区,如荒漠、戈壁等地区;对于植被覆盖茂密的地区,由于植被的长势与时间有密切的关系,不同时相的植被长势在影像中有明显的区别,这种简单的替代算法不再适用。 对影像进行去云处理,不光是要简单地提高影像分类及制图的精度,同时也是对影像进行大气纠正以及对地物信息进行提取的重要步骤。最好有一种算法是能够从影像中去除云的影响,同时还能够恢复不同云区覆盖下的地物光谱信息。在本例中,我选择的去云方法没有用常规的空间域图像增强,滤波等方法,而是利用自己定义掩膜的方法。具体操作步骤如下: 1)使用BasicTool >statistics >compute statistic,弹出如下Compute Statistics Input File 对话框。点击OK,弹出如下对话框。选择Histograms 复选框 2)然后点击OK,查看统计信息。

数字图像处理实验四

数字图像处理 实验 实验四:图像增强—直方图变换学院:信息工程学院 姓名: 学号: 专业及班级: 指导教师:

一、实验目的 1.掌握灰度直方图的概念及其计算方法; 2.熟练掌握直力图均衡化和直方图规定化的计算过程; 3.熟练掌握空域滤波中常用的平滑和锐化滤波器; 4.掌握色彩直方图的概念和计算方法; 5.利用MATLAB程序进行图像增强。 二、实验内容 图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。本实验以直方图均衡化增强图像对比度的方法为主要内容,其他方法同学们可以在课后自行联系。 直方图是多种空间城处理技术的基础。直方图操作能有效地用于图像增强。除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个流行工具。 直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。灰度直方图是图像预处理中涉及最广泛的基本概念之一。 图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。 直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。 三、实验具体实现 显示原图像的直方图和经过均衡化处理过的图像直方图: I=imread('1.jpg'); % 读入原图像 J=histeq(I); %对原图像进行直方图均衡化处理 subplot(2,2,1) ;imshow(I); %显示原图像 title('原图像'); %给原图像加标题名 %对原图像进行屏幕控制;显示直方图均衡化后的图像 subplot(2,2,2) ;imshow(J); %给直方图均衡化后的图像加标题名 title('直方图均衡化后的图像') ; %对直方图均衡化后图像进行屏幕控制;作一幅子图,并排两幅图的第1幅 subplot(2,2,3) ; imhist(I,64); %将原图像直方图显示为64级灰度 title('原图像直方图') ; %给原图像直方图加标题名

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

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

实验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 点运算和直方图处理 一、实验目的 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。%建立一个新的窗口并且依次显示以上四个图的直方图

基于颜色直方图的图像检索(实验分析)

基于颜色直方图的图像检索 作者:吴亚平学号:200812017081203009 1.概述 在过去的十几年间,有许多知名机构都对图像检索系统进行了深入的研究,病开发出了相应的检索系统,例如IBM Almaden研究中心研制的QBIC系统,Virage公司研发的VIRAGE系统,麻省理工大学多媒体实验室研发的Photobook系统,哥伦比亚大学研发的VisualSeek系统,斯坦福大学研发的WBIIS系统,U.C.伯克利分校研发的Blobworld系统等等。 这些检索系统的基本特征都是基于图像像素值的特征提取相应的规则图像,例如形状、颜色、纹理等,并以此为依据对图像进行比较检索,在这篇论文中,系统采用了基于颜色特征提取的检索。基于直方图在两个颜色空间对图像特征进行判定检索。这两个颜色空间是RGB和HSV。通过对两副图像对应的RGB和HSV 值计算其距离,依据距离的远近来判断相似性,这种方法简单易行,由于丢弃了图像的形状、颜色、纹理等信息,判定的计算量相对较小。当然这也导致了两副图像之间的判定没有实际的语义上的关联,也就是说,距离相近的图像并不一定有事实上的相应联系。但是,经过试验的判定,这种基于直方图的图像检索系统能够为图片检索提供相对精确的检索结果。 2.相关知识 2.1. RGB颜色空间 RGB颜色模型中每种颜色都是由红绿蓝三种颜色组成。这种颜色模型在许多CRT显示器和彩色光栅图形设备中被广泛使用。这三种颜色被认为是其他颜色的

添加剂,对于所需要的颜色通过对这三种颜色进行不同的比例进行相加即可得到。RGB模型可以用如下的颜色坐标系表示。注意从(0,0,0)到(1,1,1)的对角线,白色代表了灰阶,RGB色彩模式俯视从白色开始的。 2.2. HSV颜色空间(也称HIS颜色空间) HSV字母分别代表了色度(Hue),饱和度(Saturation),色调。上面的锥形图说明HSV的颜色模型。Value代表了颜色的强度,他是从图像信息中分离出来,可以表示相关信息的部分。色度和饱和度代表了颜色在人眼中的生理特征。色度与红色等颜色从0到1的表示不同,色度是从红色通过黄,绿,青,蓝,洋红色,再回到红色。饱和度的区分是从0 到 1,他通过值大小来影响颜色的饱和度。对于色调,也是从0到1,随着他的增大,图像的颜色就会越来越亮。

数字图像处理实验报告--直方图规定化 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.1 直方图 一.实验目的 1.熟悉matlab图像处理工具箱及直方图函数的使用; 2.理解和掌握直方图原理和方法; 二.实验设备 1.PC机一台; 2.软件matlab。 三.程序设计 在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。 I=imread('cameraman.tif');%读取图像 subplot(1,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(1,2,2),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题 四.实验步骤 1. 启动matlab 双击桌面matlab图标启动matlab环境; 2. 在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自 带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像; 3.浏览源程序并理解含义; 4.运行,观察显示结果; 5.结束运行,退出; 五.实验结果 观察图像matlab环境下的直方图分布。

(a)原始图像 (b)原始图像直方图 六.实验报告要求 1、给出实验原理过程及实现代码; 2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。 实验1.2 灰度均衡 一.实验目的 1.熟悉matlab图像处理工具箱中灰度均衡函数的使用; 2.理解和掌握灰度均衡原理和实现方法; 二.实验设备 1.PC机一台; 2.软件matlab; 三.程序设计 在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。 I=imread('cameraman.tif');%读取图像 subplot(2,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(2,2,3),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题 a=histeq(I,256); %直方图均衡化,灰度级为256 subplot(2,2,2),imshow(a) %输出均衡化后图像 title('均衡化后图像') %在均衡化后图像中加标题 subplot(2,2,4),imhist(a) %输出均衡化后直方图

直方图图像处理实验报告

数字图像处理实验 实验一 直方图处理 实验目的 ● 理解图像直方图的概念,掌握图像直方图的绘制方法 ● 掌握直方图均衡化的原理,并会用直方图均衡化对图像进行处理。 实验要求 1.读入图像,可使用imread 。 2.输出图像,可使用imshow 。 3.绘制图像pout.tif 的归一化的直方图,可使用IPT 函数imhist 。 4.对图像进行直方图均衡化,可使用IPT 函数histeq ,对均衡化前后的图像以及直方图进行对比。 实验原理 一幅数字图像在范围[0, G ]内共有L 个灰度等级,其直方图定义为离散函数 k k n r h =)( 其中r k 是区间[0, G ]内的第k 级亮度,n k 是灰度级为r k 的图像中的像素数。 通常,我们会用到归一化直方图,即使所用所有元素h (r k )除以图像中的像素总数n 所得到的图形: n n n r h r p k k k ==)()( 其中k =1,2,…,L 。 Matlab 中提供了IPT 函数imhist 来绘制图像的直方图,但是除此之外绘制直方图的方法还有很多,可以通过条形图、杆状图等方式来表示直方图。 直方图均衡化主要用于增强动态范围偏小的图像的反差。该方法的基本思想是把原始的直方图变换为均匀分布的形状,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。 直方图均衡化一般采用原始图的累计分布函数作为变换函数。假设灰度级归一化至范围[0, 1]内,p r (r )表示给定图像中的灰度级的概率密度函数,对于离散的灰度级,均衡化变换为: ∑ ∑=====k j j k j j r k k n n r p r T s 1 1 )()( 式中k =1,2,…,L ,s k 是输出图像中的亮度值,它对应于出入图像中的亮度值r k 。 实验心得: 1. matlab 的函数的功能很强大,一个简单的函数调用就可以解决复杂的问题。这样,就需要在函数调用时注意函数的参数,否则很容易出错。比如函数 histeq(a,n),就要注意其中的n 为灰度值的个数。 2. 对于自己编写函数实现某些特定的功能时,需要对原理掌握清楚,如实验二中需自己编写函数实现图像的均衡,就要求对直方图的均衡原理掌握到位。

图像处理之直方图匹配

直方图匹配,又称直方图规定化,即变换原图的直方图为规定的某种形式的直方图,从而使两幅图像具有类似的色调和反差。直方图匹配属于非线性点运算。 直方图规定化的原理:对两个直方图都做均衡化,变成相同的归一化的均匀直方图,以此均匀直方图为媒介,再对参考图像做均衡化的逆运算 ///

/// 直方图匹配 /// /// 原始图像 /// 匹配图像 /// 处理后图像 /// 处理成功true 失败false public static bool HistogramMatching(Bitmap srcBmp, Bitmap matchingBmp, out Bitmap dstBmp) { if (srcBmp == null || matchingBmp == null) { dstBmp = null; return false; } dstBmp = new Bitmap(srcBmp); Bitmap tempSrcBmp = new Bitmap(srcBmp); Bitmap tempMatchingBmp = new Bitmap(matchingBmp); double[] srcCpR = null; double[] srcCpG = null; double[] srcCpB = null; double[] matchCpB = null; double[] matchCpG = null; double[] matchCpR = null; //分别计算两幅图像的累计概率分布 getCumulativeProbabilityRGB(tempSrcBmp, out srcCpR, out srcCpG, out srcCpB); getCumulativeProbabilityRGB(tempMatchingBmp, out matchCpR, out matchCpG, out matchCpB); double diffAR = 0, diffBR = 0, diffAG = 0, diffBG = 0, diffAB = 0, diffBB = 0; byte kR = 0, kG = 0, kB = 0; //逆映射函数 byte[] mapPixelR = new byte[256]; byte[] mapPixelG = new byte[256]; byte[] mapPixelB = new byte[256]; //分别计算RGB三个分量的逆映射函数 //R for (int i = 0; i < 256; i++) { diffBR = 1; for (int j = kR; j < 256; j++) {

基于颜色特征的图像检索算法的实现

目录 摘要 (1) 关键字 (1) 1绪论 (1) 1.1 基于内容的图像检索的概念 (1) 1.2 基于内容的图像检索的发展历史 (1) 1.3 基于内容的图像检索的特点和主要应用 (1) 1.4 基于内容的图像检索的关键技术 (2) 1.5 国内外研究现状 (3) 1.5.1 国外研究现状 (3) 1.5.2 国内研究现状 (4) 2 基于颜色特征的图像检索方法 (4) 2.1 颜色度量体系 (4) 2.2 颜色空间 (5) 2.2.1 RGB颜色空间 (5) 2.2.2 HSV颜色空间 (5) 2.2.3 CMY颜色空间 (6) 3 颜色特征的表达 (7) 3.1 颜色直方图 (7) 3.2 累加直方图 (8) 4 图像特征的相似性匹配 (9) 4.1 距离度量方法 (9) 4.2直方图的交集的方法 (9) 4.3 欧式距离法 (9) 5 图像检索算法实现 (10) 5.1程序开发运行环境 (10) 5.2 程序检索逻辑 (10) 5.3 算法具体实现 (11) 5.4 实例演示 (14) 6 全文总结与展望 (15) 6.1 全文总结 (15) 6.2 展望 (15) 致谢 (15) 参考文献 (16) 英文摘要 (16)

基于颜色特征的图像检索算法的实现 摘要:文章介绍了一种基于颜色特征的图像检索技术的算法并给出了程序实现。首先介绍了基于内容的图像检索技术、发展历史及基于内容的图像检索技术的特点和主要应用,并在此基础上探讨了该领域所用到的一些关键技术。文章着重探讨了图像的颜色空间、图像特征提取及图像相似性度量等内容,并利用matlab技术实现了一个简单图像检索的程序。文章最后则对当前基于内容图像检索技术研究热点和今后的发展方向进行简单的阐述。 关键字:基于内容的图像检索;颜色特征;颜色直方图;相似度度量方法 1 绪论 1.1 基于内容的图像检索的概念 基于内容的图像检索[1](Content Based Image Retrieval, CBIR)是一项从图像数据库中找出与检索式内容相似的图像的检索技术。它利用从图像中自动抽取出来的底层特征,如颜色、纹理、轮廓和形状等特征,进行计算和比较,检索出符合用户需求的结果图像集。目前图像检索系统技术实现的基础是对底层特征信息的计算和比较,也即是“视觉相似”。 1.2 基于内容的图像检索的发展历史 图像检索技术的发展[2]可以分为两个阶段,第一阶段始于70年代,当时的图像检索是通过人工的标注来实现的,随着计算机技术和通信网技术的发展,特别是因特网的快速发展,图像数据的容量越来越大了,这种“以关键字找图”的方法越来越不适应检索技术的发展了。由于图像内容的丰富内涵以及人们对图像内容进行抽象时的主观性不同的人对同一幅图像有不同的理解,这就引入了主观多义,不利于检索。为了克服文本标注检索的弊端,90年代研究者提出了基于内容的图像检索,其方法是:根据图像的颜色特征、纹理特征、形状特征以及空间关系等作为索引,计算查询图像和目标图像之间的相似距离,然后按相似度匹配进行检索,这种技术很大程度地利用了人们的视觉客观特性,避免不同人对图像主观理解的不同而达不到理想的搜索效果。从研究方向的层面来看,基于内容的图像检索可分为三层:第一层是根据图像的底层特性来进行检索,如颜色、纹理,形状等等,涉及图像信息处理、图像分析和相似性匹配技术;第二层是基于图像对象语义,如图像中实体及实体之间的拓扑关系的检索,对象级检索技术建立在下层特征基础上,并引入了对象模型库、对象识别和人工智能等图像理解技术;第三层是基于图像的抽象属性如行为语义,情感语义和场景语义的推理学习来进行检索。需要用到知识库和更加有效的人工智能和神经网络技术。这三个层次由低到高,与人的认知接近,下一个层次通常包含了比上一个层次更高级的语义,更高层的语义往往通过较低层的语义推理获得。尽管经过了多年的研究,较为成熟的基于内容的图像检索技术目前仍处于底层水平,由于底层研究是上层研究的基础,为了给上层建立准确、有效的图像特征提取方法,底层的研究仍在不断的发展。 1.3 基于内容的图像检索的特点和主要应用 基于内容的图像检索技术有以下特点[3]: 一是它突破了传统的基于表达式检索的局限,从媒体内容中提取信息线索。

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

题目:图像的基本处理班级: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);

线性变换、非线性变换、直方图均衡、直方图匹配

线性变换、非线性变换、直方图均衡、直方图匹配 2 图像滤波 图像卷积运算 平滑:均值平滑、中值滤波平滑 锐化:梯度检测、边缘检测、定向检测 3 彩色增强 单波段彩色变换和多波段彩色合成 4图像运算 差值运算:两幅同样行、列数的图像,对应像元的亮度值相减就是差值运算。 比值运算:两幅相同行列数的图像, 对应像元的亮度值相除就是比值运算。 5多光谱变换 其变换的本质:对遥感图像实行线性变换,使光谱空间的坐标按一定规律进行旋转。 K-L变换 K-T变换 1.教学时数 2学时 2.教学方式(手段) 讲授法、演示法 3.师生活动设计 教师提问,学生回答。 4.讲课提纲、板书设计 采用多媒体教学 5.教学内容 第五节遥感数据的融合 图像融合是指把多源遥感数据按照一定的规则或算法进行处理, 生成一幅具有新的空间、光谱和时间特征的合成图像。图像融合并不是数据间的简单复合, 其目的是: 突出有用信息, 消除或抑制无关信息; 增加解泽的可靠性, 减少识别目标的模糊性和不确定性, 为快捷、准确地识别和提取目标信息奠定基础。 1 多源遥感数据的融合 多源遥感数据融合的基本过程包括图像选择、图像配准和图像融合三个关键环节。 图像融合时,需根据融合图像的类型、特点以及融合的目的,选择恰当的融合方法。常用的融合方法主要有:基于加减乘除运算的融合,基于相关分析、主成分变换、小波分析以及基于IHS变换的融合等。 2 遥感数据与地学信息的融合 地学信息与遥感数据的结合和相互印证, 则有助于对遥感图像特征的综合

分析, 提高图像解译的科学性。 (1) 地学信息的预处理 地学信息主要指各种专题地图和专题数据, 前者包括土地利用图、植被图、土壤图、等值线图等, 后者包括各种采样分析数据、野外测量数据、调查统计数据、 DEM数据等。 地学信息的预处理包括专题地图的数字化和专题数据的图像化。 地学信息的预处理实现了地学信息到数字图像的转换, 接下来就可以进行空间配准和融合处理了。空间配准包括地学数据之间及地学与遥感数据之间的空间配准, 即运用图像处理技术, 将不同地学数据集配准到统一的地理坐标系统上, 形成以图像为基础的综合数据库。在此基础上, 便可进行遥感数据与地学数据多种形式的融合。 第七章遥感图像的目视解译 一、章节教案 1.教学目标及基本要求 (1)理解遥感图像目视解译与计算机解译; (2)掌握摄影像片的种类、解译标志及判读方法。重点掌握热红外像片的判读; (3)掌握扫描影像(MSS,TM.SPOT)的特征、解译标志及判读方法; (4)掌握微波影像的特点、解译标志及判读方法; (5)了解目视解译的基本步骤 2.教学内容及学时分配 第一节目视解译的基本原理 第二节目视解译的方法与程序(2学时) 第三节不同类型遥感图像的解译(2学时) 3.教学重点和难点 重点: 感图像目标地物识别特征、摄影像片的种类、解译标志及判读方法,扫描影像的种类、解译标志及判读方法、微波影像的特点、解译标志及判读方法、目视解译的基本步骤、遥感影像制图。 难点: 扫描影像的种类、解译标志及判读方法、微波影像的特点、解译标志及判读方法。 4.教学内容的深化和拓宽 利用ENVI软件和Landsat数据、雷达影像进行演示。 5.教学方式(手段)及教学过程中应注意的问题 教学方式(手段): 讲授法、演示法 教学过程中应注意的问题:

数字图像的点运算

中北大学 毕业设计开题报告 学生姓名:学号: 学院、系: 专业: 设计题目:图像的点运算技术研究及软件实现 指导教师: 2012年2月24日

毕业设计开题报告 1.结合毕业设计情况,根据所查阅的文献资料,撰写2000字左右的文献综述: 文献综述 近年来,网络技术和网络应用蓬勃发展,特别是Internet的日益普及,是得益于语音、成像技术为主体的多媒体技术成为业内人士研究的重点之一。伴随网络兴起的视屏游戏和视屏特技都使图像处理越来越引人注目。 数字图像处理是指用计算机对图像进行的相关处理,数字图像处理技术的内容非常丰富,总的来说数字图像处理包括以下几项内容:①点运算;②几何处理;③图像增强;④图像复原;⑤图像形态学处理;⑥图像编码;⑦图像重建;⑧模式识别[1]。本课题主要介绍点运算。例如图像在生成、获取、传输过程中、受光源、成像系统的影响, 不可避免的要造成图像像质的降低, 这时就需要图像增强; 计算机识别目标时,就需要提取目标的形状和结构特征等,这些都可以通过点运算来实现[2]。图像的点运算是一种既简单又重要的技术,它能让用户改变图像的灰度值。一幅输入图像经过点运算后将产生一幅新的输出图像,由输入图像像素点的灰度值决定相应输出图像像素点的灰度值,可由灰度变换函数表示如下:B(x,y)=f[A(x,y)][3]。下面将依次介绍图像点运算的一些技术:图像的直方图、图像灰度的线性变换、灰度拉伸、直方图均衡化和图像的细化等。 1.灰度直方图 将图像中的像素按其灰度值大小进行组合,所构成的以像素数量为因变量、灰度值为自变量的函数,就是图像的灰度直方图[3]。灰度直方图能给出一幅图像的概要信息,是图像处理与分析的重要依据之一。它是数字图像处理技术中最简单、最有用的工具,它描述了一幅图像的灰度级内容。可以说,对图像的分析与观察,直到形成一个有效的处理方法,都离不开直方图[4]。 灰度直方图是灰度的函数,它描述的是图像中具有该灰度值的像数个数,其横坐表示像素的灰度级别,纵坐标是该灰度出现的频率(像素个数)[4]。如果大多数像素灰度值趋在较暗的区域,该图像整体视觉效果偏暗;如果大多数像素灰度值趋在较亮的区

基于颜色特征的图像检索

基于颜色特征的图像检索

摘要 随着多媒体及网络技术的发展,互联网中的图像等多媒体信息的数量在迅速增加。如何在庞大的多媒体数据资源海洋中搜索到自己所需要的图像,随之成为一个函待解决的问题。近年来基于内容的图像检索技术己经成为了研究的热点,该技术具有传统文本检索方式所无法比拟的优越性,目前已被应用于多媒体通信、生物识别、知识产权保护等方面,具有广阔的发展前景。 本课题设计了基于颜色特征的图像检索系统,该系统主要包括两个关键步骤:颜色特征的提取和相似度匹配。本文中首先采用应用广泛的HSV颜色空间来表示图像的颜色特征,对颜色分量进行非等间隔量化形成特征矢量;然后用欧式距离度量函数进行图像的相似性匹配;最后在MATLAB平台下编程实现了基于颜色特征的检索系统。根据用户输入的样本图像与图像库中的图像进行特征匹配,找出与样本图像距离比较小的若干幅图像,并按照图像之间的距离由小到大的顺序显示给用户。 关键词:图像检索;直方图;颜色特征;MATLAB I

ABSTRACT With the development of multimedia technology, In Internet the number of images and other multimedia information in the rapidly increasing. How to locate the useful image in the vast multi-media is a great technology problem. In recent years, Content-based image retrieval has become a research focus, the technology has the superiority which the traditional text retrieval methods can not match.It has been widely used in multimedia communications, biometrics, intellectual property protection and so on, and has broad prospeets for development. This topic is designed based Color Image Retrieval System, which includes two key steps: color feature extraction and similarity matching. In this article was first used widely HSV color space to represent color feature image. We carried out color components quantification of non-interval to form feature vector; Then use the Euclidean distance metric function to match the similarity function of the image. Finally, this system should be implemented under the platform of the MATLAB by programming. Under user input sample image to conduct feature matching with image which in library images. In this system, It also can identify the images that have a short distance to the sample images, And in accordance with the distance between the images displayed to the user in the order from small to big. Keywords:Image Retrieval;Histogram Algorithm;Color Features;MATLAB II

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

数字图像处理实验报告 实验名称:直方图规定化 姓名: 班级: 学号: 专业:电子信息工程(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

5.辐射增强处理—直方图匹配

本科学生实验报告 实验课程名称遥感导论 实验名称辐射增强处理—直方图匹配 开课学期2009 至2010 学年_第二学期 云南师范大学旅游与地理科学学院编印 一、实验准备 实验名称:辐射增强处理—直方图匹配

实验时间:2010年6月5日 实验类型:设计性实验 1、实验目的和要求: (1)掌握遥感图像辐射增强处理的主要过程; (2)学习增强处理中的直方图的基本方法; (3)进一步熟悉erdas imagine 8.7软件的操作方法。 2、实验材料及相关设备: 计算机一台(装有erdas imagine 8.7软件)、《遥感导论》和《遥感实习教程》两课本、《Erdas imagine 中文教程》。 3、实验理论依据或知识背景: 一:直方图匹配(Histogram Match): 直方图匹配是对图像查找表进行数学变换,使一幅图像的某个波段的直方图与另一幅图相对应波段类似,或使图像所有波段的直方图与另一图像的所有对应波段类似。直方图匹配经常作为相邻图像拼接或应用多时相遥感图像进行动态变化研究的与处理工作,通过直方图匹配可以部分消除由于太阳高度角或大气影响造成的相邻图像的效果差异。二:ERDAS IMAGINE 是一款遥感图像处理系统软件。 二:ERDAS IMAGINE 是美国ERDAS 公司开发的遥感图像处理系统。它以其先进的图像处理技术,友好、灵活的用户界面和操作方式,面向广阔应用领域的产品模块,服务于不同层次用户的模型开发工具以及高度的RS/GIS(遥感图像处理和地理信息系统)集成功能,为遥感及相关应用领域的用户提供了内容丰富而功能强大的图像处理工具,代表了遥感图像处理系统未来的发展趋势。该软件功能强大,在该行业中是最好的一款软件。

相关文档
最新文档