[图像处理]图像的灰度变换
2018-03-18 14:31
387 查看
图像的灰度变换是图像的一种点处理算法,指图像任意点的增强仅仅依赖于该点的灰度值。而在下一节将会使用的是图像的模板变换。
1.图像的反转变换
灰度级为[0,L-1]则:反转变换为:g(x,y)=L-1-f(x,y)
其中g(x,y)位输出图像,f(x,y)为输入图像。
2.图像的对数变换
此种变换使一窄带低灰度输入图像转换映射为一宽带输出图像:
y = a + log(1+x)/b
其中a控制曲线的垂直偏移量,b控制曲线的弯曲程度,b越大则曲线越弯曲。
3.图像的幂次变换:
y = cx**r + b
其中c,r均为正数,使x与y的取值均在0-255则;
y = 255c(x/255)**r+b
幂次变换的性质为:
当r<0时,变换函数曲线在正比线上方,此时与对数函数类似,使图像变亮
当r>0时,变换函数曲线在正比线下方,此时扩展高灰度级,压缩低灰度级,使图像变暗。
4.灰度均衡化
灰度均衡化的公式推导涉及到了微积分的知识,均衡化的作用是使一副图像其像素占有全部可能的灰度级并且分布均匀,则这样的图像有高对比度和多变的灰度色调。{
float newMi[256];
LPBYTE p_data = getData();
int width = getWidth();
int height = getHeight();
LPBYTE temp = new BYTE[width*height];
memcpy(temp, p_data, width*height);
int bMap[256];
newMi[0] = midu[0];
for (int i = 1; i < 256; i++) {
newMi[i] = newMi[i - 1] + midu[i];
}
for (int i = 0; i < 256; i++)
{
bMap[i] = (int) (newMi[i] * 255.0 + 0.5f);//这里后边的式子一定要括起来因为强制类型转换的优先级要高
}
for(int j=0;j<height;j++)
for(int i=0;i<width;i++)
{
BYTE T = temp[width*j+i];
temp[width*j+i] = bMap[T];
}
memcpy(p_data, temp, width*height);
}
1.图像的反转变换
灰度级为[0,L-1]则:反转变换为:g(x,y)=L-1-f(x,y)
其中g(x,y)位输出图像,f(x,y)为输入图像。
2.图像的对数变换
此种变换使一窄带低灰度输入图像转换映射为一宽带输出图像:
y = a + log(1+x)/b
其中a控制曲线的垂直偏移量,b控制曲线的弯曲程度,b越大则曲线越弯曲。
3.图像的幂次变换:
y = cx**r + b
其中c,r均为正数,使x与y的取值均在0-255则;
y = 255c(x/255)**r+b
幂次变换的性质为:
当r<0时,变换函数曲线在正比线上方,此时与对数函数类似,使图像变亮
当r>0时,变换函数曲线在正比线下方,此时扩展高灰度级,压缩低灰度级,使图像变暗。
4.灰度均衡化
灰度均衡化的公式推导涉及到了微积分的知识,均衡化的作用是使一副图像其像素占有全部可能的灰度级并且分布均匀,则这样的图像有高对比度和多变的灰度色调。{
float newMi[256];
LPBYTE p_data = getData();
int width = getWidth();
int height = getHeight();
LPBYTE temp = new BYTE[width*height];
memcpy(temp, p_data, width*height);
int bMap[256];
newMi[0] = midu[0];
for (int i = 1; i < 256; i++) {
newMi[i] = newMi[i - 1] + midu[i];
}
for (int i = 0; i < 256; i++)
{
bMap[i] = (int) (newMi[i] * 255.0 + 0.5f);//这里后边的式子一定要括起来因为强制类型转换的优先级要高
}
for(int j=0;j<height;j++)
for(int i=0;i<width;i++)
{
BYTE T = temp[width*j+i];
temp[width*j+i] = bMap[T];
}
memcpy(p_data, temp, width*height);
}
相关文章推荐
- 图像的灰度变换——图像旋转、图像的反色处理、对比度拉伸
- Matlab中图像处理实例:灰度变换,空域滤波,频域滤波,傅里叶变换的实现
- python 简单图像处理(9) 灰度变换
- 数字图像处理——灰度变换与空间滤波(使用MFC)
- 系统学习数字图像处理之灰度变换和空域滤波
- 数字图像处理基本算法实现(1)--section3.2基本灰度变换
- 处理2D图像和纹理——扩展图像内容处理器:灰度变换和处理器参数
- 利用Opencv进行图像灰度变换处理
- 图像处理之灰度模糊图像与彩色清晰图像的变换
- 在Android平台上利用opencv进行图像处理之边缘检测、灰度变换、缩小
- VC6.0图像处理3--灰度变换
- 【数字图像处理】灰度变换
- 数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换、对数变换、伽马变换和分段线性变换)
- 数字图像处理之灰度变换
- VC6.0图像处理3--灰度变换
- 【图像处理笔记】灰度变换
- [数字图像处理]灰度变换——反转,对数变换,伽马变换,灰度拉伸,灰度切割,位图切割
- Matlab图像处理-亮度(灰度)变换问题
- Matlab图像处理之灰度变换函数
- Qt 图像处理之 灰度变换