图像灰度变换

合集下载

图像灰度变换原理

图像灰度变换原理

图像灰度变换原理
图像灰度变换原理是指通过对图像的像素点进行灰度值的变换,从而改变图像的亮度和对比度。

灰度变换可以通过增加或减少像素值来改变图像的灰度级,并根据需求来调整图像的亮度和对比度。

灰度变换可以用以下数学公式表示:
g(x, y) = T(f(x, y))
其中,f(x, y)表示输入图像的灰度级,g(x, y)表示输出图像的
灰度级,T表示灰度变换函数。

常见的灰度变换函数有线性变换、非线性变换和直方图均衡化等。

线性灰度变换函数是最简单的一种灰度变换方式,通过对输入图像的每一个像素点应用一个线性方程来实现灰度的线性变换。

线性变换可以改变图像的对比度和亮度。

常见的线性灰度变换函数有平方根变换、指数变换和对数变换等。

非线性灰度变换函数则是通过对输入图像的每一个像素点应用一个非线性方程来实现灰度的非线性变换。

非线性变换可以实现更加复杂的灰度调整,例如增强图像的细节或者减少图像的噪声。

常见的非线性灰度变换函数有伽马变换和分段线性变换等。

直方图均衡化是一种特殊的灰度变换方法,通过对输入图像的
灰度级进行重新分配,使得输出图像的灰度级分布更加均匀。

直方图均衡化可以提高图像的对比度,使得图像的细节更加清晰。

总的来说,图像灰度变换原理是通过对图像的像素点进行灰度值的变换,来改变图像的亮度和对比度。

不同的灰度变换函数可以实现不同的灰度调整效果,根据需求选择合适的灰度变换方法可以获得满足要求的图像效果。

4-1、图像增强之灰度变换和彩色增强

4-1、图像增强之灰度变换和彩色增强

g=9*log(f+1)
作用:将暗的部分扩展,而将亮的部分抑制。(示例)
4、直方图均衡化
直方图均衡方法的基本思想是对 在图像中像素个数多的灰度级进行展 宽,而对像素个数少的灰度级进行缩 减。从而达到清晰图像的目的。 用以改变图像整体偏暗或整体偏亮, 灰度层次不丰富的情况,将直方图的 分布变成均匀分布
2、 对比度展宽(灰度线性变换)
一、对比度展宽的目的:
是一点对一点的灰度级的影射。设新、旧图的 灰度级分别为g和f,g和f 均在[0,255]间变化。 实质是旧图到新图的灰度级的逐点映射。 g=G(f) 目的:将人所关心的部分强调出来。 特点:变换前后像素个数不变,但不同像素之间的 灰度差变大,对比度加大,视觉效果增强gγຫໍສະໝຸດ 255gbβ
ga
β
α
a b 255
f
a
b 255
f
2、对比度展宽 三、灰级窗切片:
只保留感兴趣的部分,其余部分置为 0。如: 0
g
255
a
b
255
f
2、对比度展宽
四、二值化图像: 可将多灰度的图像转换成黑白二值 图像;方法是对图像取一阈值,大 于该阈值的像素赋予灰度1,小于该 阈值的像素赋予灰度0
I ( x, y) e( x, y) g ( x, y)
g ( x, y) e ( x, y) I ( x, y)
1
1、灰度级的修正
灰度级修正的方法: (1)先用该系统对一已知亮度均匀的图像进行 记录,得到一个实际的“非均匀曝光”的图像, 求得是图像发生畸变的比例因子 (2)当用同一系统对其他图像进行记录时,便 可通过该比例因子求出理想图像
51

Python图像运算之图像灰度线性变换详解

Python图像运算之图像灰度线性变换详解

Python图像运算之图像灰度线性变换详解⽬录⼀.灰度线性变换⼆.图像灰度上移变换三.图像对⽐度增强变换四.图像对⽐度减弱变换五.图像灰度反⾊变换六.总结⼀.灰度线性变换图像的灰度线性变换是通过建⽴灰度映射来调整原始图像的灰度,从⽽改善图像的质量,凸显图像的细节,提⾼图像的对⽐度。

灰度线性变换的计算公式如(12-1)所⽰:该公式中DB表⽰灰度线性变换后的灰度值,DA表⽰变换前输⼊图像的灰度值,α和b为线性变换⽅程f(D)的参数,分别表⽰斜率和截距[1-4]。

当α=1,b=0时,保持原始图像当α=1,b!=0时,图像所有的灰度值上移或下移当α=-1,b=255时,原始图像的灰度值反转当α>1时,输出图像的对⽐度增强当0<α<1时,输出图像的对⽐度减⼩当α<0时,原始图像暗区域变亮,亮区域变暗,图像求补如图12-1所⽰,显⽰了图像的灰度线性变换对应的效果图。

⼆.图像灰度上移变换该算法将实现图像灰度值的上移,从⽽提升图像的亮度。

DB=DA+50具体实现代码如下所⽰。

由于图像的灰度值位于0⾄255区间之内,所以需要对灰度值进⾏溢出判断。

