数字图像处理—灰度变换

实验一:灰度变换

问题描述

灰度变换,属于一个非常重要的概念。灰度变换也被称为图像的点运算(只针对图像的某一像素点)是所有图像处理技术中最简单的技术,其变换形式如下:s=T®
其中,T是灰度变换函数;r是变换前的灰度;s是变换后的像素。本实验采用了8-bit 图像的灰度范围,也就是0到255这样一个范围。我在这个实验中使用Matlab计算,直接使用mat2gray函数将其压缩至0到255。要是使用其他嵌入式平台处理的时候,直接套用不方便,按照8-bit的图来理解不直观。我将数学式做了改变,让其输入为0到1的浮点数,其输出也是0到1的浮点数。

计算方法
图像的对数变换:

其中,c是一个常数,假设r≥0。对数变换时将源图像中范围较窄的低灰度值映射到范围较宽的灰度区间,同时将范围较宽的高灰度值区间映射为较窄的灰度区间,从而扩展了暗像素的值,压缩了高灰度的值,能够对图像中低灰度细节进行增强。
对数变换,还有一个很重要的性质,能够压缩图像像素的动态范围。例如,在进行傅立叶变换时,得到的频谱的动态范围较大。大范围的值,显示器是无法完整的显示如此大范围的灰度值的,因而许多灰度细节会被丢失掉。而将得到的频谱值进行对数变换,可以将其动态范围变换到一个合适区间,这样就能够显示更多的细节。
图像的指数变换:

指数变换,主要用于图像的校正,将漂白的图片或者是过黑的图片,进行修正。指数变换也常常用于显示屏的校正,这是一个非常常用的变换。其中c和b为正常数。
指数变换的效果与对数变换有点类似,当b>1时将较窄范围的低灰度值映射为较宽范围的灰度值,同时将较宽范围的高灰度值映射为较窄范围的灰度值;当b<1时,情况相反,与反对数变换类似。当b<1时,b的值越小,对图像低灰度值的扩展越明显;当b>1时,b的值越大,对图像高灰度值部分的扩展越明显。这样就能够显示更多的图像的低灰度或者高灰度细节。指数变换主要用于图像的校正,对灰度值过高或者过低的图像进行修正,增加图像的对比度,从而改善图像的显示效果。

实验代码

对数变换:
close all;
clear all;
c=3;
r = imread(‘Fig1.jpg’);
s = mat2gray(c*log(1+double®));

figure();
subplot(1,2,1);
imshow®;
xlabel(‘1).原始图像’);
subplot(1,2,2);
imshow(s,[0 1]);
xlabel(‘2).对数变换后的图像’);

指数变换:
close all;
clear all;
r = imread(‘Fig1.jpg’);
r = mat2gray(r,[0 255]);
c = 1;
b = 0.4;
s = c*(r.^b);

figure();
subplot(1,2,1);
imshow(r,[0 1]);
xlabel(‘1).原始图像’);
subplot(1,2,2);
imshow(s,[0 1]);
xlabel(‘2).指数变换后的图像 (c = 1 b = 0.4 的效果很好)’);

结果分析
对数变换图像结果:
对数变换
指数变换图像结果:
指数变换
改变c值时,c值越大,图片效果越曝光,使得图像越亮;反之c值越小,图片曝光越少,图像越暗。
改变b值时,b值越大,图片的灰度值越大,图片中的黑暗部分的面积越大;反之b值越小,图片灰度值越小,在b为0时,将呈现出一张白色图片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

engineer_z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值