图像余弦变换

     对比度增强的一般原则都是黑的暗的还是暗的,亮的还是亮的,只不过
分的更开,简单的说就是说黑的更黑,或者白的变得更白点 。

    余弦变换也可以作为一种对比度增强的方法,下面是(0,2*pi)之间的曲线,为了坚持亮的依然是亮的,暗的

还是暗的,我们可以采用(pi,2pi)即(-pi,0),这段曲线来实现对比度增强,也可以用(pi/2,0)这段曲线来实现

对比度增强,当然也可以采用映射到(0,pi)或(0,pi/2)区间并经过变换来实现.。

    总之,变换后的曲线应当是单调递增或单调递减的,否则原本差异很大的灰度值,变换后就可能拥有相同的灰度

值。整个图像就转换错了。

 图1:余弦曲线(0,2*pi)

 

通过等式:

 y' = cos( pi/2*double(y)/255 -pi/2 )*255;

进行的余弦变换的效果如下图所示,图中绿线是变换前的亮度,蓝线是变换前的亮度。

从图中可以看出,整个画面的亮度都有了提升,原本

亮度为150的像素变换后亮度提升到约200.

 

图2:映射到(-pi/2)到0  空间内,

 

 

通过等式:

 y' = 255*(cos( pi*double(y)/255 -pi)/2 +0.5);

进行的余弦变换的效果如下图所示,图中绿线是变换前的亮度,蓝线是变换前的亮度。

从图中可以看出,图像以亮度128为中间分隔点 ,小于128时,图像变得更暗,大于

128时图像变得更亮。在实际使用过程中,可以通过一定变换将分隔点变换到其他像素值。

比如换到40,低于40的变得更暗,高于40的变得更亮。

 

 

图3:映射到空间(-pi,0),如下图所示

 

使用余弦变换能否得到较好的结果跟实际图像有关,假如原本

图像每个像素亮度都低于100,那么按图3的方式进行余弦变换只会使图像对比度减小。且图片变得更暗。

 

 

关于xiaofei26的问题的回答:

小飞26的处理方式实际上可以用表达式表示如下:

 y' =fx3 = 255* (cos( 2*pi*double(y)/255 -pi/2));  

其最终效果图如下图所表示,y'的取值既有正值也有负值,但是其通过后续处理,

根据最大值和最小值将其映射到区间(0,255)。

     为什么可以呢,因为其提供的图片非常暗,我看了一下,其绝大多数灰度值都小于60,我没发现

有大于60的(见原问题链接 

 http://topic.csdn.net/u/20080222/16/caab6ad3-a2e8-45ea-b659-bb6a5e899a55.html),

那么从图4可以看到,这段区间内,曲线还是单调递增的,而且对

原图的亮度提升还很大,自然是可以得到比较不错的效果的。但是,如图4所示,如果换成另外一副

图片,例如图像灰度在(0,255)范围,那么这时图片就会变得混乱,因为灰度值为128的和灰度值为0的在

变换后会变成同一灰度值,其他灰度也都有这种情况。这时无论后续做什么处理,都将不能恢复原图像。

因为整个图像已经破坏了。

    那么通过余弦变换是否也可以得到好效果呢?当然可以,根据这幅图片的情况,可以将其映射到 (-pi/2,0)

的区间,一次变换不行,可以多做几次变换,我试验过,做4此变换后,效果和xiaofei26的用的方法的效果。

(无奈,原图片太暗了,当然其实还可以有其他方法,比如统计了整个像素点的亮度情况后再做余弦变换,这时

就可以把原除法的255改成除以60,这样就可以了)。具体图片见后面的图。

 

   

 

图4:

 

 

 图5:转换到区间(-pi/2,0),并将原式的/255改成 /60得到的效果图

 y' = cos( pi/2*double(y)/60 -pi/2 )*255;

 

图6:转换到区间(-pi,0),并将原式的/255改成 /60得到的效果图,(未做后续处理)

 y' = 255*(cos( pi*double(y)/60 -pi)/2 +0.5);

 

图7:转换到区间(-pi,0),并将原式的/255改成 /60得到的效果图(采用了xiaofei26提供的后续处理

即根据图片灰度的最大最小值范围进行处理)

 y' = 255*(cos( pi*double(y)/60 -pi)/2 +0.5);

 

 图8:转换到(-pi/2,0),经过2此余弦变换得到的效果图,(未做后续处理)

 y' = cos( pi/2*double(y)/255 -pi/2 )*255;

 

 

 

 图9:转换到(-pi/2,0),经过3次余弦变换得到的效果图,(未作后续处理)

 y' = cos( pi/2*double(y)/255 -pi/2 )*255;

 

 

 

 

 图8:转换到(-pi/2,0),经过2次余弦变换得到的效果图,(作了后续处理)

 y' = cos( pi/2*double(y)/255 -pi/2 )*255;

 

 xiaofei26可以用下面这幅图处理一下,应该就会得到不好的图像了。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值