第四章图像增强

第四章图像增强

  • 1_图像增强的概念
  • 2_空间域增强
    • 2.1_图像增强的点运算
      • 2.1.1_灰度变换
      • 2.1.2_直方图均衡化
      • 2.1.3 直方图规定化

1_图像增强的概念

  1. 什么是图像增强:图像增强是采用一系列技术去改善图像的视觉效果,或将图像转换成一种更适合于人或机器进行分析和处理的形式。

  1. 两种图像增强方法:空间域增强、频率域增强
    空间域增强是直接对图像各像素进行处理;
    频率域增强是对图像经傅立叶变换后的频谱成分进行处理,然后逆傅立叶变换获得所需的图像。

本章知识结构图:
在这里插入图片描述

2_空间域增强

2.1_图像增强的点运算

2.1.1_灰度变换

灰度变换可调整图像的灰度动态范围或图像对比度,是图像增强的重要手段之一。

  1. 线性变换
    令图像f(i,j)的灰度范围为[a,b],线性变换后图像g(i,j)的范围为[a´,b´],如图,g(i,j)与f(i,j)之间的关系式为:g(i,j) = d + (b’-d)/(b-a)*(f(i,j) - a)
    在这里插入图片描述
    对曝光不足或过度的图像采用线性变换对图像每一个像素灰度作线性拉伸。可有效地改善图像视觉效果。

  1. 分段线性变换
    在这里插入图片描述

  1. 非线性灰度变换
    例如:对数变换和指数变换

本节总结:当变换的斜率大于1时,效果为水平拉伸(灰度等级密度减小),变换的斜率小于1时,效果为水平缩放(灰度等级密度增大)
下面的例子哪段的斜率大于1,哪段的小于1呢?
在这里插入图片描述
答案是:两头的小于1,中间的大于1

2.1.2_直方图均衡化

由于灰度等级分布均匀,图像动态范围大,图像清晰,所以本方法的思想就是通过对原图像进行某种变换,使原图像的灰度直方图修正为均匀分布的直方图


均衡化原理

  1. 频率较小的某些灰度等级被合并到一个或几个灰度等级中,即频率小的部分被压缩,而频率大的部分被增强。
  2. 直方图均衡化的实质是减少灰度等级换取对比度的扩大。

直方图均衡化的两个规则

  1. 变化图像趋势不得有交叉
    在这里插入图片描述

  1. 确保映射后的像素灰度在允许的范围内

推论:

  1. 结合此图像可知,原图像每一个灰度值的出现次数 和 最后投影到新图像上对应得到的新灰度值的次数相等
  2. 设原图像上两个灰度值a1,a2,对应均衡化之后的新图像上两点b1,b2,若a1<a2,则必有b1<b2(相应的若a1>a2,则必有b1>b2)

均衡化的步骤及原理(本例不采用归一化的方法,也不采用连续的思想,因为那样刚开始不容易理解):
在这里插入图片描述
左图为原图像,右图为映射图像,其中灰度值s为原图中灰度值r映射得到的对应点,由推论2可知:

  1. 若ra < r,则必有sa< s(其中sa是ra映射后的点)

  2. 所以有关系式,若rk对应sk,则∑i=1kP(ri)\sum_{i=1}^{k} P(r_i)i=1kP(ri) = ∑i=1kP(si)\sum_{i=1}^{k} P(s_i)i=1kP(si)

  3. 由于我们尽量让每一段的平均概率(下面简称为均高)都尽量如右图的高(1n\frac{1}{n}n1),所以即可得到每一个对应的sk
    由底长 = 面积/高得
    sk = (∑i=1kP(ri)\sum_{i=1}^{k} P(r_i)i=1kP(ri)) / (1n\frac{1}{n}n1)
    但是这样得到的sk值是不准确的,为什么不准确呢,举例:若灰度值为0到7,可这样计算很有可能会出现小数的结果,所以我们每次取近似值(取距离结果最近的灰度值)


