当前位置: 首页 > news >正文

数字图像处理——基本运算

一:一些概念

1.1:相邻像素

相邻像素(对于像素p(m,n))

  • 4邻域:N4(p)
  • 对角邻域:ND(p)
  • 8邻域:N8(8)

像素邻接:像素的相邻仅说明了两个像素在位置上的关系,若再加上取值相同或相近,则称两个像素邻接

在这里插入图片描述

1.2:像素距离

距离的度量:对于像素点 p(x,y), q(s,t), z,如果度量D满足以下条件,则称为距离的度量函数

  • 正定性: 𝐷(𝑝, 𝑞) ≥ 0; (𝑖𝑓 𝑝 = 𝑞, 𝐷(𝑝, 𝑞) = 0)
  • 对称性: 𝐷(𝑝, 𝑞) = 𝐷(𝑞, 𝑝)
  • 距离三角不等式: 𝐷(𝑝, 𝑞) ≤ 𝐷(𝑝, 𝑧) + 𝐷(𝑧, 𝑞)

三种常见距离:

  • 欧式距离 (像素点 p(x,y), q(s,t)) : 𝐷𝑒(𝑝, 𝑞) = sqrt((𝑥 − 𝑠)2+(𝑦 − 𝑡)2)
  • D4距离(街区距离):𝐷4(𝑝, 𝑞) = |𝑥 − 𝑠| + |𝑦 − 𝑡|
  • D8距离(棋盘格距离):𝐷8(𝑝, 𝑞) = max(|𝑥 − 𝑠| , |𝑦 − 𝑡|)

在这里插入图片描述

二:算数运算

算术运算是指对两幅或多幅输入图像进行点对点的加、减、乘、除计算而得到输出图像的运算

  • 对应空间位置的像素间运算,element-wise / pixel-wise
  • 在相同大小的图像间进行

在这里插入图片描述

2.1:图像加法

图像加法,以加权融合为例:

  • l_1 + l_2 = S_1
  • 0.6 * l_1 + 0.4 * l_2 = S_2

在这里插入图片描述

2.2:图像减法

图像减法,以一阶导数为例,图像的一阶和二阶导数:不连续函数f(x,y)的导数, 严格来说不算能算作导数, 只是形式上与真正的导数相似. 取Δx=1, 一阶与二阶偏导数分别为:

在这里插入图片描述
在这里插入图片描述

图像加、减法,以图像锐化为例:

  • H = X – blur(X)
  • Y = X +ɑH

在这里插入图片描述

2.3:图像乘法

图像乘法:对应像素相乘,常用于Mask、Attention等操作
在这里插入图片描述

2.4:算术运算应用示例

低照度图像增强(Low Light Image Enhancement)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三:直方图运算

图像直方图(Image Histogram):描述图像的各个灰度级的统计特性,它是图像灰度值的函数,统计图像中各个灰度级出现的次数或频率。其横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数和频率。

直方图运算计算代价较小,且具有图像平移、旋转、缩放不变性等众多优点,广泛地应用于图像处理的各个领域,特别是灰度图像的阈值分割、基于颜色的图像检索以及图像分类。

3.1:灰度直方图

直方图是图像的一种统计表达 ,直方图反映了图像中灰度的分布情况。

直方图并不反映图像的空间信息,只展示具有一定灰度级的像素的数目或频数,通过对图像的直方图进行改变可以改善图像的质量

设图像中某种灰度rk的像素数为nk,n是图像中像素的总数,则灰度级rk所对应的频数为:
在这里插入图片描述

四类图像的直方图特征:
在这里插入图片描述

3.2:直方图均衡化

直方图均衡化(Histogram Equalization)通过某种灰度映射(如非线性拉伸)使原始图像的直方图变换为在整个灰度范围内均匀分布,即灰度的概率密度分布变为常数。可以增加像素灰度值的动态范围,增强图像整体对比度。
在这里插入图片描述

累积分布函数CDF可以把r变换到均衡化s,证明如下:

在这里插入图片描述
在这里插入图片描述

离散情况:累积直方图
在这里插入图片描述
说明:

  • 𝑠𝑘是 k 的单值单增函数
  • 灰度取值范围一致,0 ≤ 𝑠𝑘 ≤ 1
  • 将r的分布转换为s 的均匀分布

在这里插入图片描述