# -*- coding: utf-8 -*-# By:Eastmountimport cv2import numpy as npimport matplotlib.pyplot as plt#读取原始图像img = cv2.imread('luo.png')#图像灰度转换grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#获取图像⾼度和宽度height = grayImage.shape[0]width = grayImage.shape[1]#创建⼀幅图像result = np.zeros((height, width), np.uint8)#图像灰度上移变换 DB=DA+50for i in range(height):for j in range(width):if (int(grayImage[i,j]+50) > 255):gray = 255else:gray = int(grayImage[i,j]+50)result[i,j] = np.uint8(gray)#显⽰图像cv2.imshow("Gray Image", grayImage)cv2.imshow("Result", result)#等待显⽰cv2.waitKey(0)cv2.destroyAllWindows()其输出结果如图12-2所⽰,图像的所有灰度值上移50,图像变得更⽩了。

灰度变换原理

灰度变换原理

灰度变换原理
灰度变换是一种图像处理技术,用于改变图像的亮度和对比度。

其原理是通过对图像中每个像素的灰度值进行线性或非线性的映射,从而调整图像的整体亮度分布。

在灰度变换中,会根据图像的特征和需求选择不同的变换函数。

常用的线性灰度变换函数包括对比度拉伸、对数变换和伽马校正等。

对比度拉伸是将输入灰度值的范围扩展至输出灰度值的全范围。

这样可以增加图像中灰度级的细节,使得图像更具有视觉效果和观赏性。

对数变换用于增强图像的暗部细节。

它可以对较低灰度级的像素进行放大,从而增加图像中低对比度的细节信息。

伽马校正是一种非线性的灰度变换方法,用于调整图像的亮度分布。

它可以改变图像中灰度级的分布和整体亮度,从而达到对图像对比度和真实感的调整效果。

需要注意的是,灰度变换只改变图像的亮度分布,而不改变其颜色信息。

灰度变换在图像增强、对比度调整和色彩校正等领域都有广泛的应用。

它可以帮助改善图像的质量,使得图像更加清晰、鲜明和易于分析。

各灰度级的变换函数值sk公式

各灰度级的变换函数值sk公式

各灰度级的变换函数值sk公式在数字图像处理中,图像的灰度级是指像素点的亮度强度的级别,通常以0-255的数字表示。

图像灰度级的变换函数值sk是指将原始图像中的一个灰度级映射到另一个灰度级时,所需要的函数值。

灰度级变换是数字图像处理中常用的操作之一,其主要作用是改变图像的亮度、对比度、色彩等特征,从而使图像更加清晰、鲜艳、易于识别和处理。

不同的图像灰度级变换函数可以产生不同的效果,因此在实际应用中需要根据具体的需求选择适当的函数。

下面我们将详细介绍各灰度级的变换函数值sk公式,以及它们的作用和应用场景:1. 线性变换函数线性变换函数是最常用的一种灰度级变换函数,其公式为:s_k = [(L-1)/(H-L)]*(r_k-L)其中,L和H分别表示原始图像灰度级的最小值和最大值,r_k表示原始图像的像素值,s_k表示变换后的像素值。

线性变换函数的作用是增加或减小图像的对比度,使图像更加清晰、鲜明。

它常用于图像增强、亮度调整和对比度调整等操作中。

2. 对数变换函数对数变换函数的公式为:s_k = c * log(1+r_k)其中,c为常数,r_k和s_k的含义同上。

对数变换函数的主要作用是扩展暗部细节,减少高光区域的亮度,从而达到良好的曝光平衡。

它常用于夜间拍摄或者对内部细节有特殊需求的图像处理中。

3. 幂律变换函数幂律变换函数的公式为:s_k = c * r_k^γ其中,c为常数,γ为幂律指数,r_k和s_k的含义同上。

幂律变换函数的主要作用是突出图像细节、增加图像对比度和色彩饱和度,使图像更加明亮鲜艳。

它适用于各种类型的图像处理,尤其是自然景观、建筑和人像等领域。

4. 反转变换函数反转变换函数的公式为:s_k = L-1-r_k其中,L为原始图像的灰度级最大值,r_k和s_k的含义同上。

反转变换函数的作用是颠倒图像亮度的分布,使原来的暗区变为明区,明区变为暗区,从而产生强烈的视觉反差。

它常用于黑白摄影、动画和游戏制作等领域。

灰度变换的基本原理

灰度变换的基本原理

灰度变换的基本原理灰度变换是数字图像处理中一种常见的操作技术,它通过改变图像中每个像素的亮度值,从而实现图像的增强或调整。

灰度变换的基本原理是将原始图像的灰度级映射到一个新的灰度级,使得图像的视觉效果更加理想。

在进行灰度变换之前,我们需要了解一些基本概念。

首先,灰度级是指图像中每个像素的亮度值,通常用0到255的整数表示,其中0代表黑色,255代表白色。

其次,灰度变换函数是将原始图像的灰度级映射到新的灰度级的函数,它决定了图像的最终效果。

常用的灰度变换函数包括线性变换、对数变换、幂律变换等。

线性变换是最简单的一种灰度变换方法,它通过一条直线的斜率和截距来调整图像的亮度。

