SLAM学习入门--传统图像处理

文章目录

  • 传统图像处理
    • 颜色空间
    • 高斯滤波
    • 腐蚀和膨胀
    • 开运算和闭运算
    • 如何求一张图片的均值?
    • 线性插值
    • 双线性插值
    • 仿射变换
    • 透视变换
    • 常见的边缘检测算子
    • Sobel 算法
    • Canny 算法
    • Hough 变换原理(直线和圆检测)
    • 找轮廓(findCountours)
    • 单应性(homography)原理
    • 二维高斯滤波能否分解成一维操作
    • 图像去噪算法
    • HOG 算法
    • 高斯滤波
    • 均值滤波
    • 中值滤波
    • 双边滤波
    • 图像中的低频信息和高频信息
    • 引导滤波
    • 直方图均衡化
    • 相机标定方法与流程
    • 分水岭算法
    • RANSAC 算法
    • Bundle Adjustment(BA)算法
    • L-M 算法
    • SIFT 算法
      • SIFT 特征为什么能实现尺度不变性?
      • SIFT特征是如何保持旋转不变性的?
    • SURF 算法
    • ORB 算法
    • LSD 算法
    • LBP 算法
    • KCF 算法
    • TODO

传统图像处理

颜色空间

  • RGB
  • HSI
  • CMYK
  • YUV

OpenCV 读取图像存储的顺序为什么是 BGR,而不是 RGB?

  • TODO

高斯滤波

先引入两个问题。
1.图像为什么要滤波?
答:a.消除图像在数字化过程中产生或者混入的噪声。
b.提取图片对象的特征作为图像识别的特征模式。
2.滤波器该如何去理解?
答:滤波器可以想象成一个包含加权系数的窗口或者说一个镜片,当使用滤波器去平滑处理图像的时候,就是把通过这个窗口或者镜片去看这个图像。

滤波器分为很多种,有方框滤波、均值滤波、高斯滤波等。

**高斯滤波是一种线性平滑滤波,适用于消除高斯噪声。**所以在讲高斯滤波之前,先解释一下什么是高斯噪声?

1 高斯噪声

首先,噪声在图像当中常表现为一引起较强视觉效果的孤立像素点或像素块。简单来说,噪声的出现会给图像带来干扰,让图像变得不清楚。
高斯噪声就是它的概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。高斯白噪声的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。

高斯滤波器是根据高斯函数的形状来选择权值的线性平滑滤波器
所以接下来再讲解一下高斯函数和高斯核。

2 高斯函数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注:σ的大小决定了高斯函数的宽度。

3 高斯核

理论上,高斯分布在所有定义域上都有非负值,这就需要一个无限大的卷积核。实际上,仅需要取均值周围3倍标准差内的值,以外部份直接去掉即可。
高斯滤波的重要两步就是先找到高斯模板然后再进行卷积,模板(mask在查阅中有的地方也称作掩膜或者是高斯核)。所以这个时候需要知道它怎么来?又怎么用?
举个栗子:
假定中心点的坐标是(0,0),那么取距离它最近的8个点坐标,为了计算,需要设定σ的值。假定σ=1.5,则模糊半径为1的高斯模板就算如下

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个时候我们我们还要确保这九个点加起来为1(这个是高斯模板的特性),这9个点的权重总和等于0.4787147,因此上面9个值还要分别除以0.4787147,得到最终的高斯模板。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4 高斯滤波计算

有了高斯模板,那么高斯滤波的计算便顺风顺水了。
举个栗子:假设现有9个像素点,灰度值(0-255)的高斯滤波计算如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

