美文网首页
基本图像操作

基本图像操作

作者: 萧风萧雨 | 来源:发表于2019-04-23 20:27 被阅读0次

基本图像操作

1.直方图(histograms)

定义

直方图是对图像在某个指标的不同值的数量的统计,如亮度直方图,灰度直方图,颜色直方图。
例子:
亮度直方图 -> 表达了每个亮度级的像素数,图像对比度
亮度 = (R + B + G) / 3 范围 0-255


优缺点

优点:简单,快速,高效
缺点:不能描述空间信息;不能描述图像细节(因为仅表达了不同级的统计值分布,不同图像可以有很接近的直方图)

金字塔直方图

将图片分为n x n的子图,每个子图一个直方图,从而能够区分总体直方图相近的不同图像。
<img src="/visual_images/pyramid_histogram.png" width="800" height="400"/>

Q: 图像的局部不变特征

图像在经过一些变换后仍保持不变的特征,变换有尺度,平移,旋转,仿射,投影,光度,卷积等。
基本问题:局部不变特征的检测,描述,匹配。
特征除了具备不变性,还应具有可靠性,对噪声等的鲁棒性等。目前的特征算子有SIFT等。【HOG(方向梯度直方图),用于物体检测的特征。 介绍
综述:Tinne Tuytelaars. Local Invariant Feature Detectors: A Survey, 2007 Computer Graphic & Vision

2.点运算(point operation)

点运算将输入图象映射为输出图象,输出图象每个象素点的灰度值仅由对应的输入象素点的值决定。它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。点运算因其作用性质有时也被称为对比度增强、对比度拉伸或灰度变换。
点运算实际上是灰度到灰度的映射过程,设输入图象为A(x,y),输出图象为B(x,y),则点运算可表示为
B(x,y)=f(A(x,y))

Basic点运算

linear brightness relation

N_{x,y}=k*O_{x,y}+l x,y\[1,N]
其中k为增益,l为偏移
<img src="/visual_images/linear_func.jpg" width="600" height="300"/>

锯齿算子sawtooth

y=x \ mod \ n
<img src="/visual_images/sawtooth.jpg" width="250" height="350"/>

其他数学函数

  • logarithm
    <img src="/visual_images/log.jpg" width="600" height="250"/>
  • exponent
    <img src="/visual_images/exp.png" width="600" height="250"/>

直方图操作histogram

直方图正则化normalization

拉伸平移原始直方图
N_{x,y}=\frac {N_{max}-N_{min}}{O_{max}-O_{min}}\times(O_{x,y}-O_{min})+N_{min}
其中N_{min},N_{max}是想要归一化到的范围,如0,255。
<img src="/visual_images/histogram_norm.jpg" width="600" height="400"/>

直方图均衡化equalization

使直方图分布均匀
对于连续值:
<img src="/visual_images/histogram_equalization.jpg" width="650" height="400"/>
对于离散值:
s(i)=\sum_{k=0}^ip(k),i=0,1,...,255
其中s表示累积概率分布。
变换函数g:
g=\begin{cases} 0, & \text {i=0} \\ 255s(i), & \text{i=1,2,...,255} \end{cases}
example:
<img src="/visual_images/he_example.png" width="650" height="300"/>
<img src="/visual_images/he_example2.png" width="600" height="380"/>
<img src="/visual_images/he_example3.png" width="650" height="450"/>
可以看出均衡化增强了对比度,使得表示的级数范围更大了

均衡化和归一化也可以对颜色通道进行的。
<img src="/visual_images/color_histogram_trans.png" width="600" height="300"/>
均衡化与归一化对比:
归一化:线性可逆过程,对比度变化比较缓和soft
均衡化:非线性不可逆变换,对比度变化明显,强烈。

直方图匹配specification

直方图匹配将原图的直方图转变为目标直方图的形式。
<img src="/visual_images/histogram_specification_steps.png" width="650" height="450"/>
步骤是:将两个直方图做均衡化(求累积概率),取最接近的级数匹配,匹配关系就是转换关系。最接近匹配的目的就是让转换后的累积概率近似,从而原始级数概率分布就会相似。
<img src="/visual_images/histogram_specification.png" width="650" height="450"/>

阈值处理Thresholding

阈值处理是给定一个阈值T,让大于T的为255白色,小于T的为0黑色的二值化处理。
<img src="/visual_images/threshold.png" width="600" height="200"/>

自适应阈值处理

  • Otsu's method
    最大化下面的值:
    <img src="/visual_images/ada_threshold.png" width="700" height="400"/>

图像噪声

图像噪声可以分为两类:

  1. 高斯噪声gaussian noise
    来源:传感器噪声,光照不足,高温;电子电路噪声。
    公示表示:
    g(x,y,i)=f(x,y,i)+noise
    其中x,y是位置,i是通道;noise是高斯噪声满足G(\mu,\sigma)
    <img src="/visual_images/gaussian_noise.png" width="500" height="200"/>
  2. 椒盐噪声salt and pepper noise
    来源:信号到数字转换错误,位传输错误。
    salt:指某个像素为255; pepper:某个像素为0; 噪声密度为常数
    <img src="/visual_images/salt_pepper_noise.png" width="530" height="230"/>