对数变换和幂律变换则是非线性变换方法,它们通过对原始图像的灰度级取对数或幂次来改变图像的亮度分布。

灰度变换的具体步骤如下:首先,读入原始图像,并将其转换为灰度图像。

然后,选择合适的灰度变换函数,并根据函数的定义计算每个像素的新灰度级。

最后,将新的灰度级赋值给每个像素,并生成处理后的图像。

灰度变换在图像处理中有着广泛的应用。

首先,它可以用于图像增强,即通过调整图像的亮度和对比度,使图像更加清晰和鲜明。

其次,灰度变换可以用于图像的调整和校正,例如校正图像的曝光不足或过度曝光的问题。

此外,灰度变换还可以用于图像的压缩和编码,从而减少图像的存储空间和传输带宽。

灰度变换虽然简单,但在实际应用中需要根据具体情况选择合适的变换函数和参数。

例如,在图像增强中,可以根据图像的亮度分布选择线性变换、对数变换或幂律变换。

对于高动态范围图像,可以采用自适应灰度变换方法,根据图像的局部特征进行变换。

需要注意的是,灰度变换可能会引入一些副作用,例如图像的噪声会被放大,导致图像质量的下降。

因此,在进行灰度变换时,需要考虑图像的特点和应用需求,避免不必要的变换和误操作。

灰度变换是数字图像处理中一种重要的操作技术,它通过改变图像的灰度级来实现图像的增强和调整。

灰度变换的基本原理是将原始图像的灰度级映射到一个新的灰度级,从而改变图像的亮度分布和视觉效果。

图像灰度变换 原理

图像灰度变换 原理

图像灰度变换原理
图像灰度变换是一种图像处理的方法,通过改变图像的灰度级别来增强或调整图像的显示效果。

其原理是对图像中的每个像素点进行灰度级别的转换。

常用的灰度变换函数有线性灰度变换、非线性灰度变换和直方图均衡化。

线性灰度变换是指通过线性映射将原图像的灰度级别转换为新的灰度级别。

常见的线性灰度变换函数有平移、缩放和对比度调整。

平移是将当前灰度级别加上一个偏移量,从而改变整个图像的亮度。

缩放是将灰度级别乘上一个缩放因子,从而调整图像的对比度。

对比度调整是通过同时进行平移和缩放,改变图像的亮度和对比度。

非线性灰度变换是指通过非线性函数将原图像的灰度级别转换为新的灰度级别。

常见的非线性灰度变换函数有幂律变换和对数变换。

幂律变换是通过对原图像的每个像素点进行幂次运算,从而调整图像的亮度和对比度。

对数变换是将原图像的灰度级别取对数,从而改变图像的亮度和对比度。

直方图均衡化是一种将原图像的灰度级别映射到均匀分布的灰度级别上的方法。

其原理是通过计算原图像的灰度直方图,并根据直方图进行灰度级别的重新分布。

这样可以增强图像的对比度和细节,并改善图像的视觉效果。

通过灰度变换,可以调整图像的亮度、对比度、色彩等特性,从而改善图像的视觉效果、增强图像的细节和信息。

在图像处
理和计算机视觉领域,灰度变换是一种常用的图像增强和预处理方法。

灰度线性变换

灰度线性变换

灰度线性变换
灰度线性变换(Gray-Level Linear Transformation, GLT)是一种常用的图像处理技术,可以通过线性变换来改变图像的亮度和对比度。

一般来说,每个像素的灰度都是由一个介于0到255之间的整数确定的,分别对应黑色和白色。

灰度线性变换就是通过改变灰度值的映射关系,来调整图像的亮度和对比度。

灰度线性变换的原理可以用以下直观的公式来描述:
g(x,y)=T(f(x,y)) 其中,T(x1)是为每个亮度值x1所设置的新的亮度值;
f(x,y)表示原图像的每个像素点;
一般来说,变换函数T(x1)可以用一次函数来描述,即 T(x1)=ax1+b (其中,a,b 为实数常量),由此可知,a的取值范围在0-1之间,表示图像亮度的比例; b的取值范围为0-255,表示图像的偏移量。

正如我们所知,灰度线性变换的优点是可以简单、快速地调整图像的亮度和对比度。

缺点是它不能改变图像的分布特征,只能做一些简单的变换,而不能实现图像的特定效果处理,比如拉伸度和畸变处理等。

因此,灰度线性变换通常只用于处理图像的简单变换,比如调整图像的亮度和对比度的需求,或者在彩色图像转换为灰度图像的过程中。

一般来说,使用灰度线性变换容易实现,而且对于一些常用的算法有很好的效果,所以经常被用来处理图像。

灰度变换算法原理

灰度变换算法原理

灰度变换算法原理
灰度变换算法是一种像素值映射的算法,它可以通过对图像的像素值进行线性或非线性变换来改变图像的对比度、亮度、色调等特征,以达到增强图像的目的。

具体来说,灰度变换算法的原理如下:
1. 像素值的定义:对于灰度图像,每个像素的取值范围在0-255之间,其中0表示黑色,255表示白色,其他值则表示不同的灰度级别。

