您现在的位置是:网站首页> 编程资料编程资料
Python灰度变换中的对数变换专项分析实现_python_
2023-05-25
396人已围观
简介 Python灰度变换中的对数变换专项分析实现_python_
1. 原理
对数变换的公式为:

其中:c是伸缩系数,常设为1。src为输入的原图像,dst为经过对数变换的输出图像
对数变换的曲线为:

由曲线的形状可以发现,对数变换将输入中范围较窄的低灰度值映射为输出中灰度值较宽的部分。也就是对数变换可以提升原图中暗区的对比度,同时可以压缩明亮区的对比度。
反对数变换的效果刚好相反
2. 代码
import numpy as np import cv2 def log(x): y =np.log(1+x) ym = y- y.min() dst = (ym / ym.max()) * 255 return dst.astype(np.uint8) img = cv2.imread('./f.jpg',0) dst = log(img) cv2.imshow('img',np.hstack((img,dst))) cv2.waitKey() cv2.destroyAllWindows()处理的结果为

注:
因为图像经过对数变换后的值域很小,所以需要放大到0-255范围当中
- 一般来说可以直接将对数变换后的图像dst / dst.max(),然后在乘上255
- 图中演示的代码为图像处理书上给出的缩放Gm = Gm - Gm.min() , dst = Gm / Gm.max()在乘上255
- 两者的区别是。书上的可以将灰度值最低的部分映射为0,而第一种方法有时候会出现这样的情况。这是因为图像的背景部分虽然是黑色,但灰度值不是0,经过对数变换会将灰度值低的区域对比度拉伸,所以会出现灰蒙蒙的样子

而使用书上的方法则不会出现这种情况

到此这篇关于Python灰度变换中的对数变换专项分析实现的文章就介绍到这了,更多相关Python对数变换内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
相关内容
- Python灰度变换中的分段线性函数专项分析实现_python_
- pytorch逻辑回归实现步骤详解_python_
- Python Django教程之模板的使用_python_
- Python使用Pillow实现图像基本变化_python_
- 利用Python读取Excel表内容的详细过程_python_
- Python中日期和时间的用法超强总结_python_
- 关于Python 多重继承时metaclass conflict问题解决与原理探究_python_
- Python学习之列表和元组的使用详解_python_
- Python+OpenCV实现单个圆形孔和针检测_python_
- pytorch模型保存与加载中的一些问题实战记录_python_
