opencv 计算机视觉 灰度变换之非线性变换

对数变换有两个作用:

1.对数曲线在像素值较低的区域斜率较大,,在像素值较高的区域斜率较低,所以经过对数变换后的图片在较暗的区域对比度将会得到提升,因而能增强图像暗部的细节

2.图像的傅里叶频谱的动态范围可能宽达0~10^6.直接显示频谱显示设备的动态范围往往不能满足要求,这时就需要使用对数变换。使得傅里叶频谱的动态范围被合理的非线性压缩

指数变换多用于图像整体偏暗,扩展灰度级,还可用在图像有“冲淡”的外观,需要压缩中高以下的大部分灰度级的情况下。指数变换就是用来图像增强的,提升了暗部细节。

import cv2
import numpy as np
import math
import copy
image=cv2.imread("C:/Users/wangyiyuan/Desktop/20200201172603_hocyy.jpg",0)#####保存灰度图
h,w=image.shape[0],image.shape[1]
new=np.zeros((h,w))
for i in range(h):
    for j in range(w):
        new[i][j]=1.0*(math.log(image[i][j]+1.0))
new=cv2.normalize(new,new,0,255,cv2.NORM_MINMAX)
cv2.imwrite("imag.jpg",new)

cv2.waitKey(0)
#############以上代码实现了灰度的对数变换,下面的代码将实现灰度的幂律变换。这两种方法都属于非线性变换
gamma=cv2.imread("C:/Users/wangyiyuan/Desktop/20200201172603_hocyy.jpg",0)

for i in range(h):
    for j in range(w):
        gamma[i][j]=3*pow(gamma[i][j],0.8)
cv2.imshow("image",gamma)
cv2.waitKey(0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值