2. 灰度变换函数的选择:灰度变换函数(也称为灰度映射函数)可以是线性函数、非线性函数、对数函数等。

根据需要调整图像的对比度、亮度等特征,可以选择不同的灰度变换函数。

3. 灰度变换的实现:将灰度变换函数应用到图像的每个像素上,计算出新的像素值,从而得到一张新的图像。

这样的变换可以在空间域或频域中进行。

总之,灰度变换算法通过对图像的像素值进行变换,可以有效地增强图像的质量和特征,提高图像信息的可读性和可用性。

灰度变换算法原理

灰度变换算法原理

灰度变换算法原理
灰度变换是一种将图像的灰度级进行适当调整的方法,可以改善图像的对比度和亮度。

灰度变换的基本原理是将输入图像的每个像素点的灰度级通过某种函数进行映射转换,并得到输出图像的像素灰度级。

常用的灰度变换函数有线性变换、非线性变换和直方图均衡化等。

1. 线性变换:
线性变换是灰度变换中最简单的一种方法。

它通过一个线性函数将输入图像的灰度级映射到输出图像的灰度级。

线性变换的数学表达式为:
g(x,y) = a*f(x,y) + b
其中,g(x,y)为输出图像的像素灰度级,f(x,y)为输入图像的像素灰度级,a和b为常数。

2. 非线性变换:
非线性变换是通过非线性函数将输入图像的灰度级映射到输出图像的灰度级。

非线性变换可以对输入图像的不同灰度级进行不同的映射处理,从而调整图像的对比度和亮度。

常用的非线性变换函数有幂次变换、对数变换和指数变换等。

3. 直方图均衡化:
直方图均衡化是一种通过对输入图像的直方图进行变换,从而使得输出图像具有更均匀的灰度分布的方法。

通过直方图均衡化,可以增强图像的对比度,使得图像中细节更加清晰。

直方图均衡化的基本原理是将输入图像的累计分布函数映射到均匀
分布,使得输出图像的直方图近似均匀。

总结起来,灰度变换算法原理是通过对输入图像的灰度级进行适当调整,使用线性变换、非线性变换,或者直方图均衡化等方法,从而改变输出图像的灰度级,达到调整图像对比度和亮度的目的。

医学图像灰度变换处理结果与分析

医学图像灰度变换处理结果与分析

医学图像灰度变换处理结果与分析1.所谓的图像求反是将原图像灰度值翻转,简单说来就是使黑变白,使白变黑,这样使图像变换了观察角度,某些病灶经过反变换而变得更加显而易见,使医生能够准确的对患者某些特殊症状进行诊断。

用MATLAB实现图像求反的程序如下:I=imread('guge.jpg');f=rgb2gray(I);imshow(f)f=double(f);f=256-1-f;f=uint8(f)figureimshow(f)其执行结果如下图所示:2.增强图像的对比度实际是增强原图的各部分的反差,也就是说增强图像中感兴趣的灰度区域,相对于抑制那些不感兴趣的灰度区域。

用分段线性法将需要的图像细节灰度级拉伸,增强对比度,将不需要的图像细节灰度级压缩。

典型的增强对比度的变换函数数学表达式如下:用MATLAB实现线性灰度变换的图像增强的程序如下:I=imread('guge.jpg');f=rgb2gray(I);imshow(f)f=double(f);[M,N]=size(f);for i=1:Mfor j=1:Nif f(i,j)<=30f(i,j)=f(i,j);elseif f(i,j)<=150f(i,j)=(200-30)/(150-30)*(f(i,j)-30)+30;elsef(i,j)=(255-200)/(255-150)*(f(i,j)-150)+200;endendendfigure(2);imshow(uint8(f));其执行的结果如下图所示:此程序将其小于30的灰度值不变,将30到150的灰度值拉伸到30到200,同时压缩150到255的灰度值到200与255之间。

该程序增强了图像对比度,因此可见对任一灰度区间进行扩展和压缩,可随意增强有用信息区域。

3.灰度变换中的对数变换,基于式t = Clog(1 +s),本论文中C=256/log(256)=32。

实验一 图像的灰度变换及直方图均衡化

实验一 图像的灰度变换及直方图均衡化

实验一:图像灰度变换及直方图均衡化实验一、实验目的:1. 掌握灰度直方图的概念及其计算方法;2. 掌握利用图像灰度变换实现对图像的增强处理;3. 掌握利用直方图直方图均衡化和直方图规定化实现对图像的增强处理;4. 熟悉MA TLAB中图像增强的相关函数。

二、实验设备:1. 硬件设备:计算机;2. 软件环境:Windows+Matlab编程与仿真环境;3. 其他设备:记录用的纸、笔,以及U盘等存储设备。

三、实验原理:灰度直方图(histogram)是灰度级的函数,它表示图像中具有每种灰度级的像素的个数,反映图像中每种灰度出现的频率。

一般来说,灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的概率,是图像的最基本的统计特性。

从概率论的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数PDF(Probability Density Function),而概率分布函数就是直方图的累积和,即概率密度函数的积分。

