图像点处理

ops/2025/1/23 12:10:01/

怎么理解灰度图?

RGB很明显有三个通道
我们看红色通道,因为天空中红色含量(R值)最少,因此红色通道中的天空最暗,而因为建筑红色含量(R值)最高,所以红色通道中的建筑最亮。

怎么理解灰度分布图

x轴为灰度值。表示0~255
y轴为像素数量(频率),表示图像中具有特定灰度值的像素数量。

灰度分布图常见典型特征:

(1)平坦分布:

如果灰度直方图在所有灰度值上分布比较均匀(即y轴值变化不大),说明对比度低。

(2)高峰集中在某一部分:

如果高峰集中在低灰度值区域(靠近0),说明图像偏暗。

如果高峰集中在高灰度值区域(靠近255),说明图像整体偏亮。

(3)双峰分布:

如果灰度直方图有两个明显的峰值,可能表示图像中存在两种主要的灰度区域(例如,背景和目标物体。

灰度分布图的应用:

图像增强:通过调整灰度分布(如直方图均衡化),可以改善图像的对比度和视觉效果。

图像分割:通过分析灰度分布的峰值和谷值,可以确定合适的阈值,用于分割图像中的不同区域。

图像校正:通过观察灰度分布,可以判断图像是否过暗或过亮,并采取相应的校正措施(如伽马变换)

图像点处理定义:

图像点处理是一种对每个像素单独进行操作的处理方式。点处理的核心在于直接对像素的灰度值或颜色值进行变换,而不依赖于像素周围的邻域信息。这种处理方式的特点是像素之间的处理相互独立,因此非常适合并行计算,例如利用GPU加速。

图像点处理可以分为线性点运算和非线性点运算:

线性点运算:

通过线性函数s=ar + b实现,其中r是输入像素值,s是输出像素值,a和b是常数。这种运算可以用于调整图像的亮度和对比度。

非线性点运算:

(1)指数点运算

作用:拓展图像的高灰度级,压缩图像的低灰度级。

(2)对数点运算

作用:扩展图像的低灰度级,压缩图像的高灰度级

(3)对数变换

常用于图像处理中以增强图像的暗部细节。

其基本公式为: s = c log(1 + r)

其中,r 是输入图像的灰度值,s 是输出图像的灰度值,c 是一个常数,用于调整变换后的灰度值范围。

(4)伽马变换

常用于调整图像的对比度和亮度。其基本公式为: s = c × r^γ
其中,r 是输入灰度值,s 是输出灰度值,cγ 是正常数。

γ < 1 时,伽马变换会拉伸低灰度值区域,压缩高灰度值区域,使图像的暗部更亮

γ > 1 时,伽马变换会拉伸高灰度值区域,压缩低灰度值区域,使图像的亮部更亮


http://www.ppmy.cn/ops/152460.html

相关文章

C#性能优化技巧:利用Lazy<T>实现集合元素的延迟加载

一、C#中的Lazy C#中的Lazy<T>是一个泛型类&#xff0c;它实现了延迟加载&#xff08;Lazy Initialization&#xff09;的功能。延迟加载是指对象的创建被推迟&#xff0c;直到第一次被使用时才进行实例化。这对于大型或资源密集型对象的性能优化非常有用&#xff0c;因…

计算机视觉中的目标检测技术

1. 引言 目标检测是计算机视觉中的重要任务&#xff0c;涉及识别图像或视频中的多个对象并定位它们的位置。与图像分类不同&#xff0c;目标检测不仅需要识别类别&#xff0c;还要在图像中绘制出对象的边界框(Bounding Box)。本文将探讨目标检测的核心技术和应用&#xff0c;并…

STM32 GPIO工作模式

GPIO工作模式 1. GPIO简介2. GPIO工作模式2.1 输入浮空2.2 输入上拉2.3 输入下拉2.4 模拟2.5 开漏输出2.6 推挽输出2.7 开漏式复用功能2.8 推挽式复用功能 1. GPIO简介 GPIO 是通用输入输出端口的简称&#xff0c;简单来说就是 STM32 可控制的引脚&#xff0c;STM32 芯片的 GPI…

2、ceph的安装——方式二ceph-deploy

一、ceph部署 1、更新yum源 wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo2、下载 pip yum -y install python-pip3、始终同步、关闭防火墙、selinux、三台机器做免密 yum install -y ntpdate ntpdate ntp.aliyun.com setenforce 0…

【Golang 面试题】每日 3 题(四十一)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…

封装 调用第三方链接接口

function payOutCardInfo($card_id,$amount) {$url config(payOut.url).v1/cash-out/card-info;$headers [accept: */*,Content-Type: application/json];//$data [cardId > $card_id,amount > $amount,];// 将数据转换为JSON格式$jsonData json_encode($data);// 初…

C# 动态创建Label和ComboBox控件并修改Text获取Text

背景&#xff1a;在做项目的时候可能需要根据一定数量创建某些控件并修改其属性&#xff0c;本文以控件label、ConboBox控件进行动态创建。 程序运行前后的的Form动态图 代码如下&#xff1a; using System; using System.Collections.Generic; using System.ComponentModel; …

自动化标注平台开源,基于 yolov8标注平台可本地部署

yolov8标注平台本地部署&#xff08;docker部署&#xff09;&#xff0c;已调通yolov8模型自动预标注功能。 下面开始背景知识…… 1&#xff09;数据标注为什么在人工智能时代如此重要&#xff1f; 数据标注在人工智能时代如此重要&#xff0c;原因如下&#xff1a; 为机器…