数字图像处理matlab目标提取

合集下载

数字图像处理实验报告完整版

数字图像处理实验报告完整版

数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;实验结果如下图:源代码:>>I=imread('lily.tif')>> whos I>> imshow(I)二、压缩图像4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。

6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。

7.用imread()读入图像Sunset.jpg和Winter.jpg;8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小;9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。

其中9的实验结果如下图:源代码:4~6(接上面两个) >>I=imread('lily.tif')>> imfinfo 'lily.tif';>> imwrite(I,'lily.jpg','quality',20);>> imwrite(I,'lily.bmp');7~9 >>I=imread('Sunset.jpg');>>J=imread('Winter.jpg')>>imfinfo 'Sunset.jpg'>> imfinfo 'Winter.jpg'>>figure(1),imshow('Sunset.jpg')>>figure(2),imshow('Winter.jpg')三、二值化图像10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。

Matlab中的图像特征提取和图像分类技术

Matlab中的图像特征提取和图像分类技术

Matlab中的图像特征提取和图像分类技术图像特征提取和图像分类是计算机视觉领域中的重要研究方向。

通过对图像进行特征提取和分类,可以实现图像识别、目标检测等应用。

Matlab作为一种强大的科学计算软件,提供了丰富的功能和工具箱,能够方便快捷地实现图像特征提取和分类的算法。

一、图像特征提取图像特征提取是将图像从像素级别转换到语义级别的过程。

常用的图像特征包括颜色、纹理、形状等。

在Matlab中,有多种方法可以进行图像特征提取。

1.1 颜色特征提取颜色在图像中起着重要的作用,可以通过颜色特征来描述图像的内容。

在Matlab中,可以使用RGB颜色空间、HSV颜色空间等来表示和提取图像的颜色特征。

通过计算图像中每个像素的颜色分量,可以获得图像的颜色直方图、颜色矩等特征。

1.2 纹理特征提取纹理是图像中细微的、规律性的结构特征。

在Matlab中,可以使用灰度共生矩阵(GLCM)等方法来提取图像的纹理特征。

GLCM是描述图像灰度分布的一种统计方法,通过计算图像中像素之间的灰度关系,可以得到纹理特征如对比度、能量、熵等。

1.3 形状特征提取形状是图像中物体的外形特征,常用的形状特征包括边缘、轮廓、几何形状等。

在Matlab中,可以使用边缘检测算法、轮廓提取算法等来提取图像的形状特征。

通过识别图像中物体的边缘和轮廓,可以得到图像的形状描述符。

二、图像分类技术图像分类是将图像分为不同类别的过程,是计算机视觉中的重要应用之一。

在Matlab中,有多种方法可以实现图像分类。

2.1 传统机器学习方法传统的图像分类方法主要基于机器学习算法,如支持向量机(SVM)、K近邻(KNN)等。

在Matlab中,可以使用机器学习工具箱来实现基于特征向量的图像分类。

通过提取图像的特征向量,并使用机器学习算法进行训练和分类,可以实现准确的图像分类。

2.2 深度学习方法深度学习是近年来兴起的一种图像分类技术,利用深度神经网络来学习图像的特征表示。

matlab目标图像提取

matlab目标图像提取

matlab目标图像提取目标图像提取(Object Image Extraction)是一种图像处理技术,旨在从给定图像中提取出感兴趣的目标物体。

在Matlab中,我们可以利用各种图像处理函数和算法来实现目标图像提取。

首先,我们需要加载原始图像。

在Matlab中,可以使用imread函数来加载图像。

例如,假设我们要提取一张名为"image.jpg"的图像,可以使用以下代码加载该图像:```matlabimg = imread('image.jpg');```接下来,我们可以对图像进行预处理,以减少噪声和提高图像质量。

常见的预处理方法包括灰度化、平滑滤波和图像增强等。

例如,可以使用rgb2gray函数将彩色图像转换为灰度图像:```matlabgrayImg = rgb2gray(img);```然后,我们可以选择适当的图像分割方法来将图像分割为目标物体和背景。