1. 直方图均衡化直方图均衡化是通过灰度变换将一幅图像转换另一幅具有均衡直方图,即在每个灰度级上都具有相同的像素点数的过程。

设灰度变换s=T(r)为斜率有限的非减连续可微函数,它将输入图像A(x,y)转换为输出图像B(x,y),输入图像的直方图为H a(r),输出图像的直方图为H b(s),它们的关系如下:图1.1 输入图像和输出图像直方图之间的关系图直方图均衡化的基本思想是把原始图像的直方图变换成均匀分布的形式图像灰度值的动态范围,从而达到了增强图像整体对比度的效果。

具体方法为:①列出原始图像的灰度级Sk, k=0,1…L-1,其中L是灰度级的个数;②统计原始图像各灰度级的像素数目nk;③计算原始图像直方图各灰度级的频率数;④计算原始图像的累计直方图;⑤取整计算;⑥确定映射关系;⑦统计新直方图各个灰度级的像素数目nk;⑧计算新的直方图。

2. 灰度变换灰度变换是图像增强的另一种重要手段,它可使图像动态范围加大,使图像对比度扩展,图像更加清晰,特征更加明显。

第7章图像灰度变换

第7章图像灰度变换
将图像I中的亮度值映射到J中的新值,其中 gamma指定描述值I和值J关系的曲线形状。如果 gamma小于1,此映射偏重更高数值(明亮)输出, 如果gamma大于1,此映射偏重更低数值(灰暗)输 出,如果省略此参数,默认为(线性映射)。
clear all; I=imread('pout.tif'); %读入原始图像 J=imadjust(I); %把I的范围拉伸到[0 1] K=imadjust(I,[0.3 0.7],[]);%局部拉伸,把[0.3 0.7]内的灰度拉伸为[0 1] subplot(1,3,1);imshow(I);xlabel('原始图像'); subplot(1,3,2);imshow(J);xlabel('全局拉伸'); subplot(1,3,3);imshow(K);xlabel('分段拉伸');
[X,map]=imread('forest.tif'); I=ind2gray(X,map);%索引图像转化为灰度图像 J=imadjust(I,[0 1],[0 1],0.5);%gamma校正 figure, subplot(121),imshow(I); subplot(122),imshow(J)
其中,T(.)表示增强图像和原图像的灰度变换函数
灰度变换分为线性变换 (正比或反比)和非线性 变换。非线性变换有对 数的(对数和反对数的), 幂次的(n次幂和n次方 根变换) 。 下面是些灰度变换曲 线。
用于图像增强的某些基本灰度变换
线性变换
利用线性函数进行变换,线性变换一般关系式为:
令图像f(m,n)的灰度范围是【a,b】,线性变换后图像 g(m,n)的灰度范围为【c,d】,如下图

灰度变换 对数变换

灰度变换 对数变换

灰度变换对数变换灰度变换是数字图像处理中常用的一种技术,它可以改变图像的亮度分布,使得图像更加清晰、易于分析和处理。

而对数变换则是灰度变换的一种特殊形式,它通过对图像的灰度值取对数来改变图像的亮度分布。

本文将介绍灰度变换和对数变换的原理、应用以及优缺点。

一、灰度变换的原理灰度变换是指通过改变图像的灰度值来改变图像的亮度分布。

在灰度变换过程中,我们可以根据需要调整图像的对比度、亮度和色彩等属性,从而使图像更加清晰、鲜艳或者更适合特定的应用场景。

对数变换是一种常用的灰度变换方法之一。

它的原理是通过对图像的灰度值取对数,来改变图像的亮度分布。

对数变换可以将原始的灰度值域映射为更广的范围,从而增强图像的对比度和细节。

二、对数变换的应用对数变换在数字图像处理中有着广泛的应用。

以下是对数变换的几个常见应用场景:1.图像增强:对数变换可以增强图像的对比度和细节,使得图像更加清晰。

在医学影像、卫星遥感等领域,对数变换常用于提高图像的可视化效果和分析能力。

2.图像压缩:对数变换可以将原始图像的灰度值域映射到更广的范围,从而增加图像的动态范围,提高图像的可压缩性。

在图像压缩算法中,对数变换常用于提高压缩比和保持图像质量。

3.图像分割:对数变换可以改变图像的亮度分布,使得图像的前景和背景更加明确。

在图像分割算法中,对数变换常用于增强图像的边缘和纹理信息,从而提高分割的准确性和效果。

三、对数变换的优缺点虽然对数变换在图像处理中有着广泛的应用,但它也存在一些优缺点。

优点:1.对数变换可以增强图像的对比度和细节,使得图像更加清晰;2.对数变换可以增加图像的动态范围,提高图像的可压缩性;3.对数变换可以增强图像的边缘和纹理信息,提高图像分割的效果。

缺点:1.对数变换可能导致图像的亮度失真,使得图像变得过亮或过暗;2.对数变换的计算复杂度较高,对大型图像的处理速度较慢;3.对数变换对图像的噪声敏感,可能导致噪声的增强。

四、总结灰度变换是数字图像处理中常用的一种技术,对数变换是灰度变换的一种特殊形式。

【数字图像处理】灰度变换

【数字图像处理】灰度变换