组操作

指利用了像素周围的信息。

模版卷积

这个其实就是一个卷积操作

平均算子

当卷积核数值都为为1/n时,称平均算子。
作用是可以减少噪声,但是平均操作会造成图片模糊和细节丢失。
<img src="/visual_images/average_filter.png" width="700" height="400"/>

高斯平均

为了保留更多原始细节,有了高斯平均算子:
<img src="/visual_images/gaussian_averageing.png" width="600" height="400"/>
与平均算子对比:
<img src="/visual_images/averageing_gaussian.png" width="600" height="300"/>
减少噪声对比:

<img src="/visual_images/reduce_noise_comp.png" width="700" height="400"/>

中值滤波

用中值代替。
有个有趣的应用就是找背景:
<img src="/visual_images/median_filter.png" width="700" height="400"/>
相比于模版平均,时空平均,中值能完全得到背景。

mode filter

用最频繁的像素值;
当每个值只有一个时,使用截断中值去逼近mode
truncated median filter:
<img src="/visual_images/truncated_median.png" width="600" height="400"/>
结果:
<img src="/visual_images/truncated_results.png" width="700" height="400"/>

方法对比

  • 平均算子
    减少很多噪声但是图片更模糊了
  • 高斯平均
    相比于平均算子保留了跟多细节,但是优势不明显
  • 中值
    保留了一些噪声但是有清晰的边界
  • 截断中值
    减少噪声,保留了很多细节
    <img src="/visual_images/reduce_comparision.png" width="700" height="400"/>

二值形态变化操作

对二值图像进行膨胀(放大),腐蚀(缩小)操作。

erosion

腐蚀操作:扫描图像的每一个像素,用结构元素(可自定义的,水平线竖线等等)与其覆盖的二值图像做“与”操作:如果都为1,结果图像的该像素为1,否则为0。
<img src="/visual_images/erosion.png" width="600" height="250"/>

dilation

膨胀操作:扫描图像的每一个像素,用结构元素与其覆盖的二值图像做“与”操作:如果都为0,结果图像的该像素为0,否则为1。
<img src="/visual_images/dilation.png" width="600" height="250"/>

opening operator

在腐蚀后加膨胀操作

closing operator

在膨胀后加腐蚀操作
<img src="/visual_images/opening_closing.png" width="700" height="200"/>

作用

  • 膨胀: 最直接的就是对物体形状的扩展,且能连接相近物体,填充物体内空白
  • 腐蚀:缩小形状,看起来细些,做多次后会得到形状线条,比如指纹,提取形态骨架;分离邻近物体;去除小噪声,小点。
  • 开运算:分离邻近物体和平滑边界
  • 闭运算:填充物体内细小空洞,连接邻近物体和平滑边界
    关于操作的代码可以参考文章Matlab DIP(瓦)ch9形态学图像处理

相关文章

  • OpenCV入门

    图像处理的基本操作  在图像处理的过程中,读取图像、显示图像和保存图像是最基本的操作 1. 读取图像 retval...

  • 基本图像操作

    基本图像操作 1.直方图(histograms) 定义 直方图是对图像在某个指标的不同值的数量的统计,如亮度直方图...

  • 图像的基本操作

    图像的点运算 线性点运算定义一像素线性点运算函数,如下所示:对以上函数,取不同参数,会取得不同的效果:若 ,经过运...

  • 着色器图像处理(亮度/对比度/反像)

    基于固定基图像的图像混合操作:针对图像各像素与常量值之间的混合操作 图像的基本属性。首先是亮度,也称灰度,它是大 ...

  • Matlab 简单图像处理

    一、图像处理的基本操作 1.从图形文件读取图像 通过 matlab 自带的 imread 读入图像,函数内为图像的...

  • OpenCV for Android (5)——腐蚀、膨胀、开闭

    1. 形态学操作 形态学操作就是基于形状的一系列图像处理操作。通过将结构元素作用于输入图像来产生输出图像。最基本的...

  • 机器视觉常见库

    图像处理中的常见任务包括显示图像、基本操作(如裁剪、翻转、旋转等)、图像分割、分类和特征提取、图像恢复和图像识别。...

  • Python-Image 基本的图像处理操作

    Python-Image 基本的图像处理操作,有需要的朋友可以参考下。 Python 里面最常用的图像操作库是 I...

  • python Image 模块处理图片

    Python-Image 基本的图像处理操作,有需要的朋友可以参考下。 Python 里面最常用的图像操作库是 I...

  • PHP基础 —— 图形处理

    图像处理 GD和图像处理,不仅可以创建文件,而且可以处理已有图像 创建图像基本步骤 创建图像 所有的操作都需要在此...

网友评论

      本文标题:基本图像操作

      本文链接:https://www.haomeiwen.com/subject/gybslftx.html