java对灰度值进行线性变换,灰度变换
定义:灰度变换是按某一既定的变换关系逐点改变源图像中每一个像素灰度值。目的是为了按照目的改善显示效果,增强某些图像信号,调整灰度分布,是一种空域图像处理方法。
公式
基于当前像素值s和某一灰度转换函数T,将当前像素值s转化为另一像素值值S:
主要可以起到以下作用:改善图像的质量,提高图像的对比度;突出图像感兴趣的特征或者抑制不需要的特征;改变图像的直方图分布。根据显示需求的不同,可以选择或设计不同的T函数。
常见的灰度变换形式
线性变换
线性变换适用于以下情景:在曝光度不足或过度的情况下,图像灰度可能会局限在一个很小的范围内。用一个线性单值函数,对图像内的每一个像素做线性扩展,将有效地改善图像视觉效果,适用于全场像素的灰度增强及扩展,转换函数如下:
其中,a的大小主要控制图像的对比度,a>1时,对比度得到增强,a<1时,对比度减弱,b主要控制整体灰度值的变换,配合a取值的不同取得不同的效果,a=1 b>0则整体变亮,a=1 b<0则整体变暗。
分段线性变换
为了突出感兴趣的灰度区间,相对抑制那些不感兴趣的灰度区间,可采用分段线性变换。常用的三段线性变换如下图所示,点(r1,s1)和(r2,s2)的位置之间的灰度范围可以实现比例最大的扩展,操纵着灰度增强的范围。
对数变换
对数变换,将源图像中范围较窄的低灰度值映射到范围较宽的灰度区间,同时将范围较宽的高灰度值区间映射为较窄的灰度区间,从而扩展了灰度值较低的像素值,对低灰度值的细节进行增强,而对应的反对数变换的作用是压缩灰度值较低的区间,扩展高灰度值的区间,增强高灰度的细节,主要形式如下所示:
同时对数变换被广泛应用于灰度动态范围的压缩(如超声图像解包络以后采用对数压缩),从而能够更好的压缩过大的动态范围,显示图像细节。
伽马变换
伽马变换主要用于图像的校正,对灰度值过高(图像过亮)或者过低(图像过暗)的图像进行修正,增加图像的对比度,从而改善图像的显示效果。表达式如下:
当γ<1时,γ的值越小,对图像低灰度值的扩展越明显;当γ>1时,γ的值越大,对图像高灰度值部分的扩展越明显。这样就能够显示更多的图像的低灰度或者高灰度细节
参考文献
[1]Baidoo E. Implementation of Gray Level Image Transformation Techniques[J]. International Journal of Modern Education & Computer Science, 2018, 10(5).
[2]https://www.javatpoint.com/dip-gray-level-transformation
[3]https://www.tutorialspoint.com/dip/gray_level_transformations.htm
本文为原创内容,所有权归本网站所有,禁止转载。违反上述声明者,将追究其相关法律责任
- END -
405
java对灰度值进行线性变换,灰度变换相关推荐
- java图像灰度直方图_图像灰度变换、二值化、直方图
1.灰度变换 1)灰度图的线性变换 Gnew = Fa * Gold + Fb. Fa为斜线的斜率,Fb为y轴上的截距. Fa>1 输出图像的对比度变大,否则变小. Fa=1 Fb≠0时,图像的 ...
- 灰度值取值范围_第三章 灰度变换与空间滤波-(三)直方图之直方图均衡
听说:单反穷三代,摄影毁一生. 本节目录 3.1 直方图均衡 3.2 直方图匹配(规定化) 3.3 局部直方图处理 3.4 图像增强中使用直方图 真是感谢雷神,举例子还是以灰度图为主,减负了不少.是因 ...
- 8bit黑白图像的灰度值范围是_数字图像处理基本知识
1.数字图像: 数字图像,又称为数码图像或数位图像,是二维图像用有限数字数值像素的表示.数字图像是由模拟图像数字化得到的.以像素为基本元素的.可以用数字计算机或数字电路存储和处理的图像. 2.数字图像 ...
- 【CV作业02】图像灰度值变换+UI
目录 参考资料: 代码 1. 各种转换方法的实现 2. UI 设计(这里只展示功能实现部分,自动生成的代码已省去) 3. 启动程序 参考资料: PyQT6的从零开始(一):在Anaconda下安装Py ...
- JAVA空间滤波——中值滤波
在讲述如何通过JAVA编程实现中值滤波之前,先谈一下与空间滤波相关的数字图像处理的概念. 1.关于图像和数字图像处理 可以将图像视为是一个二维函数F(x,y),其中(x,y)代表一张数字图像上面对应像 ...
- java 图片灰度化
2019独角兽企业重金招聘Python工程师标准>>> http://liuyu314.github.io/java/2014/05/24/grayscale/ public cla ...
- java如何处理灰度图片_Java图片的灰度处理方法
通过看网上各种大牛的总结,和自己亲身测试总结一下Java图片的灰度处理方法 (1)我们熟知的图片中的像素点有RGB值. (2)图片灰度化的方式大概分为四种,第一种是最大值法(取颜色RGB中的最大值作为 ...
- Java中的值传递和引用传递
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递.Java 编程语言只有值传递参数.当一个对象实例作为 ...
- Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递?
来自:沉默王二 在逛 Stack Overflow 的时候,发现了一些访问量像阿尔卑斯山一样高的问题,比如说这个:Java 到底是值传递还是引用传递?访问量足足有 188万+,这不得了啊!说明有很多很 ...
最新文章
- 在SAP PI中建立场景
- VMware宋家瑜:U2VL要趁早
- 【转】对服务采购订单的条目确认
- python切片原理_深度解析Python切片
- python是c语言_python与c语言
- 软件工程师所需掌握的“终极技术”是什么?
- 机器成为家人!华为发布2025十大趋势展望...
- python symbols函数,Python
- linux客户端工具有哪些,Linux命令以及客户端工具的使用
- 最性感的肩膀纹身设计女装 - 5令人惊叹的设计,你会爱!
- 如何解释静息态功能磁共振成像:询问你的参与者
- 用户活跃、留存、流失,终于讲清楚了!
- 前端获取微信头像 base64 数据的踩坑实践
- C算法之一元二次方程组的解
- C#操作MicroSoft Word的代码
- Android音频AAC硬编码
- XMUOJ·纸片选择
- 程序猿(媛)实用颜色表 [颜色图示,英文代码,形象颜色,HEX格式,RGB格式]
- 查询 MySQL 字段注释的 5 种方法
- Python中 5个非常有用的单行代码
热门文章
- (Buuctf) [第五空间2019 决赛]PWN5 简单格式化字符串漏洞利用
- 【Python教程】30个语言特性技巧整理
- Python操作JSON和CSV
- Python回调函数用法实例
- 用Python实现-----按要求修改文件名
- 一道问题引出的python中可变数据类型与不可变数据类型
- C语言函数调用过程的汇编分析(停更)
- 安卓系统辅助功能中的指针停止移动后点击是什么?OTG
- python 如何获取系统当前时间?datetime.datetime.now() 打印格式化时间(可用作文件名的格式化时间strftime)
- 什么是尾递归?测试python尾递归