【数字图像处理】灰度变换原⽂链接:作者:图像的空间域滤波,其对像素的处理都是基于像素的某⼀邻域进⾏的。

本⽂介绍的图像的灰度变换则不同,其对像素的计算仅仅依赖于当前像素和灰度变换函数。

灰度变换也被称为图像的点运算(只针对图像的某⼀像素点)是所有图像处理技术中最简单的技术,其变换形式如下:s=T(r)s=T(r)其中,T是灰度变换函数;r是变换前的灰度;s是变换后的像素。

图像灰度变换的有以下作⽤:改善图像的质量,使图像能够显⽰更多的细节,提⾼图像的对⽐度(对⽐度拉伸)有选择的突出图像感兴趣的特征或者抑制图像中不需要的特征可以有效的改变图像的直⽅图分布,使像素的分布更为均匀常见的灰度变换灰度变换函数描述了输⼊灰度值和输出灰度值之间变换关系,⼀旦灰度变换函数确定下来了,那么其输出的灰度值也就确定了。

可见灰度变换函数的性质就决定了灰度变换所能达到的效果。

⽤于图像灰度变换的函数主要有以下三种:线性函数(图像反转)对数函数:对数和反对数变换幂律函数:n次幂和n次开⽅变换上图给出了⼏种常见灰度变换函数的曲线图,根据这⼏种常见函数的曲线形状,可以知道这⼏种变换的所能达到的效果。

例如,对数变换和幂律变换都能实现图像灰度级的扩展/压缩,另外对数变换还有⼀个重要的性质,它能压缩图像灰度值变换较⼤的图像的动态范围(例如,傅⽴叶变换的频谱显⽰)。

线性变换令r为变换前的灰度,s为变换后的灰度,则线性变换的函数:s=a⋅r+bs=a⋅r+b其中,a为直线的斜率,b为在y轴的截距。

选择不同的a,b值会有不同的效果:a>1a>1,增加图像的对⽐度a<1a<1,减⼩图像的对⽐度a=1且b≠0a=1且b≠0,图像整体的灰度值上移或者下移,也就是图像整体变亮或者变暗,不会改变图像的对⽐度。

a<0且b=0a<0且b=0,图像的亮区域变暗,暗区域变亮a=1且b=0a=1且b=0,恒定变换,不变a=−1且b=255a=−1且b=255,图像反转。

图像的灰度变换

图像的灰度变换
f(D)称为灰度变换函数, 它描述了输入灰度值和输出灰度值之间的转
换关系。一旦灰度变换函数确定,该点应 算就完全被确定下来了。
直接灰度变换
直接灰度变换属于所有图像增强技术中最简 单的一类,最常用的方法有以下几种: •图像求反 •对数变换 •灰度切割 •位图切割 •灰度的线性变换
图像求反
简单来说,图像求反就是使图像中的黑变白, 和使图像中的白变黑的处理。 设灰度范围为(0,L-1) 图像求反的变换公式:t=L-1-s 这种方法尤其适用于增强嵌入图像的暗区域 的白色和灰色细节
值上移或下移 • 当a<0,就会将图像的暗区域变亮,亮区域
变暗 • 当a=1,b=0,图像会保持不变 • 当a=-1,b=225,图像正好反转
灰度直方图
• 灰度直方图是数字图像处理中一个最简单、 最有用的的工具,它描述了一幅图像的灰 度级内容。
• 灰度直方图定义为灰度值的函数,描述的 是图像中具有该灰度值的像素的个数,其 横坐标表示像素的灰度级别,纵坐标是该 灰度出现的频率。
• 将图像中的所有点的灰度按照线性灰度变 换函数进行变换,变换函数为:
• DB=f(DA)=a*DA+b • 其中a为线性斜率,b为在y轴的截距,
DA为输入图像的灰度值,DB为输出图像 的灰度
讨论下线性变换公式
• 当a>1时,输出的图像的对比度增加 • 当a<1时,输出的图像的对比度就会减小 • 当a=1,b≠0时,就会使所有的图像的灰度
图像的位图切割
• 对一幅有多个位表示其灰度值的图像来说, 其中的每个位可看作一个二值的平面,也 称为位面。设图像中每一个像素由8位表示, 也就是说图像有8个位面,一般用位面0表 示最低位面,位面7表示最高位面,借助图 像的位面表示形式,通过操作图像特定位 面来达到对图像的增强效果。

数字图像处理:图像的灰度变换(Matlab实现)

数字图像处理:图像的灰度变换(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)对数变换:增强低灰度,减弱⾼灰度值。

OpenCV图像处理之常见的图像灰度变换

OpenCV图像处理之常见的图像灰度变换

OpenCV图像处理之常见的图像灰度变换1.灰度线性变换图像的灰度线性变换是图像灰度变换的⼀种,图像的灰度变换通过建⽴灰度映射来调整源图像的灰度,从⽽达到图像增强的⽬的。

灰度映射通常是⽤灰度变换曲线来进⾏表⽰。

通常来说,它是将图像的像素值通过指定的线性函数进⾏变换,以此来增强或者来减弱图像的灰度,灰度线性变换的函数就是常见的线性函数。

