对数变换的通用形式为:,其中c是一个常数,

由对数函数的性质可知,改变换将范围较窄的低灰度值映射为较宽范围的灰度值,相反地,对高输入灰度值也是如此。

我们使用这种类型的变换来扩展图像中,暗像素的值,同时压缩更高灰度级的值。反对数变换的作用与此相反。

下面用Python实现图像的对数变换:

使用的图片数据为:

导入要使用的第三方库:

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import math

读取图片并可视化:

img = Image.open('小亮点.jpg')
plt.axis('off')
plt.imshow(img)
plt.show()

将图像数据转换为numpy数组:

img_data = np.array(img)

定义变换函数:

def logarithm_transformation(img, func):img_data = np.array(img)a = np.shape(img_data)new_img = []for i in range(a[0]):new_row = []for j in range(a[1]):data = list(img_data[i][j])new_data = func(data)new_row.append(np.array(new_data))new_img.append(np.array(new_row))return new_img
def function(data):new_data = []for k in data:a = int(1*math.log(1+k))new_data.append(a)return new_data

调用,并可视化结果:

new_img = logarithm_transformation(img, function)
new_img = np.array(new_img)
new_img = Image.fromarray(new_img.astype('uint8')).convert('RGB')plt.figure(figsize=(72,128))
plt.subplot(121)
plt.axis('off')
gray1 = new_img.convert('L')
plt.imshow(gray1, cmap='gray')
plt.subplot(122)
plt.axis('off')
plt.imshow(img, cmap='gray')
plt.show()

该例子中使用的参数c=1:

左侧为目标结果图像,右侧为原图像

基本的灰度变换函数——对数变换相关推荐

  1. 数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换、对数变换、伽马变换和分段线性变换)

    数字图像处理-空间域处理-灰度变换-基本灰度变换函数(反转变换.对数变换.伽马变换和分段线性变换) 空间域处理是直接对像素进行操作的方法,这是相对于频率域处理而言的.空间域处理主要分为两大类:灰度变换 ...

  2. python实现对数转换_对数变换(一些基本的灰度变换函数)基本原理及Python实现...

    1. 基本原理 变换形式如下 $$T(r) = c\lg(r+1)$$ c为常数 由于对数函数的导数随自变量的增大而减小,对数变换将输入窄范围的低灰度值扩展为范围宽的灰度值和宽范围的高灰度值压缩为映射 ...

  3. 【数字图像处理】灰度变换函数(对数变换、反对数变换、幂次变换)

    // 对比度增强.cpp : 定义控制台应用程序的入口点. //#include "stdafx.h" #include <opencv2/opencv.hpp> #i ...

  4. 灰度拉伸python_对比度拉伸(一些基本的灰度变换函数)基本原理及Python实现

    1. 基本原理 对比度拉伸是扩展图像灰度级动态范围的处理.通过在灰度级中确定两个点来控制变换函数的形状.下面是对比度拉伸函数中阈值处理的代码示例,阈值为平均值. 2. 测试结果 图源自skimage ...

  5. 基本的灰度变换函数——幂律(伽马)变换

    幂律变换的基本形式为:,其中和是常数 有时考虑到偏移量,上式也写为.然而,偏移量是一般显示标定问题,因而作为一个结果,通常在上式中忽略不计. 与对数变换情况类似,部分值得幂律曲线将较窄范围的暗色值,映 ...

  6. 图像处理-灰度变换函数imadjust和stretchlim

    imadjust 在matlab中imadjust原型如下: g = imadjust(f,[low_in high_in], [low_out high_out], gamma) f表示一张灰度图片 ...

  7. matlab 灰度化原理公式,imadjust从用法到原理—Matlab灰度变换函数之一

    注:作者辛苦原创,转载请注明出处 imadjust函数是MATLAB的一个工具箱函数,一般的语法调用格式为: f1=imadjust(f,[low_in high_in],[low_out high_ ...

  8. matlab imadjust函数,imadjust从用法到原理—Matlab灰度变换函数之一

    imadjust函数是MATLAB的一个工具箱函数,一般的语法调用格式为: f1=imadjust(f,[low_in  high_in],[low_out  high_out],gamma) (注: ...

  9. matlab灰度变换函数imadjust、stretchlim

    1.imadjust函数 g=imadjust(f,[low_in,high_in],[low_out,high_out],gamma) f为输入灰度图像,将low_in和high_in之间的灰度值映 ...

最新文章

  1. VMware workstation安装
  2. css规则中区块block,CSS的命名方式:BEM(区块、元素、修饰符)
  3. 同事说他的应用起不来了,因为我的代码里面多了一个空格!
  4. Opencv--直线拟合
  5. 深度解析javascript中的浅复制和深复制
  6. socket通信相关知识
  7. 2017-11-14
  8. java 托盘 气泡 菜单_C#如何使用NotifyIcon实现任务栏托盘菜单及气泡提示
  9. linux hd4000显卡驱动,AMD 即将放弃 Radeon HD2000/3000/4000 系列显卡的驱动支持
  10. win10安装(U盘启动)
  11. 第九章:iOS应用的界面编辑
  12. java防报毒_java接口如何有效防止恶意请求
  13. 拿来就能用的五个前端表白特效(免费)
  14. 201671010458 种兴达 实验三作业互评与改进报告
  15. Could You Be A Target For Layoffs?
  16. 四月数据库排行榜出炉 Oracle、MySQL依然坚挺
  17. 基于 R 的结构方程模型在生态学中的应用
  18. 这一次,除了骂阿里云,还能做些什么?
  19. 【C++】特殊类设计
  20. JS版小黄脸大战游戏(DOM (html+css+js))

热门文章

  1. 广东省英语听说计算机考试时间,2020高考首战!广东/福建等31省市英语听说+听力时间汇总,这些考生每年要考两次...
  2. 一文读懂舵机工作原理并运用(附代码)
  3. Python爬虫学习,批量爬取下载抖音视频
  4. 三天打鱼两天晒网问题Java解法
  5. 小米二手手机回收价格表
  6. 80386为32位机
  7. 【运筹学】由原问题直接写出对偶问题
  8. 【基本操作】RouterOS-安装和使用RouterOS(想要搭简易DHCP服务器和PPPoE服务器的看过来)
  9. 计算机音乐数字乐谱fade,superpads数字谱faded音乐包
  10. 《算法图解》学习笔记(六):图和广度优先搜索(附代码)