常见的图像分割方法包括阈值分割、边缘检测和区域生长等。

例如,可以使用imbinarize函数对灰度图像进行二值化处理:```matlabbwImg = imbinarize(grayImg);```接下来,我们可以使用形态学操作来提取目标物体的形状和结构特征。

形态学操作主要包括膨胀、腐蚀、开运算和闭运算等。

例如,可以使用imopen函数对二值图像进行开运算:```matlabopenedImg = imopen(bwImg, se);```其中,se是指定的结构元素,用于定义形态学操作的大小和形状。

最后,我们可以根据需要对提取的目标图像进行后处理。

例如,可以使用imfill函数填充目标物体内部的空洞:```matlabfilledImg = imfill(openedImg, 'holes');```此外,我们还可以使用imclearborder函数消除与图像边界相连的目标物体,以及使用bwareafilt函数对目标物体进行面积筛选等。

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\');figure;imshow(I);title('Original Image');text(size(I,2),size(I,1)+15, ...'', ...'FontSize',7,'HorizontalAlignment','right');Warning: Image is too big to fit on screen; displaying at 25% > In imuitools\private\initSize at 86In imshow at 1962.给定函数的累积直方图。

Matlab中的图像特征提取与匹配技术

Matlab中的图像特征提取与匹配技术

Matlab中的图像特征提取与匹配技术引言图像特征提取与匹配技术是计算机视觉领域中一项重要的技术,它广泛应用于图像处理、物体识别、目标跟踪等领域。

而在Matlab中,也提供了许多强大的函数和工具箱来支持图像特征提取与匹配。

本文将介绍Matlab中的一些常用的图像特征提取与匹配技术及其应用。

一、图像特征提取1. 颜色特征提取颜色是图像中最直观的视觉特征之一,对于图像分类和目标识别起着重要的作用。

在Matlab中,我们可以通过颜色直方图、颜色矩等统计方法来提取图像的颜色特征。

2. 纹理特征提取纹理是图像中的重要特征之一,可以用来描述物体的表面细节。

Matlab提供了丰富的纹理特征提取函数,比如灰度共生矩阵(GLCM)、局部二值模式(LBP)等。

这些函数可以帮助我们从图像中提取出不同尺度和方向的纹理特征。

3. 形状特征提取形状是图像中物体的几何外形,是图像特征中最常用的特征之一。

Matlab中可以使用边缘检测算法(如Canny边缘检测)来提取图像中的边缘信息,然后通过边缘描述子(如形状上下文)来提取图像的形状特征。

4. 尺度不变特征提取尺度不变特征是一种具有尺度不变性的图像特征,可以有效应对图像中物体的尺度变化。

在Matlab中,我们可以使用尺度不变特征变换(SIFT)算法来提取图像的尺度不变特征。

SIFT算法通过检测关键点和计算局部特征描述子,能够在不同尺度下对图像进行特征提取。

二、图像特征匹配1. 特征点匹配特征点匹配是图像特征匹配的一种常用方法,通过寻找两幅图像中相同或相似的特征点,来实现图像匹配和目标检测。

在Matlab中,我们可以使用SURF(加速稳健特征)算法或者基于特征距离的匹配算法(如欧氏距离、汉明距离等)来进行特征点的匹配。

2. 相似性度量相似性度量是图像特征匹配中另一种常见的方法,它通过计算两幅图像特征之间的相似度来实现图像匹配。

在Matlab中,我们可以使用余弦相似度、欧氏距离等数学公式来度量图像特征的相似性。

数字图像处理matlab课程设计

数字图像处理matlab课程设计

数字图像处理matlab课程设计一、课程目标知识目标:1. 理解数字图像处理的基本概念,掌握图像的表示和存储方式;2. 学会使用MATLAB软件进行数字图像处理,掌握相关函数和工具箱的使用方法;3. 掌握图像增强、滤波、边缘检测等基本图像处理技术;4. 了解图像分割、特征提取等高级图像处理技术。