g(x, y) = k · f(x, y) + d设源图像的灰度值为x,则进⾏灰度线性变换后的灰度值为y = kx + b (0<=y<=255),下⾯分别来讨论k的取值变化时线性变换的不同效果(1).|k|>1时当k>1时,可以⽤来增加图像的对⽐度,图像的像素值在进⾏变换后全部都线性⽅法,增强了整体的显⽰效果,且经过这种变换后,图像的整体对⽐度明显增⼤,在灰度图中的体现就是变换后的灰度图明显被拉伸了。

(2).|k|=1时当k=1时,这种情况下常⽤来调节图像的亮度,亮度的调节就是让图像的各个像素值都增加或是减少⼀定量。

在这种情况下可以通过改变d值来达到增加或者是减少图像亮度的⽬的。

因为当k=1,只改变d 值时,只有图像的亮度被改变了,d>0时,变换曲线整体发⽣上移,图像的亮度增加,对应的直⽅图整体向右侧移动,d<0时,变换曲线整体下移,图像的亮度降低,对应的直⽅图发⽣⽔平左移。

(3).0<|k|<1时此时变换的效果正好与k>1时相反,即图像的整体对⽐度和效果都被削减了,对应的直⽅图会被集中在⼀段区域上。

k值越⼩,图像的灰度分布也就越窄,图像看起来也就显得越是灰暗。

(4).k<0时在这种情况下,源图像的灰度会发⽣反转,也就是原图像中较亮的区域会变暗,⽽较暗的区域将会变量。

特别的,此时我们令k = -1,d = 255,可以令图像实现完全反转的效果。

对应的直⽅图也会发⽣相应的变化。

相应的程序试下如下://实现图像的灰度线性变化#include <iostream>#include <opencv2\core\core.hpp>#include <opencv2\highgui\highgui.hpp>#include <opencv2\imgproc\imgproc.hpp>using namespace std;using namespace cv;int main(){Mat srcImg = imread("1234.jpg");if (!srcImg.data){cout << "读⼊图⽚失败" << endl;return -1;}imshow("原图像", srcImg);double k, b;cout << "请输⼊k和b值:";cin >> k >> b;int RowsNum = srcImg.rows;int ColsNum = srcImg.cols;Mat dstImg(srcImg.size(), srcImg.type());//进⾏遍历图像像素,对每个像素进⾏相应的线性变换for (int i = 0; i < RowsNum; i++){for (int j = 0; j < ColsNum; j++){//c为遍历图像的三个通道for (int c = 0; c < 3; c++){//使⽤at操作符,防⽌越界dstImg.at<Vec3b>(i, j)[c] = saturate_cast<uchar>(k* (srcImg.at<Vec3b>(i, j)[c]) + b);}}}imshow("线性变换后的图像", dstImg);waitKey();return 0;}当k=1.2,b=50时执⾏程序的效果如下:2.灰度对数变换对数变换的基本形式为其中,b是⼀个常数,⽤来控制曲线的弯曲程度,其中,b越⼩越靠近y轴,b越⼤越靠近x轴。

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

