计算机视觉基础(2)——图像直方图与平面几何变换

本周我们将学习计算机基础的第二章,底层视觉相关知识——图像直方图与平面几何变换。本次内容将分为三个部分进行讲解,分别是图像直方图、图像直方图变换和图像几何变换。这部分内容主要和数学有很强的相关性:图像直方图部分主要介绍图像直方图的定义、性质以及计算步骤;直方图变换部分主要介绍变换的操作步骤,包括点操作、通过单调映射函数实现直方图变换,并举例说明具体的应用之一——直方图均衡化;图像几何变换部分包括平移变换、仿射变换、图像插值和图像扭曲等内容。

一、图像直方图

我们先来了解一下图像直方图的定义:

  • 直方图是一种用于描述数据统计分布情况的表示方法
  • 横坐标为统计样本,每个柱条(bin)的宽度代表一段取值范围,纵坐标为期对应的某个属性的度
  • 通常,人们也会对直方图进行归一化,即直方图上每个属性的计数除以所有属性的计数之和
  • 图像直方图描述了图像像素值的分布情况

图像直方图 h\left ( g \right ) 定义为数值为 像素值的个数,其统计意义为图像中随机一个像素它具有像素值 𝑔 的概率:

图像直方图的计算步骤如下:

计算复杂性:和像素个数成正比,所以是 𝑂(𝑁)。

下面我们举例说明图像直方图的计算:

对于下面这个小猫的图像,我们先构造一个长度为256的向量 h,然后将其初始化为0。我们开始遍历该小猫图像的所有像素点,对于图像中的每一个像素(i,j),我们计算该像素对应的像素值,将该像素值在直方图中对应的横坐标位置,增加1个单位纵坐标。表示增加一个像素值为该数值的像素点个数。如像素(1,1),对应的像素值为100,即 g(1,1) = 100,对应的就是直方图的横坐标为100,那么我们在直方图中 x = 100 的位置,将 y+1。然后按照上述规则依次遍历所有的像素点,构建出像素点个数关于像素值的图像直方图。

图像直方图表现的是图像像素值的分布情况,描述出了图像的亮度、对比度等信息。

那么如何去描述直方图呢,我们可以用一下统计量来描述:

  • 均值 (Mean):描述图像的亮度
  • 方差 (Variance):描述图像的对比度
  • 中值 (Median):描述图像的亮度,比均值更加鲁棒

 前面我们讨论的都是灰度图像直方图,彩色图像直方图由彩色图像的每个通道计算一个图像直方图得到的,如下所示:

二、图像直方图变换

在学习了图像直方图的基本概念和性质之后,我们需要知道图像直方图在计算机视觉中是用来做什么的,那么下面我们就来了解一下图像直方图变换。

通过对直方图进行变换,我们就可以改变图像直方图的性质,如增加方差,增加对比度,直方图均衡化等。通过这些变换来改变图像的基本信息,来达到想要的效果。

首先,我们来学习图像直方图变换的操作。

点操作 (Point Operator)

  • 仅基于输入的单点像素值进行映射,将其映射到一个新的像素值;
  • 对某一点像素值的映射只与它本身有关,与其他位置的像素值无关。

通过上面基于线性函数的点变换操作,我们能达到如下效果:

(1)调整亮度

        增大        k>0

        减小        k<0

(2)调整对比度

        增大        m>1

        减小        0<m<1

(3)对比度翻转

        亮变暗或暗变亮        m=-1

考虑到像素值范围是[0 ... 255],因此对输出还要进行截断,保持其范围,即进行阈值截断操作

 接下来,我们将学习通过单调映射函数变换图像直方图。下面是两类不同的图像直方图变换:

在掌握基本概念之后,我们来进行图像直方图变换的公式推导:

最后,让我们来看一个直方图变换的例子——直方图均衡化

 

 其中,N为图像的像素点总数,N = H(255)。

让我们来看看直方图均衡化的效果:

 直方图均衡化的优点如下:

  • 增加对比度
  • 局部对比度低的区域获得了更大的对比度增强
  • 使整幅图像的像素值尽量均匀的分布

三、图像几何变换

平移变换和仿射变换如下:

图像插值分为最近邻插值和双图像插值

最后是图像扭曲,包括前向扭曲映射和反向扭曲映射

 

 总结

本文主要聚焦于底层视觉的基本知识,从数学的角度,给大家讲解了图像直方图、直方图变换和平面几何变换这三个部分。本文主要分析的是理论部分的内容,希望大家能去网站上查看相关的论文,去Github上找相关的项目学习。理论与实践结合,有更好的学习效果噢~

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: MATLAB是科学和工程计算领域最为流行的软件之一,因为它提供了大量的工具箱和函数库使得开发者能够快速地完成图片或其它类型的处理。MATLAB的一个重要特点就是提供可视化的设计界面,也可以利用一些简单的代码对不同数据或者图像提供需要的操作。 在我们这个问题中,MATLAB的app源码包含图像处理中的直方图均衡,几何变换以及加噪滤波。这些都是当下广泛使用的图像处理方法。 直方图均衡(Histogram Equalization)是通过调整像素灰度值分布来增加图像对比度的方法。在代码中,可以设定不同的参数来使得直方图均衡化更加合适和符合实际需要。 几何变换(Geometric Transformations)包括旋转、缩放、平移、拉伸和翻转等等。这个功能的使用很方便,我们可以通过app界面实现所需要的像素变换。 加噪滤波(Noise Filtering)指的是通过滤波消除噪音的过程。噪声可以出现在任何图像中,造成图像失真和质量不佳。用户可以手动设置需要消除的噪声类型,如加性高斯噪声或椒盐噪声,等等。 总的来说,使用MATLAB的app开发源码进行图像处理是十分方便和快捷的。它提供了大量的功能和处理方法,使得用户可以更加容易地进行图像处理。也可以根据不同的需求开发自己的新的图像处理方法。 ### 回答2: MATLAB是一种强大的数学计算和编程环境,广泛用于工程、科学和数据分析。MATLAB的应用程序(App)是一种交互式工具,能够提供易于使用的界面,以便用户可以使用自己的数据进行各种操作。在MATLAB中进行图像处理是一项常见任务。其中,直方图均衡、几何变换和加噪滤波是图像处理中常用的技术。 直方图均衡是一种图像增强技术,其基本原理是在整个图像的灰度分布中增加对比度。直方图均衡可以通过增加像素灰度值的动态范围,来改善图像的视觉效果。可以通过MATLAB App来实现直方图均衡,需要使用一些基本的图像处理函数,如imread、histeq和imshow。 几何变换是改变图像形状和大小的技术,其可应用于图像缩放、旋转、裁切和反转等。MATLAB提供了很多用于几何变换的函数,如imresize、imrotate、imcrop和flipud。在MATLAB App中执行几何变换操作需要使用这些函数之一,为用户提供可控参数,以便在图像变换过程中对所需的几何变换面板进行调整。 加噪滤波是对图像中存在的影响信号进行处理的一种技术。从不同噪声模型到各种滤波器,MATLAB为各种噪声处理任务提供了一套内置的函数。在MATLAB App中执行加噪滤波操作需要使用一些基本的图像处理函数,如imread、imnoise和imshow,并根据用户所需的噪声类型和滤波器类型进行调整。 总而言之,三种图像处理技术都非常重要,同时也非常常用。MATLAB App为用户提供了方便的交互界面,以便更快速地执行这些操作,进而提高图像处理的效率和准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猪猪的超超

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值