技能目标:1. 能够运用MATLAB进行图像读取、显示和保存操作;2. 能够独立完成图像的增强、滤波等基本处理操作;3. 能够运用边缘检测算法对图像进行处理,提取关键特征;4. 能够根据实际需求选择合适的图像处理技术,解决实际问题。

情感态度价值观目标:1. 培养学生对数字图像处理技术的兴趣,激发其学习热情;2. 培养学生的团队合作意识,使其学会在团队中分享和交流;3. 培养学生严谨的科学态度,使其注重实验数据的真实性;4. 培养学生的创新思维,鼓励其探索新方法,提高解决问题的能力。

本课程旨在通过数字图像处理MATLAB课程设计,使学生在掌握基本理论知识的基础上,运用MATLAB软件进行图像处理实践。

课程注重理论与实践相结合,培养学生具备实际操作能力,并能运用所学知识解决实际问题。

针对学生的年级特点,课程目标既注重知识技能的传授,又关注情感态度价值观的培养,为学生今后的学习和工作奠定基础。

二、教学内容1. 数字图像处理基础- 图像表示与存储(RGB、灰度、二值图像)- 图像类型转换- MATLAB图像处理工具箱介绍2. 图像增强- 直方图均衡化- 伽玛校正- 图像锐化3. 图像滤波- 均值滤波- 中值滤波- 高斯滤波- 双边滤波4. 边缘检测- 索贝尔算子- 拉普拉斯算子- Canny边缘检测5. 图像分割- 阈值分割- 区域生长- 分水岭算法6. 特征提取与描述- 霍夫变换- SIFT算法- ORB算法教学内容根据课程目标进行选择和组织,注重科学性和系统性。

教学大纲明确分为六个部分,分别对应数字图像处理的基础知识、图像增强、滤波、边缘检测、图像分割和特征提取与描述。

(完整版)数字图像处理MATLAB程序【完整版】

(完整版)数字图像处理MATLAB程序【完整版】

第一部分数字图像处理实验一图像的点运算实验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); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像') %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图') %在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。

《数字图像处理》实验教案

《数字图像处理》实验教案

《数字图像处理》实验教案一、实验目的与要求1. 实验目的(1)理解数字图像处理的基本概念和原理;(2)掌握常用数字图像处理算法和技巧;(3)培养实际操作能力和动手能力,提高解决实际问题的能力。

2. 实验要求(1)熟悉实验环境和相关软件;(2)了解实验原理和流程;二、实验环境与工具1. 实验环境(1)计算机操作系统:Windows 10/Linux/macOS;(2)编程语言:MATLAB/Python/C++等;(3)图像处理软件:Photoshop/OpenCV等。

2. 实验工具(1)编程环境:MATLAB/Python/C++开发工具;(2)图像处理软件:Photoshop/OpenCV;(3)实验教材和参考资料。

三、实验内容与步骤1. 实验一:图像读取与显示(1)打开图像处理软件,导入一幅图像;(2)了解图像的基本信息,如像素大小、分辨率等;(3)将图像显示在界面上,进行观察和分析。

2. 实验二:图像基本运算(1)对图像进行灰度化处理;(2)进行图像的直方图均衡化;(3)实现图像的滤波处理,如高斯滤波、中值滤波等。

3. 实验三:边缘检测(1)实现Sobel边缘检测算法;(2)实现Canny边缘检测算法;(3)分析不同边缘检测算法的效果和特点。

4. 实验四:图像分割(1)利用阈值分割法对图像进行分割;(2)利用区域生长法对图像进行分割;(3)分析不同图像分割算法的效果和特点。

5. 实验五:特征提取与匹配(1)提取图像的关键点,如角点、边缘点等;(2)利用特征匹配算法,如SIFT、SURF等,进行图像配准;(3)分析不同特征提取与匹配算法的效果和特点。

四、实验注意事项1. 严格遵循实验要求和步骤,确保实验的正确性;2. 注意实验环境和工具的使用,防止计算机和设备的损坏;3. 尊重知识产权,不得抄袭和剽窃他人成果;4. 实验过程中遇到问题,应及时请教老师和同学。