参考来源:(https://blog.csdn.net/nima1994/article/details/79776802)

将这9个值加起来,就是中心点的高斯滤波的值。
对所有点重复这个过程,就得到了高斯模糊后的图像。

5 高斯滤波步骤

综上可以总结一下步骤:

(1)移动相关核的中心元素,使它位于输入图像待处理像素的正上方
(2)将输入图像的像素值作为权重,乘以相关核
(3)将上面各步得到的结果相加做为输出
简单来说就是根据高斯分布得到高斯模板然后做卷积相加的一个过程。

参考资料

  • 简单易懂的高斯滤波
  • 图像滤波之高斯滤波介绍

腐蚀和膨胀

  • TODO

开运算和闭运算

  • TODO

如何求一张图片的均值?

  • TODO

线性插值

  • TODO

双线性插值

  • TODO

仿射变换

  • TODO

透视变换

  • TODO

常见的边缘检测算子

  • TODO

Sobel 算法

  • TODO

Canny 算法

  • TODO

Hough 变换原理(直线和圆检测)

  • TODO

找轮廓(findCountours)

  • TODO

单应性(homography)原理

TODO

二维高斯滤波能否分解成一维操作

答:可以分解。

二维高斯滤波分解为两次一维高斯滤波,高斯二维公式可以推导为X轴与Y轴上的一维高斯公式。

即使用一维高斯核先对图像逐行滤波,再对中间结果逐列滤波。

参考资料

  • 快速高斯滤波、高斯模糊、高斯平滑(二维卷积分步为一维卷积)

图像去噪算法

  • TODO

HOG 算法

  • TODO

高斯滤波

  • TODO

均值滤波

  • TODO

中值滤波

  • TODO

双边滤波

  • TODO

图像中的低频信息和高频信息

图像频率:图像中灰度变化剧烈程度的指标

  • 低频信息(低频分量)表示图像中灰度值变化缓慢的区域,对应着图像中大块平坦的区域。
  • 高频信息(高频分量)表示图像中灰度值变化剧烈的区域,对应着图像的边缘(轮廓)、噪声以及细节部分。

低频分量:主要对整幅图像强度的综合度量

高频分量:主要对图像边缘和轮廓的度量

从傅里叶变换的角度,将图像从灰度分布转化为频率分布。

参考资料

  • 理解图像中的低频分量和高频分量

引导滤波

参考资料

  • 【拜小白opencv】33-平滑处理6——引导滤波/导向滤波(Guided Filter)

直方图均衡化

  • TODO

相机标定方法与流程

  • TODO

分水岭算法

  • TODO

RANSAC 算法

  • TODO

Bundle Adjustment(BA)算法

  • TODO

L-M 算法

  • TODO

SIFT 算法

  • TODO

SIFT 特征为什么能实现尺度不变性?

  • TODO

SIFT特征是如何保持旋转不变性的?

  • TODO

SURF 算法

  • TODO

ORB 算法

  • TODO

LSD 算法

  • TODO

LBP 算法

  • TODO

KCF 算法

  • TODO

TODO

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

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

相关文章

机器学习(一) -- 概述

系列文章目录 机器学习(一) -- 概述 机器学习(二) -- 数据预处理 未完待续…… 目录 系列文章目录 前言 一、机器学习定义(是什么) 二、机器学习的应用(能做什么) 三、***机器…

pygame学习(一)——pygame库的导包、初始化、窗口的设置、打印文字

导语 pygame是一个跨平台Python库(pygame news),专门用来开发游戏。pygame主要为开发、设计2D电子游戏而生,提供图像模块(image)、声音模块(mixer)、输入/输出(鼠标、键盘、显示屏)…

报错大全(未完待续)

springboot Could not find artifact org.springframework.boot:spring-boot-maven-plugin 报错环境:昨天的springboot项目的pom文件正常,今天再打开就会有些依赖爆红 解决步骤: 去maven的仓库里找你下载的依赖文件,路径是你的…

rime中州韵 easyEnglish输入法

根据前面的几个自定义配置的练手,想必大家已经熟悉了所谓的 程序文件夹,用户文件夹,custom.yam 文档这几个概念了。在接下来的自定义配置讲述中,将默认大家是懂得所做的修改应该在哪个文件中进行的,讲述的速度将会有所加快。 今天…

行人重识别优化:Pose-Guided Feature Alignment for Occluded Person Re-Identification

文章记录了ICCV2019的一篇优化遮挡行人重识别论文的知识点:Pose-Guided Feature Alignment for Occluded Person Re-Identification 论文地址: https://yu-wu.net/pdf/ICCV2019_Occluded-reID.pdf Partial Feature Branch分支: PCB结构,将…

005、数据类型

1. 关于数据类型 Rust中,每个值都有其特定的数据类型,Rust会根据数据的类型来决定如何处理它们。 Rust是一门静态类型语言,它在编译程序的过程中就需要知道所有变量的具体类型。在大部分情况下,编译器可以根据我们如何绑定、使用变…

Apache SSI 远程命令执行漏洞

一、环境搭建 二、访问upload.php 三、写shell <!--#exec cmd"id" --> 四、访问 如图所示&#xff0c;即getshell成功&#xff01;​

Windows磁盘空间占用分析工具-WizTree

文章目录 WizTree作用WizTree树状分析图WizTree特点获取网址 WizTree作用 平时我们电脑用久了&#xff0c;产生很多文件&#xff0c;导致盘符空间不足&#xff0c;但是不知道那些文件占用比较多&#xff0c;这就需要磁盘空间分析工具-WizTree来分析文件占用情况 WizTree树状分…

Vue3-30-路由-嵌套路由的基本使用

什么是嵌套路由 嵌套路由 &#xff1a;就是一个组件内部还希望展示其他的组件&#xff0c;使用嵌套的方式实现页面组件的渲染。 就像 根组件 通过路由渲染 普通组件一样&#xff0c;嵌套路由也是一样的道理。 嵌套路由的相关关键配置 1、<router-view> 标签 声明 被嵌套组…

图像分割实战-系列教程2:Unet系列算法(Unet、Unet++、Unet+++、网络架构、损失计算方法)

图像分割实战-系列教程 总目录 语义分割与实例分割概述 Unet系列算法 1、Unet网络 1.1 概述 整体结构&#xff1a;概述就是编码解码过程简单但是很实用&#xff0c;应用广起初是做医学方向&#xff0c;现在也是 虽然用的不是很多&#xff0c;在16年特别火&#xff0c;在医学…

【头歌实训】PySpark Streaming 入门

文章目录 第1关&#xff1a;SparkStreaming 基础 与 套接字流任务描述相关知识Spark Streaming 简介Python 与 Spark StreamingPython Spark Streaming APISpark Streaming 初体验&#xff08;套接字流&#xff09; 编程要求测试说明答案代码 第2关&#xff1a;文件流任务描述相…

JavaScript 工具库 | PrefixFree给CSS自动添加浏览器前缀

新版的CSS拥有多个新属性&#xff0c;而标准有没有统一&#xff0c;有的浏览器厂商为了吸引更多的开发者和用户&#xff0c;已经加入了最新的CSS属性支持&#xff0c;这其中包含了很多炫酷的功能&#xff0c;但是我们在使用的时候&#xff0c;不得不在属性前面添加这些浏览器的…