从图像输入装置得到的图像数据,以浓淡表示, 各个像素与某一灰度值相对应。设原图像像 素的灰度值D=f(x,y),处理后图像像素的 灰度值D′=g(x,y),则灰度增强可表示为:
g ( x, y) T [ f ( x, y)]
D' T ( D) 或 要求D和D′都在图像的灰度范围之内。函数 称为灰度变换函数,它描述了输入灰度值和 输出灰度值之间的转换关系。
3.程序代码
Void HuiDuBianHuanDib::ShuangYu(int YuZhi1,int YuZhi2,int mode) { LPBYTE p_data; //原图数据区指针 int wide,height; //原图长、宽 p_data=this->GetData (); wide=this->GetWidth (); height=this->GetHeight (); if(mode==0) //0-255-0型 {
阈值化的变换函数表达式如下: 0 x<T f(x)= 255 x>T 其中T为指定的阈值。阈值T就像个门槛,比它 大就是白,比它小就是黑。该变换函数是阶 跃函数,只需给出阈值点T即可,经过阈值 处理后的图像变成了一幅黑白二值图,阈值 处理是灰度图转二值图的一种常用方法。
2. 非零元素取一法
1. 理论基础 非零元素取一法是最基础的二值化算法。顾 名思义非0取1就是对于灰度图像f,若某像 素灰度值为0,则其灰度值不变,仍为零; 对于灰度值不为零的像素,将其像素值全部 变为255。非零元素取一法的阈值T=1。
图像灰度变换
本章要点: 灰度变换的基本方法 二值化和阈值处理 非零元素取一法 固定阈值法 双固定阀值法
灰度变换的基本方法
图像的灰度变换(Gray-Scale Transformation,GST) 处理是图像增强处理技术中一种非常基础、直接的 空间域图像处理方法,也是图像数字化软件和图像 显示软件的一个重要组成部分。灰度变换是指根据 某种目标条件按一定变换关系逐点改变原图像中每 一个像素灰度值的方法。目的是为了改善画质,使 图像的显示效果更加伸。例如为了显示出 图像的细节部分或提高图像的清晰度,需要将图像 整个范围的灰度级或其中某一段(a,b)灰度级扩 展或压缩到(a′,b′),这些都要求采用灰度变 换方法。
p_data=this->GetData (); wide=this->GetWidth (); height=this->GetHeight ();
for(int j=0;j<height;j++)
for(int i=0;i<wide;i++) { if(*p_data!=0) *p_data=255; p_data++; } } //若像素值不为0 //将其置为255 //所有像素依次循环
非零元素取一法的变换函数表达式如下: 0 x<1 f(x)= 255 x>1
g 255 01 255 f
图4-1
非零元素取一法灰度变换函数
2. 实现步骤 (1)取得原图的数据区指针。 (2)每个像素依次循环,若该像素灰度值为0, 则不变;若该像素灰度值不为0,则置为255。
3. 程序代码
void HuiDuBianHuanDib::Fei0()//对图像进行非零取一运算 { LPBYTE p_data; int wide,height; //原图数据区指针 //原图长、宽 //取得原图的数据区指针
for(int j=0;j<height;j++) for(int i=0;i<wide;i++) { //若该像素的灰度值介于两个阈值之间,这将其置为255 if(*p_data>=YuZhi1&&*p_data<=YuZhi2) *p_data=255; else *p_data=0; //否则置0 p_data++; } } if(mode==1) //255-0-255型 { for(int j=0;j<height;j++) for(int i=0;i<wide;i++) { //若该像素的灰度值介于两个阈值之间,这将其置为0 if(*p_data>=YuZhi1&&*p_data<=YuZhi2) *p_data=0; else *p_data=255; //否则置255 p_data++; } } }

0
T
f 255
图4-2 固定阀值法灰度变换函数
2. 实现步骤 1)取得原图的数据区指针。 2)通过对话框输入阈值T。 3)所有像素依次循环,若像素灰度值小于T, 则将该像素置为0;否则置为255。
3.编程代码
void HuiDuBianHuanDib::GuDing(int YuZhi)//固定阀值运算 { LPBYTE p_data; //原图数据区指针 int wide,height; //原图长、宽 p_data=this->GetData (); //取得原图的数据区指针 wide=this->GetWidth (); height=this->GetHeight (); for(int j=0;j<height;j++) for(int i=0;i<wide;i++) { if(*p_data>YuZhi) //灰度值大于给定阈值,置为255 *p_data=255; else *p_data=0; //不大于置为0 p_data++; } }
0-255-0型固定阀值法的变换函数表达式如下:
0 x<T1
其中T1、T2为指定的阈值。
x >T2 g
f(x)=
255 T1<X<T2
0 g
f 0 T1 T2 255 (a)0-255-0型灰度变换函数
f 0 T1 T2 255 (b)255-0-255型灰度变换函数
图4-4双固定阀值法
2. 实现步骤 1)取得原图数据区指针 2)通过对话框输入阈值1(T1)和阈值2(T2),并选 择方式(0-255-0)型或(255-0-255)型。 3)若选择方式0(0-255-0型),每个像素依次循环, 若该像素灰度值大于T1并且小于T2,则将其灰度值 置为255,其余像素的灰度值置为0。 若选择方式1(255-0-255型),每个像素依次循环, 若该像素灰度值大于T1并且小于T2,则将其灰度值 置为0,其余像素的灰度值置为255。
根据 g ( x, y) T [ f ( x, y)] ,可以将灰度变换分为 线性变换和非线性变换。 本章中所介绍的非0元素取1法、固定阀值法、 双固定阀值法都属于非线性灰度变换。
1.二值化和阈值处理
设定某一阈值T,用T将图像的数据分成两大 部分:大于T的像素群和小于T 的像素群。这 是研究灰度变换最特殊的方法,称为图像的 二值化(binarization)。 阈值处理的操作过程是先由用户指定或通过 算法生成一个阈值,如果图像中某像素的灰 度值小于该阈值,则将该像素的灰度值设置 为0或255,否则灰度值设置为255或0。
效果对比图
(a) 原图
(b)以100作为阈值二值化的图
图4-3
固定阀值法
4. 双固定阀值法
1. 理论基础 相对于前面的非零取一法和固定阀值法,双 固定阀值法预先设置了两个阀值T1和T2, T1<T2,当对图像进行处理时,如果某个像 素的灰度值小于T1则置0(或者255);如果 大于T1并且小于T2时,则置255(或者置0); 如果大于T2时,则置0(或者255)。可根据 具体情况选择双固定阀值法是用0-255-0型 或是255-0-255型。
3.固定阈值法
1.理论基础 在某种意义上非零取一法也可以理解成为一 种特殊的固定阀值法,因为它的阀值默认为 1。固定阀值法就是为灰度图像f设定一个阀 值T,把灰度值小于给定阈值T的像素置为0, 大于阈值T的像素置为255,从而对灰度图像 实现二值化变换。

固定阀值法的变换函数表达式如下: 0 x<T f(x)= 255 x>T 其中T为指定的阈值。 g 255
相关文档
最新文档