五、实验报告要求1. 报告内容:实验目的、实验环境、实验内容、实验步骤、实验结果及分析;2. 报告格式:文字描述清晰,条理分明,公式和图像正确无误;3. 报告篇幅:不少于2000字;4. 提交时间:实验结束后一周内。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河北农业大学数字图像处理课程设计图像颜色校正院系:信息科学与技术学院专业班级:电子0901班姓名:李文娟学号:20092340201192011年12月9日1.设计目标颜色是图像的一种重要特征,对于图像分割、目标检测与识别、图像检索等领域的研究具有重要意义。

物体在不同光源下呈现的颜色是不同的。

不同的光照环境,将会导致采集的图像的颜色之间存在一定程度的偏差,这种偏差将会影响后续图像分析的准确度。

故寻求颜色校正算法来消除或减弱光照环境等对颜色显现的影响。

灰度世界算法是以灰度世界假设为基础,假设认为对于一幅有着大量色彩变化的图像R 、G 、B 三个分量的平均值趋于同一个灰度值。

改良算法基于图象熵约束的灰度世界算法,利用图像的熵来约束增益系数,从而防止过校正现象。

在改良的基础上可以利用灰度阶分层的方法对图像中像素值偏小的进行处理,从而增强图像的亮度。

2.设计原理2.1灰度世界法灰度世界算法是以灰度世界假设为基础,假设认为对于一幅有着大量色彩变化的图像R 、G 、B 三个分量的平均值趋于同一个灰度值。

