图像灰度的非线性变换

  • 平方变换
  • 对数变换
  • 伽马变换
  • 样例
  • 代码

平方变换

将灰度进行平方再除以255,用于

  1. 降低图像亮度
  2. 增强亮部对比度
  3. 减缓暗部对比度

对比度可以看作灰度的斜率

对数变换


将灰度取对数再乘个常数,可以

  1. 提高图像亮度
  2. 增强暗部对比度
  3. 减缓亮部对比度

Q:为什么要加1?
A:为了确保结果是正数

比如拍了夜景图片,就可以用这个处理。

实验中我取c=46,log底数为e
因为np.log默认底数就是e, 255/np.log(256)=45.9。

伽马变换


将灰度幂一下再乘个常数,一般c都取得很小

  1. 降低图像亮度
  2. 增强亮部对比度
  3. 减缓暗部对比度

如果你再阳光下拍了个照,就可以用这个处理

样例

代码

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import cv2
matplotlib.rcParams['font.family'] = 'simHei'
matplotlib.rcParams['axes.unicode_minus'] = False
%matplotlib qt5
img = cv2.imread('666.png')
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
rows,cols = img_gray.shapeimg1 = np.ones((rows,cols),dtype = np.uint8)
img2 = np.ones((rows,cols),dtype = np.uint8)
img3 = np.ones((rows,cols),dtype = np.uint8)#DB = (DA^2)/255
for i in range(rows):for j in range(cols):img1[i,j] = pow(img_gray[i,j],2)/255#DB = 46*ln(DA)
for i in range(rows):for j in range(cols):img2[i,j] = np.uint8(np.log(img_gray[i,j]+1)*46)#DB = 0.0000006031*DA^4
for i in range(rows):for j in range(cols):img3[i,j] = np.uint8(6.031e-8*pow(img_gray[i,j],4))plt.subplot(321)
plt.title('原图')
plt.imshow(img_gray,'gray',vmin=0,vmax=255)
plt.subplot(322)
plt.imshow(img1,'gray',vmin=0,vmax=255)
plt.title('平方变换')
plt.subplot(323)
plt.title('原图')
plt.imshow(img_gray,'gray',vmin=0,vmax=255)
plt.subplot(324)
plt.title('对数变换')
plt.imshow(img2,'gray',vmin=0,vmax=255)
plt.subplot(325)
plt.title('原图')
plt.imshow(img_gray,'gray',vmin=0,vmax=255)
plt.subplot(326)
plt.title('伽马变换')
plt.imshow(img3,'gray',vmin=0,vmax=255)

python图像处理:图像灰度非线性变换相关推荐

  1. 【python图像处理】图像灰度化处理、图像灰度线性变换、图像灰度非线性变换

    一.图像灰度化处理 1.最大值灰度处理方法 2.平均灰度处理方法 3.加权平均灰度处理方法 二.图像灰度线性变换 1.图像灰度上移变换 2.图像对比度增强变换 3.图像对比度减弱变换 4.图像灰度反色 ...

  2. [Python从零到壹] 四十五.图像增强及运算篇之图像灰度非线性变换详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  3. [Python图像处理] 十六.图像的灰度非线性变换之对数变换、伽马变换

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  4. python 视频 灰度 伽玛_Python 图像处理实战 | 图像的灰度非线性变换之对数变换、伽马变换...

    作者 | 杨秀璋 来源 | CSDN博客 责编 | 夕颜 头图 | 付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 本篇文章主要讲解非线性变换,使用自定义方法对图像进行灰度化处理,包 ...

  5. Python 图像处理实战 | 图像的灰度非线性变换之对数变换、伽马变换

    作者 | 杨秀璋 来源 | CSDN博客 责编 | 夕颜 头图 | 付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 本篇文章主要讲解非线性变换,使用自定义方法对图像进行灰度化处理,包 ...

  6. 用python统计图片中的点_用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)...

    我就废话不多说了,大家还是直接看代码吧! import PIL.Image import numpy import os import shutil def sum_right(path): img ...

  7. Matlab数字图像处理——图像的空间变换

    Matlab空间变换函数 imtransform Matlab空间变换函数 imtransform 可以实现图像仿射变换(如 平移.旋转.剪切.缩放).投影变换, 该函数可与 maketform 配合 ...

  8. CUDA精进之路(三):图像处理——图像灰度化、灰度直方图统计

    引言 在大部分的图像处理程序中,其中必不可少的一步就是对传入的彩图进行灰度处理,将三个通道的RGB图片转化为单通道的Gray图,而对于灰度图进行直方图统计同样是观察检测图像特征的常用方法.在OpenC ...

  9. python实现图像灰度处理

    最近学习了一下数据分析.今天打算用matplotlib和numpy来实现图像灰度处理. 我们知道,图像是由若干像素来组成,每一个像素都有明确的位置和被分配的颜色值(RGB).图像就是由很多像素构成的一 ...

最新文章

  1. r语言 林元震_科学网—ASReml-R之简介 - 林元震的博文
  2. 关于对 linux系统的物理内存访问 /dev/mem
  3. Post请求如何取消异步
  4. java int integer内存_java中一个integer对象的内存占用是多少?可以通过java方法输出吗?...
  5. android p preview_细数 Android P 开发者预览版中最不能错过的新特性
  6. CF984B Minesweeper
  7. 后渗透攻击阶段 PTES
  8. 怎么用计算机直接截图,电脑截图快捷键怎么使用,电脑怎么快捷键截图
  9. [Android]网页内图片点击查看大图/识别二维码/下载
  10. 老鸟必备 | 如何画出优秀的架构图
  11. “视”不可挡:征兵招警,近视手术成“通关法宝”
  12. 【2022考研】 肖四大题(马原第一套)背诵笔记
  13. linux系统安装软件报错,Linux安装软件时报错解决方法
  14. 套接字中的数据转换(大端模式/小端模式)
  15. 8.25 欢乐emmm赛
  16. oracle CLOB与BLOB的区别及使用
  17. 华为机试—字符串处理专题
  18. Html5基础知识笔记
  19. 跑分软件测试的游戏是,性能跑分 常规软件测试解析
  20. TouchGTX使用教程Button实现Text文本显示变化【一】

热门文章

  1. vb.net html里的表格,VB.Net - Excel工作表
  2. 信息系统项目管理师 第7章 项目立项管理
  3. 创意无限计算机设计大赛,全省青少年科技创新大赛: 创意无限脑洞大开 !
  4. 蓝牙架构(10)—— 5 安全概述(5.1 安全架构 5.2 BR / EDR安全简单配对 5.3 仅安全连接模式 5.4 LE安全)
  5. 名帖54 隋代 楷书《解方保墓志》
  6. move 和 CopyMemory的区别
  7. Twisted-18.9.0-cp36-cp36m-win_amd64.whl
  8. cf 1012B Chemical table
  9. C语言的格式输出 C语言中字符的作用:
  10. 2021年建筑电工(建筑特殊工种)报名考试及建筑电工(建筑特殊工种)考试报名