python图像处理:图像灰度非线性变换
图像灰度的非线性变换
- 平方变换
- 对数变换
- 伽马变换
- 样例
- 代码
平方变换
将灰度进行平方再除以255,用于
- 降低图像亮度
- 增强亮部对比度
- 减缓暗部对比度
对比度可以看作灰度的斜率
对数变换
将灰度取对数再乘个常数,可以
- 提高图像亮度
- 增强暗部对比度
- 减缓亮部对比度
Q:为什么要加1?
A:为了确保结果是正数
比如拍了夜景图片,就可以用这个处理。
实验中我取c=46,log底数为e
因为np.log默认底数就是e, 255/np.log(256)=45.9。
伽马变换
将灰度幂一下再乘个常数,一般c都取得很小
- 降低图像亮度
- 增强亮部对比度
- 减缓暗部对比度
如果你再阳光下拍了个照,就可以用这个处理
样例
代码
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图像处理:图像灰度非线性变换相关推荐
- 【python图像处理】图像灰度化处理、图像灰度线性变换、图像灰度非线性变换
一.图像灰度化处理 1.最大值灰度处理方法 2.平均灰度处理方法 3.加权平均灰度处理方法 二.图像灰度线性变换 1.图像灰度上移变换 2.图像对比度增强变换 3.图像对比度减弱变换 4.图像灰度反色 ...
- [Python从零到壹] 四十五.图像增强及运算篇之图像灰度非线性变换详解
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- [Python图像处理] 十六.图像的灰度非线性变换之对数变换、伽马变换
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- python 视频 灰度 伽玛_Python 图像处理实战 | 图像的灰度非线性变换之对数变换、伽马变换...
作者 | 杨秀璋 来源 | CSDN博客 责编 | 夕颜 头图 | 付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 本篇文章主要讲解非线性变换,使用自定义方法对图像进行灰度化处理,包 ...
- Python 图像处理实战 | 图像的灰度非线性变换之对数变换、伽马变换
作者 | 杨秀璋 来源 | CSDN博客 责编 | 夕颜 头图 | 付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 本篇文章主要讲解非线性变换,使用自定义方法对图像进行灰度化处理,包 ...
- 用python统计图片中的点_用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)...
我就废话不多说了,大家还是直接看代码吧! import PIL.Image import numpy import os import shutil def sum_right(path): img ...
- Matlab数字图像处理——图像的空间变换
Matlab空间变换函数 imtransform Matlab空间变换函数 imtransform 可以实现图像仿射变换(如 平移.旋转.剪切.缩放).投影变换, 该函数可与 maketform 配合 ...
- CUDA精进之路(三):图像处理——图像灰度化、灰度直方图统计
引言 在大部分的图像处理程序中,其中必不可少的一步就是对传入的彩图进行灰度处理,将三个通道的RGB图片转化为单通道的Gray图,而对于灰度图进行直方图统计同样是观察检测图像特征的常用方法.在OpenC ...
- python实现图像灰度处理
最近学习了一下数据分析.今天打算用matplotlib和numpy来实现图像灰度处理. 我们知道,图像是由若干像素来组成,每一个像素都有明确的位置和被分配的颜色值(RGB).图像就是由很多像素构成的一 ...
最新文章
- r语言 林元震_科学网—ASReml-R之简介 - 林元震的博文
- 关于对 linux系统的物理内存访问 /dev/mem
- Post请求如何取消异步
- java int integer内存_java中一个integer对象的内存占用是多少?可以通过java方法输出吗?...
- android p preview_细数 Android P 开发者预览版中最不能错过的新特性
- CF984B Minesweeper
- 后渗透攻击阶段 PTES
- 怎么用计算机直接截图,电脑截图快捷键怎么使用,电脑怎么快捷键截图
- [Android]网页内图片点击查看大图/识别二维码/下载
- 老鸟必备 | 如何画出优秀的架构图
- “视”不可挡:征兵招警,近视手术成“通关法宝”
- 【2022考研】 肖四大题(马原第一套)背诵笔记
- linux系统安装软件报错,Linux安装软件时报错解决方法
- 套接字中的数据转换(大端模式/小端模式)
- 8.25 欢乐emmm赛
- oracle CLOB与BLOB的区别及使用
- 华为机试—字符串处理专题
- Html5基础知识笔记
- 跑分软件测试的游戏是,性能跑分 常规软件测试解析
- TouchGTX使用教程Button实现Text文本显示变化【一】
热门文章
- vb.net html里的表格,VB.Net - Excel工作表
- 信息系统项目管理师 第7章 项目立项管理
- 创意无限计算机设计大赛,全省青少年科技创新大赛: 创意无限脑洞大开 !
- 蓝牙架构(10)—— 5 安全概述(5.1 安全架构 5.2 BR / EDR安全简单配对 5.3 仅安全连接模式 5.4 LE安全)
- 名帖54 隋代 楷书《解方保墓志》
- move 和 CopyMemory的区别
- Twisted-18.9.0-cp36-cp36m-win_amd64.whl
- cf 1012B Chemical table
- C语言的格式输出 C语言中字符的作用:
- 2021年建筑电工(建筑特殊工种)报名考试及建筑电工(建筑特殊工种)考试报名