(1)首先利用公式,,计算出R 、G 、B 三个通道的平均值B G R 、、,(N 为图像的像素总数,Bi Gi Ri 、、分别为校正前第i 个像素的红绿蓝三个分量)令图像的平均灰度值 )(31B G R Grey ++=(2)求R 、G 、B 三个通道的增益系数,用如下公式:,,则对于图像中的每一个像素点C ,其校正后的三个通道为''',,B G R :kr Ri R *'= ,kg Gi G *'=,kb Bi B *'=(3)将图像各个像素的''',,B G R 三个分量调整到可以显示的范围[0,255]之内,首先要求出图像中所有''',,B G R 的最大值MAXval,令factor= MAXval/255,如果factor>1则对于图像中每个像素重新调整。

其''',,B G R 得到新的'''''',,B G R ,用如下公式计算:factor R R '''=,factor G G '''=,factorB B '''=2.2基于图像熵的灰度世界法原理:利用图像熵来约束增益系数,从而防止过校正现象。

步骤:在完成灰度世界步骤2中kr 、kg 、kb 之后进行。

(1)首先对图像三个颜色通道分别计算一维离散相对熵Hr :8)(log*)(2552∑=-=i i ik R k p k p H(其中k=R 、G 、B ,即求BRG R R R H H H ,,,8代表灰阶,25628=) (2)求R 、G 、B 三个通道的“约束”增益系数:1)1(+-=RR rc r H kr k1)1(+-=G R rc g H kg k 1)1(+-=B R rc b H kb k(3)求出增益系数rc b rcg rc r k k k ,,之后继续灰度世界算法步骤(2)即可。

3.设计程序流程图:3.1灰度世界法3.2基于图像熵的灰度世界法4.设计程序4.1灰度世界法I=imread('yumi1.jpg');I=double(I);[M,N,K]=size(I); %计算图像行列像素数S=M*N; %计算图像的像素总数SRs=0;Gs=0;Bs=0; %初始化3个通道Rs、Gs、Bs求和值Rs=double(Rs);Gs=double(Gs);Bs=double(Bs);R=I(:,:,1); %红色分量G=I(:,:,2); %绿色分量B=I(:,:,3); %蓝色分量for i=1:Mfor j=1:NRs=Rs+R(i,j); %分别计算红绿蓝的灰度值总和Gs=Gs+G(i,j);Bs=Bs+B(i,j);endendRa=Rs/S; %红色通道的平均值Ga=Gs/S; %绿色通道的平均值Ba=Bs/S; %蓝色通道的平均值Grey=(Ra+Ga+Ba)/3; %图像的平均灰度值kr1=Grey/Ra; %R通道的增益系数kg1=Grey/Ga; %G通道的增益系数kb1=Grey/Ba; %B通道的增益系数for i=1:Mfor j=1:NR1(i,j)=kr1*R(i,j); %校正后的红色通道像素计算G1(i,j)=kg1*G(i,j); %校正后的绿色通道像素计算B1(i,j)=kb1*B(i,j); %校正后的蓝色通道像素计算endendfor i=1:Mfor j=1:NMax(i,j)=max(R1(i,j),G1(i,j)); %求校正后图象中所有R1,G1,B1的最大值矩阵 Max(i,j)=max(Max(i,j),B1(i,j));endendMAX=0;for i=1:Mfor j=1:NMAX=max(MAX,Max(i,j)); %求校正后图象中所有R1,G1,B1的最大值endendfactor=MAX/255; %计算factor的值if factor>1 %判断factor的值是否大于1for i=1:Mfor j=1:NR2(i,j)=R1(i,j)/factor; %factor>1,对校正后图象红色通道重新调整 G2(i,j)=G1(i,j)/factor; %factor>1,对校正后图象绿色通道重新调整 B2(i,j)=B1(i,j)/factor; %factor>1,对校正后图象蓝色通道重新调整 I1(i,j,1)=R2(i,j);I1(i,j,2)=G2(i,j); %将重新调整后的像素合到I1图象中I1(i,j,3)=B2(i,j);endendelsefor i=1:Mfor j=1:NI1(i,j,1)=R1(i,j);I1(i,j,2)=G1(i,j); %将校正后的像素合到I1图象中I1(i,j,3)=B1(i,j);endendendI1=uint8(I1);I=uint8(I);subplot(121); imshow(I);title('原始图像');subplot(122); imshow(I1);title('校正后图像');4.2基于图像熵的灰度世界法I=imread('yumi1.jpg');I=double(I);[M,N,K]=size(I); %计算图像行列像素数S=M*N*K; %计算图像的像素总数SRs=0;Gs=0;Bs=0; %初始化3个通道Rs、Gs、Bs求和值Rs=double(Rs);Gs=double(Gs);Bs=double(Bs);R=I(:,:,1); %红色分量G=I(:,:,2); %绿色分量B=I(:,:,3); %蓝色分量for i=1:Mfor j=1:NRs=Rs+R(i,j); %分别计算红绿蓝的灰度值总和Gs=Gs+G(i,j);Bs=Bs+B(i,j);endendRa=Rs/S; %红色通道的平均值Ga=Gs/S; %绿色通道的平均值Ba=Bs/S; %蓝色通道的平均值Grey=(Ra+Ga+Ba)/3; %图像的平均灰度值kr1=Grey/Ra; %R通道的增益系数kg1=Grey/Ga; %G通道的增益系数kb1=Grey/Ba; %B通道的增益系数%改良算法,基于图像熵约束的灰度世界算法%计算R通道“约束”增益系数Rnum=0; %初始化红色通道灰度值为某一灰度值时的统计量Ri=uint8(R);for x=1:256Pr(1,x)=0; %初始化概率矩阵endfor t=0:255for i=1:Mfor j=1:Nif Ri(i,j)==tRnum=Rnum+1; %统计红色通道各阶灰度值的像素数endendendPr(1,t+1)=Rnum/S; %红色通道各灰度级的统计概率Rnum=0;if Pr(1,t+1)==0Pr(1,t+1)=1; %若概率为零则赋值为一endPr1(1,t+1)=(-1)*Pr(1,t+1)*log2(Pr(1,t+1));end%求熵Rss=0; %Rss代表信息量总和for x=1:256Rss=Rss+Pr1(1,x);Hr=Rss/8; %红色通道的一维离散相对熵endkr2=(kr1-1)*Hr+1; %红色通道“约束”增益系数%计算G通道“约束”增益系数Gnum=0; %初始化绿色通道灰度值为某一灰度值时的统计量Gi=uint8(G);for x=1:256Pg(1,x)=0; %初始化概率矩阵endfor t=0:255for i=1:Mfor j=1:Nif Gi(i,j)==tGnum=Gnum+1; %统计绿色通道各阶灰度值的像素数 endendendPg(1,t+1)=Gnum/S; %绿色通道各灰度级的统计概率Gnum=0;if Pg(1,t+1)==0Pg(1,t+1)=1; %若概率为零则赋值为一endPg1(1,t+1)=(-1)*Pg(1,t+1)*log2(Pg(1,t+1));end%求熵Gss=0; %Gss代表信息量总和for x=1:256Gss=Gss+Pg1(1,x);Hg=Gss/8; %绿色通道的一维离散相对熵endkg2=(kg1-1)*Hg+1; %绿色通道“约束”增益系数%计算B通道“约束”增益系数Bnum=0; %初始化蓝色通道灰度值为某一灰度值时的统计量Bi=uint8(B);for x=1:256Pb(1,x)=0; %初始化概率矩阵endfor t=0:255for i=1:Mfor j=1:Nif Bi(i,j)==tBnum=Bnum+1; %统计蓝色通道各阶灰度值的像素数 endendendPb(1,t+1)=Bnum/S; %蓝色通道各灰度级的统计概率Bnum=0;if Pb(1,t+1)==0 %若概率为零则赋值为一Pb(1,t+1)=1;endPb1(1,t+1)=(-1)*Pb(1,t+1)*log2(Pb(1,t+1));end%求熵Bss=0; %Bss代表信息量总和for x=1:256Bss=Bss+Pb1(1,x);Hb=Bss/8; %蓝色通道的一维离散相对熵endkb2=(kb1-1)*Hb+1; %蓝色通道“约束”增益系数for i=1:Mfor j=1:NR1(i,j)=kr2*R(i,j); %校正后的红色通道像素计算G1(i,j)=kg2*G(i,j); %校正后的绿色通道像素计算B1(i,j)=kb2*B(i,j); %校正后的蓝色通道像素计算endendfor i=1:Mfor j=1:NMax(i,j)=max(R1(i,j),G1(i,j)); %求校正后图象中所有R1,G1,B1的最大值矩阵 Max(i,j)=max(Max(i,j),B1(i,j));endendMAX=0;for i=1:Mfor j=1:NMAX=max(MAX,Max(i,j)); %求校正后图象中所有R1,G1,B1的最大值endendfactor=MAX/255; %计算factor的值if factor>1 %判断factor的值是否大于1for i=1:Mfor j=1:NR2(i,j)=R1(i,j)/factor; %factor>1,对校正后图象红色通道重新调整 G2(i,j)=G1(i,j)/factor; %factor>1,对校正后图象绿色通道重新调整 B2(i,j)=B1(i,j)/factor; %factor>1,对校正后图象蓝色通道重新调整 I1(i,j,1)=R2(i,j);I1(i,j,2)=G2(i,j); %将重新调整后的像素合到I1图象中I1(i,j,3)=B2(i,j);endendelsefor i=1:Mfor j=1:NI1(i,j,1)=R1(i,j);I1(i,j,2)=G1(i,j); %将校正后的像素合到I1图象中I1(i,j,3)=B1(i,j);endendendI1=uint8(I1);subplot(121); imshow(uint8(I));title('原始图像');subplot(122); imshow(I1);title('校正后图像');4.3 基于灰阶分层的灰度世界改良算法部分程序如下:for k=1:Kfor i=1:Mfor j=1:Nif I(i,j,k)<15I(i,j,k)=40;endendendend5.图像效果分析:5.1 基于灰度世界算法处理的图像如下:对图像的分析:处理后的图像与原图像比较偏暗且发蓝,因为原图象大部分为黑色,整体像素值偏小,所以灰度平均值较小,计算出的增益系数kr、kg、kb也较小,导致处理后的灰度值较小,所以图象整体偏暗,观察m程序运行后数据得出,增益系数中只有kb是大于1的,对图像中每个像素重新成比例的调整,只有蓝色分量得到了增益,故图像整体偏蓝。

相关文档
最新文档