例题:

在这里插入图片描述

2.1.3 直方图规定化

直方图规定化是使原图像灰度直方图变成规定形状的直方图而对图像作修正的增强方法。
通俗的说就是,你事先知道,若直方图能改为某个形状将会使得图像增强效果最好,所以你就预先设定出来这个形状,并将原图像尽力去拟合成此形状,但是如果直接去拟合,难度很大,所以先将设定好的直方图和原图像的直方图均衡化(设定好的直方图均衡化后会得到其逆变换公式),将原图像的均衡化后的直方图去拟合设定好的并均衡化的直方图,最后利用逆变换公式进行最后一步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java DataInputStream readShort()方法(带示例)

DataInputStream类readShort()方法 (DataInputStream Class readShort() method) readShort() method is available in java.io package. readShort()方法在java.io包中可用。 readShort() method is used to read 2 bytes (i.e. 16 bit) of data input and returns a short va…

IP 对应 网址

IP 对应 网址 /* 网址和IP对应的小例子 */try {InetAddress address_1 InetAddress.getByName("www.baidu.com");InetAddress address_2 InetAddress.getByName("10.2.8.13");System.out.println(address_1.toString());System.out.println(address_2.t…

springboot发送qq邮件

springboot发送qq邮件1_开启邮箱相关权限并获取邮箱授权码2_实现功能2.1_添加mail的依赖2.1.1_创建工程时添加2.1.2_在工程中添加2.2_配置文件application.properties配置相关信息2.3_实现代码1_开启邮箱相关权限并获取邮箱授权码 进入账户 开启POP3/SMTP服务并生成授权码 …

反转链表-剑指offer-16

题目&#xff1a;定义一个函数&#xff0c;输入一个链表的头节点&#xff0c;反转该链表并输出反转后链表的头节点。分析&#xff1a;逐个头插&#xff0c;实现反转设置3个指针&#xff1a;head 头节点、prev 前一个节点、 cur 下一个节点注意&#xff1a;链表为空&#xff0c;…

getsimplename_Java类类getSimpleName()方法的示例

getsimplename类类getSimpleName()方法 (Class class getSimpleName() method) getSimpleName() method is available in java.lang package. getSimpleName()方法在java.lang包中可用。 getSimpleName() method is used to return the simple name of the underlying class as…

MyEclipse编码设置,中文乱码解决方法,UTF-8,GBK

在Myeclipse导入一个项目&#xff0c;有中文乱码问题&#xff0c;解决方法如下&#xff1a;一、将整个project设置编码UTF-8&#xff08;UTF-8可以最大的支持国际化&#xff09; windows->Preferences->general->Workspace->Text file encoding->Other框中的Tex…

Spring Cloud Alibaba 深度解密!

说说吧&#xff0c;程序猿们&#xff0c;你们还有谁不是“单身G”&#xff1f;想要“赢取”白富美&#xff0c;当上CTO&#xff0c;走上人生巅峰&#xff0c;不努力怎么可以&#xff1f;别人疯狂购物&#xff0c;你疯狂学习&#xff0c;努力30天&#xff0c;向阿里P6迈进&#…

安卓连接真机调试

安卓连接真机调试一、打开开发者模式二、打开USB调试三、最后连接数据线这里使用荣耀20pro为例一、打开开发者模式 点击版本号&#xff0c;多点几下直到打开开发者模式 二、打开USB调试 系统与更新——>开发人员选项 三、最后连接数据线 连接数据线并选择MIDI模式

Java ByteArrayInputStream skip()方法与示例

ByteArrayInputStream类skip()方法 (ByteArrayInputStream Class skip() method) skip() method is available in java.util package. skip()方法在java.util包中可用。 skip() method is used to skip the given number of bytes (no_of_bytes) from this stream. skip()方法用…

3W字!带你玩转「消息队列」

1. 消息队列解决了什么问题消息中间件是目前比较流行的一个中间件&#xff0c;其中RabbitMQ更是占有一定的市场份额&#xff0c;主要用来做异步处理、应用解耦、流量削峰、日志处理等等方面。1. 异步处理一个用户登陆网址注册&#xff0c;然后系统发短信跟邮件告知注册成功&…

okhttp_utils的使用以及与服务端springboot交互中遇到的问题

okhttp_utils的使用以及与服务端springboot交互中遇到的问题1_okhttp_utils在Android studio中的引入方法2_okhttputils的使用举例3_get和post的简单使用3_图片的上传3.1_单张图片的上传3.1.1_获取安卓本地图片问题3.1.2_okhttputils上传图片代码3.1.3_服务端接收图片3.2_单张图…

算法系列之图--DFS

深度优先搜索使用的策略是&#xff0c;只要与可能就在图中尽量“深入”。DFS总是对最近才发现的结点v出发边进行探索&#xff0c;知道该结点的所有出发边都被发现为止。一旦v的所有出发边都被发现了&#xff0c;搜索就回溯到v的前驱结点&#xff08;v是经该结点才被发现的&…

python列表中随机选择_如何在Python中从列表中随机选择一个项目?

python列表中随机选择Python random module provides an inbuilt method choice() has an ability to select a random item from the list and other sequences. Using the choice() method, either a single random item can be chosen or multiple items. The below set of …

这8种常见的SQL错误用法,你还在用吗?

来源 | yq.aliyun.com/articles/72501MySQL 在近几年仍然保持强劲的数据库流行度增长趋势。越来越多的客户将自己的应用建立在 MySQL 数据库之上&#xff0c;甚至是从 Oracle 迁移到 MySQL上来。但也存在部分客户在使用 MySQL 数据库的过程中遇到一些比如响应时间慢&#xff0c…

微软披露了Spartan中所使用的渲染引擎的细节

微软披露了在Spartan web浏览器中所使用的新渲染引擎的更多信息&#xff0c;Windows 10的桌面版本和移动设备版本将预装该浏览器。\\Charles Morris是Spartan项目的项目经理主管&#xff0c;他在一篇博客帖子中详细地解释了该项目背后的成因、IE浏览器的历史以及未来的计划。该…

常见疑惑问题

常见疑惑问题maven是什么maven是什么 maven——用于导入jar包的快捷方法

c++ array stl_C ++ STL中带有示例的array :: front()函数

c array stlC STL array :: front()函数 (C STL array::front() function) font() function is a library function of array and it is used to get the first element of an array, it returns the reference to the first element in an array. font()函数是array的库函数&…

千万不要这样写代码!9种常见的OOM场景演示

《Java虚拟机规范》里规定除了程序计数器外&#xff0c;虚拟机内存的其他几个运行时区域都有发生 OutOfMemoryError 异常的可能&#xff0c;我们本文就来演示一下这些错误的使用场景。一. StackOverflowError1.1 写个 bugpublic class StackOverflowErrorDemo {public static v…

Android开发教程:手机震动控制浅析

Android系统中Vibrator对象负责对手机震动的处理&#xff0c;具体的实现方法&#xff1a; 1.获取振动器Vibrator的实例&#xff1a; Vibrator vibrator (Vibrator) getSystemService(VIBRATOR_SERVICE); getSystemService(VIBRATOR_SERVICE)&#xff1a;获得 一个震动的服务2.…

MySQL数据库安装与配置详解

目录 一、概述 二、MySQL安装 三、安装成功验证 四、NavicatforMySQL下载及使用 一、概述 MySQL版本&#xff1a;5.7.17 下载地址&#xff1a;http://rj.baidu.com/soft/detail/12585.html?ald 客户端工具&#xff1a;NavicatforMySQL 绿色版下载地址&#xff1a;http://www.c…