均衡化的缺点

  • 增强效果不易控制,处理的结果总是得到全局均匀化的直方图。
  • 均衡化图像的动态范围扩大,本质上是扩大了量化间隔,但量化级别(灰度级)反而减少了,导致某些图像细节消失。
  • 对于直方图存在高峰的图像,经处理后对比度可能过分增强。
  • 原来灰度值不同的像素经过处理后可能变为相同,从而形成一片灰度值相同的区域,各区域之间有明显的边界,导致出现伪轮廓。

3.3:直方图规定化

直方图规定化(Histogram Matching):也常叫直方图匹配,指变换图像灰度直方图为指定的分布,从而有选择地增强某个灰度范围内的对比度

  • 比均衡化更灵活,可以指定目标分布
  • 能有效地改善图像的整体或局部特征,广泛运用在图像增强处理中
  • 保证不同图像的影调风格的一致性,在处理艺术图像时十分有用

在这里插入图片描述

直方图规定化的步骤,借助直方图均衡变换实现规定的灰度映射:
在这里插入图片描述
在这里插入图片描述

单映射规则SML (Single Mapping Law):依次找到灰度级映射后的单个灰度级,逐个对应。比较直观,但可能产生较大的取整误差。

在这里插入图片描述

组映射规则GML (Group Mapping Law):寻找最接近的对应灰度,中间的灰度级看作一组。映射误差用对应映射间数值的差值的绝对值的和来度量。

在这里插入图片描述
GML映射规则产生的误差小于SML。

SML: |0.44-0.2|+ |0.45-0.6|+|0.11-0.2|=0.48
GML: |0.19-0.2|+ |0.62-0.6|+|0.19-0.2|=0.04

在这里插入图片描述

3.4:直方图运算应用示例

神经风格迁移

  • Image Style Transfer Using Convolutional Neural Networks(使用卷积神经网络的图像风格转换)
    • Gatys 2015: S和O是VGG网络特定层输出的特征;G为计算Gram Matrix
    • 输入噪声,用两个loss的梯度来迭代更新生成图像;Gram矩阵会扩大原本值的差异,突出风格和特点,但是Gram矩阵并非完美,会引起瑕疵。

在这里插入图片描述

基于直方图匹配的神经风格迁移:

  • Stable and Controllable Neural Texture Synthesis and Style Transfer Using Histogram Losses, 2017(使用直方图损失进行稳定可控的神经纹理合成和风格转换)

在这里插入图片描述

  • Stable and Controllable Neural Texture Synthesis and Style Transfer Using Histogram Losses, 2017
    • 使用常规 histogram matching technique 来匹配源纹理图的直方图
    • 直方图匹配loss: O还是VGG输出特征,R为按风格S的直方图匹配操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔空间

相关文章:

  • Cosmos模块化功能链 走向亿级用户的超级Dapp时代
  • 【黑马程序员名师pink老师讲HTML】HTML很容易忘记?有它我不慌的
  • .NetCore项目nginx发布
  • 主流开源OLAP对比分析
  • 二叉搜索树的基本操作 || TreeMap和TreeSet介绍
  • 超详细的数据结构---顺序表的有关教程
  • Exchange Server 2016 安装部署
  • 【C51单片机】中断系统之单一外中断应用
  • 2.2 Linux系统的目录结构与文件类型
  • jedis:使用事务开启watch监控
  • 【趣学算法】第一章 算法之美(上)
  • 以MapBox为核心构建Vue地图组件库教程
  • Web链接测试如何做?
  • 【不是问题的问题】为什么复位中断服务程序里面直接调用的main函数,难道所有程序都在复位中断里面执行的?
  • 【ViT 微调时关于position embedding如何插值(interpolate)的详解】
  • #Java异常处理
  • 《剑指offer》分解让复杂问题更简单
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • Angular6错误 Service: No provider for Renderer2
  • fetch 从初识到应用
  • HTTP--网络协议分层,http历史(二)
  • isset在php5.6-和php7.0+的一些差异
  • js操作时间(持续更新)
  • Python学习之路13-记分
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue数据传递--我有特殊的实现技巧
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 翻译:Hystrix - How To Use
  • 物联网链路协议
  • elasticsearch-head插件安装
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (11)MSP430F5529 定时器B
  • (补)B+树一些思想
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (一)appium-desktop定位元素原理
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)linux下的时间函数使用
  • (转)平衡树
  • (转)详解PHP处理密码的几种方式
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .project文件
  • ??myeclipse+tomcat
  • @AutoConfigurationPackage的使用
  • @Bean有哪些属性
  • [ linux ] linux 命令英文全称及解释
  • [<死锁专题>]
  • [51nod1610]路径计数
  • [Angular] 笔记 6:ngStyle
  • [bzoj1324]Exca王者之剑_最小割
  • [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)