灰度图像像素颜色亮度处理
- 格式:docx
- 大小:23.01 KB
- 文档页数:15
灰度处理算法主要有以下六种:
1. 最大值法:取RGB三个分量的最大值作为灰度化图像的值,会使处理后的图像的灰度偏亮。
2. 平均值法:取RGB三个分量的平均值作为灰度化图像的值,处理后的图像显得较为柔和。
3. 加权平均值法:给R、G、B三个分量赋予不同的权值,并取RGB三个分量加权的平均值作为灰度图像的均值。
由于人眼对绿色敏感度最高、红色次之,对蓝色敏感度最低,因此通常Wg>Wr>Wb,生成的图像也更符合人眼的视觉感受。
根据统计分析,通常当Wr=30%, Wg=59%, Wb=11%时得到的图像最为合理。
4. 去饱和:将RGB转换为HLS,然后将饱和度设为0,取一种颜色,转换它为最不饱和的值。
去饱和后,图片立体感减弱,但是更柔和。
5. 分解:将图片分解为不同的颜色和亮度通道进行处理。
以上是六种灰度处理算法,这些算法各有特点,可以根据具体情况选择合适的算法。
如需了解更多关于灰度处理算法的内容,建议查阅计算机视觉领域的专业书籍或文献,也可以咨询计算机视觉领域的专业人士获取更专业的解答。
灰度图像和彩色图像的概念灰度图像和彩色图像是数字图像处理领域中常用的两种不同类型的图像。
首先来介绍灰度图像。
灰度图像是一种只有灰度信息的图像,也可以说是黑白图像。
它仅使用一个通道来表示图像中的像素亮度信息,用灰度值来表示像素的亮度强度。
灰度图像的每个像素的灰度值通常是一个介于0到255之间的整数,其中0表示纯黑色,255表示纯白色。
这种图像呈现了像素的亮度分布情况,能够反映出图像的灰度层次和亮度差异。
在灰度图像中,像素的色彩信息被忽略,只有亮度信息保留下来,因此灰度图像比较简洁和直观。
在很多图像处理和分析算法中,灰度图像被广泛应用。
而彩色图像是一种包含了颜色信息的图像。
彩色图像使用多个通道来表示图像中的红、绿、蓝三原色信息,分别用不同的颜色通道来表示图像中每个像素的红色、绿色和蓝色分量的亮度。
通常,彩色图像使用RGB色彩空间,其中红(R)、绿(G)、蓝(B)分别表示图像中每个像素的红色、绿色和蓝色分量的亮度。
每个颜色通道的取值范围通常是0到255之间的整数,代表了亮度的不同强度。
彩色图像通过将这三个通道的亮度信息进行组合,可以呈现出丰富的颜色信息,能够还原真实世界中的色彩。
相比于灰度图像,彩色图像包含了额外的颜色信息,因此更具有丰富性和真实感。
通过彩色图像,我们可以观察到物体的颜色、纹理、光照等细节,使图像更加生动和细致。
彩色图像可以广泛应用于计算机视觉、图像识别、计算机图形学等领域。
在图像处理领域,常常需要将彩色图像转化为灰度图像或者从灰度图像中提取出彩色信息。
而这种转换或提取是有一定技术方法的。
常见的方法有灰度化、通道分离、彩色映射等。
灰度化是将彩色图像转化为灰度图像的过程,可以通过采用加权平均法或以人眼感知亮度的方式来实现。
通道分离是将彩色图像的红、绿、蓝三个通道分离出来,得到三个独立的灰度图像,分别表示红色通道、绿色通道和蓝色通道的亮度信息。
而彩色映射则是将灰度图像通过颜色转化表进行映射,将每个像素的灰度值与一个颜色值对应起来,从而实现从灰度图像到彩色图像的转换。
hsv中亮度v和灰度值-回复HSV(色调-饱和度-亮度)是一种常用于描述颜色的色彩空间。
在HSV 模型中,亮度(V)是指颜色的明暗程度,而灰度值表示图像像素的亮度。
亮度(Value)是HSV模型中的一个分量,它表示颜色的明暗程度。
在HSV模型中,亮度值的取值范围是0到1。
当V=0时,颜色是黑色,而当V=1时,颜色是白色。
亮度值通过改变亮度分量来控制颜色的明暗程度。
在HSV模型中,通过改变亮度分量的取值,可以获得颜色的明亮度不同的变化。
灰度值是指图像像素的亮度值,也可以称为灰阶等级。
灰度值的范围通常是0到255,表示从黑色到白色的变化。
灰度值反映了图像像素的亮度,较低的灰度值代表较暗的像素,而较高的灰度值代表较亮的像素。
在灰度图像中,每个像素只有一个灰度值,而在彩色图像中,每个像素有三个颜色分量:红色(R)、绿色(G)和蓝色(B)。
为了将彩色图像转换为灰度图像,可以使用R、G和B三个颜色分量的平均值来计算灰度值。
从彩色图像到灰度图像的转换过程可以通过以下步骤实现:1. 将彩色图像分解为红色、绿色和蓝色三个颜色分量。
2. 对于每个像素,计算其红色、绿色和蓝色分量的平均值,得到灰度值。
3. 使用计算得到的灰度值替换原始图像中的对应像素。
在计算机视觉和图像处理中,灰度图像通常用于简化图像分析和处理的复杂性。
相对于彩色图像,灰度图像存储更少的信息,计算也更加高效。
灰度图像适用于许多应用领域,例如图像增强、边缘检测、形状识别等。
亮度(V)和灰度值在图像处理和计算机图形学中扮演着重要的角色。
通过调整亮度值,可以改变图像的明暗程度,从而影响视觉感知。
而灰度值则可以用于将彩色图像转换为与亮度相关的灰度图像,简化图像分析和处理。
总结起来,亮度(V)是HSV模型中描述颜色明暗程度的分量,它的取值范围为0到1。
而灰度值表示图像像素的亮度,通常范围为0到255,用于描述图像中的灰阶等级。
通过调整亮度值可以改变颜色的明亮度,而灰度值则可以将彩色图像转换为灰度图像,简化图像处理和分析过程。
如何使用PS软件进行图像黑白场和灰度调整在图像处理中,黑白场和灰度调整是非常重要的操作,它们可以帮助我们优化图像的对比度、色调和整体视觉效果。
下面,我将详细为您介绍如何使用 PS 软件来进行这些调整。
首先,打开 PS 软件并导入您想要处理的图像。
在菜单栏中选择“文件”>“打开”,然后找到您的图像文件并点击“打开”。
一、黑白场调整黑白场调整的目的是确定图像中最暗和最亮的点,从而增强图像的对比度和层次感。
1、打开“色阶”对话框在菜单栏中选择“图像”>“调整”>“色阶”(快捷键:Ctrl + L),或者在“调整”面板中点击“色阶”图标。
2、认识“色阶”对话框在“色阶”对话框中,您会看到一个直方图,它显示了图像中像素的亮度分布情况。
直方图的横轴从左到右代表从暗到亮的亮度值,纵轴代表像素的数量。
在直方图下方,有三个滑块:黑色滑块(左侧)、灰色滑块(中间)和白色滑块(右侧)。
3、调整黑色滑块将黑色滑块向右拖动,直到图像中您认为应该是最暗的区域变得足够暗,但又不过暗以至于丢失细节。
这样可以增加图像中暗部的对比度。
4、调整白色滑块将白色滑块向左拖动,直到图像中您认为应该是最亮的区域变得足够亮,但又不过亮以至于出现过曝。
这样可以增加图像中亮部的对比度。
5、观察调整效果在调整滑块的过程中,实时观察图像的变化,以达到满意的效果。
二、灰度调整灰度调整可以将彩色图像转换为灰度图像,或者对灰度图像的色调进行调整。
1、彩色图像转灰度在菜单栏中选择“图像”>“模式”>“灰度”。
此时,PS 会将彩色图像转换为灰度图像,但这种方式可能会导致一些细节丢失。
如果您想要更精细的控制,可以使用以下方法:2、通道混合器调整在菜单栏中选择“图像”>“调整”>“通道混合器”。
在“通道混合器”对话框中,勾选“单色”选项,然后调整红色、绿色和蓝色通道的百分比,以达到您想要的灰度效果。
例如,如果您增加红色通道的百分比,灰度图像会显得更亮;如果增加蓝色通道的百分比,灰度图像会显得更暗。
亮度与灰阶的公式亮度和灰阶是图像处理中常用的概念,它们有不同的定义和计算方法。
首先,我们来看一下亮度的概念。
亮度是描述图像明暗程度的属性,可以理解为图像的整体明亮程度。
在RGB颜色模型中,亮度可以通过对各个颜色通道进行加权平均来计算得到。
一种常见的亮度计算公式是:Y=0.299*R+0.587*G+0.114*B其中,R、G、B分别代表红、绿、蓝三个颜色通道的数值,Y代表亮度。
接下来我们来了解一下灰阶。
灰阶是图像处理中用来表示图像亮度级别的概念,也被称为灰度级。
灰阶通常以数字的形式表示,范围通常为0到255,表示从黑到白的256个不同的亮度级别。
图像中的每一个像素都有自己的灰阶值。
灰度图像可以通过将彩色图像的每一个像素的RGB值按照一定的比例进行转换而得到。
一个常见的方法是:Gray = 0.299 * R + 0.587 * G + 0.114 * B在这个方法中,每个颜色通道的权重与亮度的计算公式是相同的。
通过这种方法,我们可以得到一个灰度图像,其中每个像素都有一个对应的灰阶值。
除了RGB颜色模型中的加权平均方法,还有其他一些方法可以用来计算亮度和灰阶。
一种常见的方法是取每个像素的最大值作为亮度值。
这种方法在一些应用中被称为最值法。
例如,如果一个像素的红色通道值最大,那么这个像素的亮度就等于红色通道的值。
另一种常见的方法是取每个像素的平均值作为亮度值。
这种方法在一些应用中被称为平均值法。
例如,一个像素的RGB值分别为(100,120,140),那么这个像素的亮度就等于(100+120+140)/3=120。
对于灰阶的计算,也存在其他一些方法。
例如,可以使用更多的颜色通道来计算灰阶值。
在RGB颜色模型中,除了红、绿、蓝三个通道,还可以使用其他通道,如alpha通道或透明度通道,来计算灰阶值。
此外,还有一些更加复杂和高级的方法可以用来计算亮度和灰阶。
例如,可以使用基于人眼感知到亮度变化的方法来计算亮度值。
灰度级检测方法介绍灰度级检测方法是数字图像处理中常用的一种技术,它可以将彩色图像转换为灰度图像,并通过对灰度级进行分析和处理来实现图像的各种目标。
本文将介绍灰度级检测方法的基本原理和常见的实现技术,以及其在图像处理领域中的应用。
一、基本原理灰度级是指图像中每个像素的亮度值,通常以0-255的整数表示。
将彩色图像转换为灰度图像的基本原理是通过对像素值的计算和处理,将彩色信息转换为灰度信息。
常见的方法有平均值法、最大值法和加权平均法等。
平均值法是将彩色图像中的红、绿、蓝三个分量的像素值相加,再取平均值,得到灰度图像中的像素值。
最大值法则是选择彩色图像中的红、绿、蓝三个分量中最大的一个作为灰度图像中的像素值。
加权平均法是根据各个颜色分量的重要性程度,对其像素值进行加权处理,再取平均值得到灰度图像中的像素值。
二、实现技术在实现灰度级检测时,可以利用图像处理软件或编程语言进行操作。
常用的图像处理软件有Photoshop、GIMP等,而编程语言中的OpenCV和MATLAB也提供了丰富的图像处理函数和算法库。
利用图像处理软件进行灰度级检测,可以直观地选择并操作图像中的像素值,提供了可视化的界面和便捷的操作方式。
而通过编程语言进行灰度级检测,则更加灵活,可以实现自定义的算法并进行批量处理和分析。
三、应用领域灰度级检测方法在图像处理的各个领域中都有广泛应用。
以下就其中几个常见的应用领域进行简要介绍。
1. 图像增强通过灰度级检测方法,可以根据图像中的亮度信息对图像进行增强处理。
例如,可以根据亮度的分布情况对图像进行直方图均衡化,使得图像的对比度得到增强,细节更加清晰。
2. 特征提取在图像识别和图像分析中,利用灰度级检测方法可以提取图像的各种特征信息,例如纹理、形状和边缘等。
这些特征信息对于图像分类、匹配和识别等具有重要意义。
3. 图像分割通过灰度级检测方法,可以根据图像亮度的变化将图像划分为不同的区域。
这对于图像分割和目标提取具有重要意义,可以用于目标检测、图像分析和计算机视觉等领域。
数字图像处理算法原理
数字图像处理是指应用数字计算机对图像进行处理与分析的技术。
其中涉及到的算法原理包括:
1. 灰度变换算法:通过改变图像中像素的灰度级分布,实现对图像亮度、对比度、伽马校正等属性的调整。
常用的灰度变换算法有线性变换、逆变换、非线性自适应直方图均衡化等。
2. 图像滤波算法:用于平滑图像、强调图像细节或检测图像中的边缘。
常用的滤波算法包括均值滤波、中值滤波、高斯滤波、导向滤波等。
3. 图像增强算法:通过改善图像的质量和可视化效果,使图像更适合人眼观察和计算机分析。
常用的图像增强算法有直方图均衡化、局部对比度增强、锐化增强等。
4. 彩色图像处理算法:针对彩色图像的特点,进行颜色空间转换、亮度调整、色彩增强、色彩平衡等操作。
常用的彩色图像处理算法有RGB空间转换为HSV空间、色彩补偿、白平衡调整等。
5. 图像分割与边缘检测算法:将图像划分为不同的区域或提取图像中感兴趣的目标,常用的算法包括阈值分割、基于边缘的分割、基于区域的分割等。
6. 图像压缩与编解码算法:将图像数据经过压缩编码处理,以减少存储空间和传输带宽。
常用的压缩算法有无损压缩算法
(如RLE、Huffman编码)和有损压缩算法(如JPEG)。
除了以上算法原理外,还包括图像配准、图像恢复、形态学处理、基于特征的图像分析等其他算法。
这些算法原理的应用能够有效地处理数字图像,对于图像识别、图像搜索、医学图像分析等领域具有广泛的应用价值。
图像处理技术中的颜色标定方法在图像处理技术中,颜色标定方法是一项关键技术,它可以帮助我们准确地分析和处理图像。
颜色标定是指将图像中的像素值映射到特定的颜色空间,从而实现对图像颜色的精确度量和控制。
在本文中,我们将介绍几种常见的图像处理技术中的颜色标定方法。
最常用的颜色标定方法之一是灰度标定法。
灰度标定是将图像中的像素值映射到灰度颜色空间的过程。
通过灰度标定,我们可以将图像中的每个像素值映射到0到255的灰度级别上。
这种方法适用于大多数图像处理任务,尤其是在需要进行亮度和对比度调整、图像增强等方面。
还有一种常见的颜色标定方法是RGB标定法。
RGB标定是将图像中的像素值映射到红、绿、蓝三个分量颜色空间的过程。
通过RGB标定,我们可以通过调整红、绿、蓝三个分量的值来改变图像的颜色。
这种方法常用于图像编辑、颜色纠正、色彩滤镜等方面。
还有一种常用的颜色标定方法是HSV标定法。
HSV标定是将图像中的像素值映射到色相、饱和度和亮度三个分量颜色空间的过程。
与RGB标定相比,HSV标定可以更直观地调整图像的颜色。
通过调整色相、饱和度和亮度三个参数,我们可以实现更精确的颜色调整和分析。
还有一种常用的颜色标定方法是YUV标定法。
YUV标定是将图像中的像素值映射到亮度、色度和饱和度三个分量颜色空间的过程。
在这种标定方法中,亮度分量表示图像的明暗程度,色度分量表示图像中的颜色信息,而饱和度分量则表示颜色的浓淡。
YUV标定方法常用于视频压缩、彩色图像转黑白图像等方面。
除了上述几种常见的颜色标定方法,还有一些其他的方法,如Lab标定法、CMYK标定法等。
Lab标定是一种基于人眼感知的颜色标定方法,它可以更准确地模拟人眼对颜色的感知。
CMYK标定是一种用于印刷领域的颜色标定方法,它可以将图像中的像素值映射到青、洋红、黄和黑四个分量颜色空间。
总结起来,颜色标定是图像处理技术中的重要环节,它可以帮助我们实现对图像颜色的精确控制和分析。
使用Adobe Photoshop软件进行黑白和灰度图像处理图像处理是现代摄影中至关重要的一环。
与过去不同,如今许多摄影师使用数字相机拍摄并将图像传输到计算机上进行后期处理。
Adobe Photoshop软件作为图像处理的标准之一,提供了丰富的功能和工具,使摄影师能够调整、修饰和增强图像。
在这篇文章中,我们将探讨使用Adobe Photoshop软件进行黑白和灰度图像处理的方法和技巧。
首先,让我们来了解黑白图像处理的重要性。
尽管现在摄影技术的进步使得彩色成为主流,但黑白照片仍然有着不可替代的魅力。
黑白图像减少了色彩的干扰,突出了构图、光影和细节。
通过将彩色图像转换为黑白,我们可以更好地关注主题的表达和情感的传递。
Adobe Photoshop提供了多种方式进行黑白图像处理,比如灰度化、通道混合等。
其次,让我们来看看如何使用Adobe Photoshop软件进行黑白图像处理。
首先,打开所需处理的彩色照片。
然后,在“图像”菜单中选择“调整”下的“黑白”。
此时,软件将会自动将图像转换为黑白,并提供了一系列的滑块调整器,允许我们在不同的色彩通道上进行调整。
通过移动这些滑块,我们可以改变图像中不同颜色的亮度和对比度,实现更精细的黑白效果。
此外,Adobe Photoshop还提供了一些预设效果供选择,比如“高对比度红滤镜”,可以使图像中的红色更加突出。
除了黑白图像处理,灰度图像处理也是一种常见的修饰手法。
在某些情况下,我们不需要完全去掉颜色,而只是想将图像转换为灰度,以突出其细节和纹理。
Adobe Photoshop中的灰度处理非常简单。
打开需要处理的图像后,在“图像”菜单中选择“模式”,然后选择“灰度”。
此时,软件将会自动将图像转换为灰度,并保留其原有分辨率和细节。
此外,我们也可以通过调整亮度和对比度,以及应用滤镜效果来进一步增强灰度图像的质量。
除了基本的黑白和灰度图像处理,Adobe Photoshop还提供了一些高级功能和技巧,如用色彩修正工具添加修饰、利用蒙版和调整图层来精细调整、使用滤镜效果增加艺术氛围等。
图像的处理(一)----灰度图像像素颜色亮度处理以前看了一些有关图像处理的书,对我起到了很大的帮助。
所以,今天我就将我学过的知识整理出来,一方面可以给人学习,另一方面也可以请各位高手指点。
我要说的图像处理是针对程序方面的。
所以,先做一个程序来放置图形。
在这里,我使用了Delphi作为工具。
因为,在我使用过的众多编译器当中,Delphi对图形的支持最好。
还有,这里我并不是讲语法。
所以,有些代码我就不详细说明。
不便之处,敬请原谅。
注意:本文章的示例程序所用的东西不超过GDI的范围。
在图像处理中,速度是很重要的。
因此,我们得重新处理一下TBitmap,得到TVczhBitmap。
这只是因为GetPixels和SetPixels的速度太慢,换一个方法而已。
unit untBitmapProc;interfaceuses Graphics, SysUtils;typeTVczhBitmap=class(TBitmap)privateData:PByteArray;Line:Integer;procedure SetFormat;function GetBytePointer(X,Y: Integer):PByte;procedure SetBytes(X,Y: Integer;Value:Byte);function GetBytes(X,Y: Integer):Byte;protectedpublishedconstructor Create;publicproperty Bytes[X,Y:Integer]:Byte read GetBytes write SetBytes; procedure LoadFromFile(FileName: String);procedure ToGray;end;implementationprocedure TVczhBitmap.SetFormat; beginHandleType:=bmDIB;PixelFormat:=pf24bit;end;function TVczhBitmap.GetBytePointer(X,Y: Integer):PByte;beginif Line<>Y thenbeginLine:=Y;Data:=ScanLine[Y];end;Longint(result):=Longint(Data)+X;end;procedure TVczhBitmap.SetBytes(X,Y: Integer;Value:Byte);beginGetBytePointer(X,Y)^:=Value;end;function TVczhBitmap.GetBytes(X,Y: Integer):Byte;beginresult:=GetBytePointer(X,Y)^;end;constructor TVczhBitmap.Create; begininherited Create;SetFormat;=-1;end;procedure TVczhBitmap.LoadFromFile(FileName: String);begininherited LoadFromFile(FileName); SetFormat;Line:=-1;end;procedure TVczhBitmap.ToGray;var X,Y,R:Integer;B:Byte;beginfor Y:=0 to Height-1 dofor X:=0 to Width-1 doR:=0;for B:=0 to 2 doR:=R+GetBytes(X*3+B,Y);for B:=0 to 2 doSetBytes(X*3+B,Y,R div 3);end;end;end.此后,我们需要建立几个窗体。
第一个用来显示图片,第二个用来处理图片,其他的窗体都继承自第二个窗体,包含实际的处理方法。
先看第二个窗口:unit untProc;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls, untBitmapProc, StdCtrls, ComCtrls;typeTfrmProcessor = class(TForm) pbBar:TPaintBox;gpProc:TGroupBox;Button1: TButton;procedure FormCreate(Sender: TObject);procedure FormDestroy(Sender: TObject);procedure FormShow(Sender: TObject);procedure pbBarPaint(Sender: TObject);procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations } BarData:0..255]of Byte;Bar:TVczhBitmap;procedure DrawBar;end;varfrmProcessor:TfrmProcessor;implementation{$R *.dfm}uses untViewer;procedure TfrmProcessor.DrawBar;var I:Integer;beginBar.Canvas.FillRect(Bar.Canvas.ClipRect); Bar.Canvas.MoveTo(0,255-BarData[0]); for I:=1 to 255 doBar.Canvas.LineTo(I,255-BarData[I]);procedure TfrmProcessor.FormCreate(Sender: TObject);beginBar:=TVczhBitmap.Create;Bar.Width:=256;Bar.Height:=256;Bar.Canvas.Brush.Color:=clWhite;Bar.Canvas.Brush.Style:=bsSolid;end;procedure TfrmProcessor.FormDestroy(Sender: TObject);beginBar.Free;end;procedure TfrmProcessor.FormShow(Sender:TObject);var I:Integer;beginfor I:=0 to 255 doBarData[I]:=I;DrawBar;end;procedure TfrmProcessor.pbBarPaint(Sender: TObject);beginpbBar.Canvas.Draw(0,0,Bar);end;procedure TfrmProcessor.Button1Click(Sender: TObject);var X,Y:Integer;beginfor Y:=0 to Buffer.Height-1 dofor X:=0 to Buffer.Width*3-1 doPlayed.Bytes[X,Y]:=BarData[Buffer.Bytes[X,Y]];frmViewer.FormPaint(frmViewer);end;end.之后,做一个窗口继承自它,则调整BarData[]后,按Apply即可看到结果。
现在开始将图像处理。
具体效果见示例程序。
一、颜色反转。
灰度图像的颜色都是从0~255,所以,为了使颜色反转,我们可以用255减去该颜色值以得到反转后的颜色。
var I:Integer;begininherited;for I:=0 to 255 doBarData[I]:=255-I;//用255减去该颜色值DrawBar;pbBarPaint(pbBar);end;二、缩小颜色范围以增强或减弱亮度颜色本来是从0~255的。
如果调节它的范围,例如从0~16,则会是图像明显变暗。
我们可以把起始值设为a,把终止值设为b,则新的颜色值New=a+(b-1)*Old/255。
这样做的话可以改变亮度,并且不会破坏原先颜色的顺序。
代码如下var I:Integer;beginfor I:=0 to 255 doBarData[I]:=(255-sbMin.Position)+Round((sbMin.Position-sbMax.Position)/255*I);DrawBar;pbBarPaint(pbBar);Button1Click(Button1);end;这里的sbMin.Position和sbMaxPosition都是反转过的。
所以使用时要用255去减三、增加某个范围内的颜色范围如果图像本身的颜色范围很小的画,你可以通过这种方法来加大图像的对比度,有利于对图像的分析。
具体做法:选取一个值a做为起始值,选取一个值b做为终止值,然后按以下公式变形:|0 (X<=a)f(X)= |255/(b-a)*(X-a)|255(X>=b)var I:Integer;beginfor I:=0 to 255 dobeginif I<=sbMin.Position thenBarData[I]:=0else if I>=sbMax.Position thenBarData[I]:=255elseBarData[I]:=Round(255/(sbMax.Position-sbMin.Position)*(I-sbMin.Position));end;DrawBar;pbBarPaint(pbBar);Button1Click(Button1);end;四、变为黑白图片在使用第三个功能的时候,你会发现当b<=a时,图像上的颜色除了黑色就是白色。
这样操作的好处是不能直接显示出来的。
这只要到了比较高级的图像处理如边缘检测等,才有作用。
本例可以拿第三种方法的公式再变形,因此不作详细阐述。
五、指数级亮度调整我们假设这个图的定义域是[0,1],值域也是[0,1]。
那么,定义函数f(x)=x^c,则f(x)的图像有一段如上图。
我们再用鼠标操作时,可以在上面取一点P(a,b),然后使f(x)通过点P,则c=ln(b)/ln(a)。
有了c之后,我们就可以对颜色进行操作了:New=(Old/255)^c*255=exp(ln(old/255)*c)*255var ea,eb,ec:Extended;I:Integer;beginea:=A/255;eb:=B/255;ec:=Ln(eb)/Ln(ea);for I:=1 to 255 doBarData[I]:=Round(Exp(Ln((I/255))*ec)*255);DrawBar;pbBarPaint(pbBar);Button1Click(Button1);end;这样做可以调节图像的亮度。