回忆:二维梯度

梯度 = 图像 I(x,y)的偏导数向量 = [dI(x,y)/dx , dI(x,y)/dy]
梯度向量场表示最陡上升的方向和坡度(当考虑图像像素值为一个平面/高度图时)

数值导数

有限前向差分

有限后向差分

有限中心差分:更精准

例子:空间图像梯度

注意:从现在开始,我们将去掉常数因子1/2。我们在后面去除以它。

更具体地说




线性滤波器

一般流程:形成新图像,其像素是原始像素值的加权和,在每个点使用相同的权重集合
性质:输出是输入的一个线性函数;输出是输入的平移不变函数(即输入图像向左移动两个像素,输出也向左移动两个像素)
例子:平均滤波—邻域中像素的平均值
例子:高斯滤波—邻域中像素的加权平均值
例子:找一个导数—邻域中像素的加权平均值
注意:“线性滤波器”中的“线性”表示相邻像素值的线性组合

图像滤波

根据局部领域内像素的某些函数改变图像中的像素

线性滤波

最简单:线性滤波,通过领域内像素值的线性组合去替代每一个像素
线性组合的模块称为“卷积核”
将其视为权加权和 (核指定权重):
100+50+30+40+5*.5+10+10+11+7.5 = 7
当然,我们不想只在一个像素上执行这个操作,而是希望在整个图像上运行这个核”

卷积(二维)

给定一个核(模板)f和图像h,卷积 f * h 定义为

1)注意h(x, y)邻域的奇怪索引。结果就是 f 好像在与 h 组合之前顺时针旋转了180度一样
2)如果 f 有180度的对称性也没关系
3)加入没有关系,那就使用**互相关(cross correlation,图像矩阵和卷积核直接按位点乘,没有旋转180度后再做点乘)**代替

卷积例子


实际问题:边界处理

问题:我们如何处理核不能完全覆盖图像边界的那些像素?

不同的边界处理方法指定了不同的方法来定义图像以外像素的值
最简单的方法之一是补零,也就是我们在前面的例子中默认使用的

实际问题:边界处理

其他方法:
复制—每个图像以外的像素用图像中离它最近的像素值代替

实际问题:边界处理

其他方法:
反射—在边界处反射像素值(好像有一面小镜子)

实际问题:边界处理

其他方法:
环绕—当离开图像的右边框时,将环绕到左边框。类似地,当离开图像底部时,会在顶部重新输入。基本上,图像是一个大甜甜圈(或圆环)。

Matlab中的卷积

可以用conv和conv2,但可以用更新的版本:Imfilter(image,template{,option1,option2,…})
边界选项:常值,对称,复制,圆形
输出尺寸选项:和图像一样,或者全尺寸 (包括当mask在图像外的时候计算的部分值)
Corr或者conv选项:卷积旋转模板(我们之前所讨论的那样)。相关性没有进行旋转。
尝试在命令行中输入“help imfilter”了解更多细节

卷积的性质

交换律:f∗g=g∗ff * g = g * ff∗g=g∗f
结合律:(f∗g)∗h=f∗(g∗f)(f * g) * h = f * (g * f)(f∗g)∗h=f∗(g∗f)
分配律:(f∗g)∗h=f∗h+g∗h(f * g) * h = f * h + g * h(f∗g)∗h=f∗h+g∗h
线性:(af∗bg)∗h=af∗h+bg∗h(a f * b g) * h = a f * h + b g * h(af∗bg)∗h=af∗h+bg∗h
平移不变性:f(x+t)∗h=(f∗h)(x+t)f(x+t) * h = (f * h)(x+t)f(x+t)∗h=(f∗h)(x+t)
微分规则:

线性滤波

F (2m+1)x(2m+1) mask
例如

回到梯度…

有限差分滤波器

用卷积核计算有限差分
垂直边:
卷积:
水平边:
卷积:

例子:空间图像梯度

【计算机视觉】Lecture 3:线性算子相关推荐

  1. [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 7笔记

    内容列表 Lecture 7 Convolutional Neural Networks 卷积神经网络历史 卷积神经网络具体结构 卷积层 池化层 全连接层 神经网络架构发展 LeNet AlexNet ...

  2. [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 1笔记

    前言:目前做深度学习也有一段时间了,系统的知识也学了很多,但是大多数都是自己在网上所获得的零散的知识,最近看了李飞飞的斯坦福网上公开课,觉得可以好好的巩固一下基础,对每个Lecture做一下笔记,De ...

  3. [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 5笔记

    内容列表 Lecture 5 Training Neural Networks,Part I 神经网络的历史 训练神经网络 激活函数 数据预处理 权重初始化 批量归一化 检查学习过程 超参数优化 小结 ...

  4. 【计算机视觉】Lecture 11:LoG和DoG滤波算子

    今天的主题 高斯拉普拉斯 (LoG) 滤波算子 用于寻找边缘 也有助于寻找斑点! 使用高斯差分 (DoG) 来近似 回忆:一阶导数滤波器 输入图像灰度的急剧变化对应于输入信号一阶导数的"峰或 ...

  5. 计算机视觉中本质矩阵的概念,【计算机视觉】Lecture 19:本质矩阵和基础矩阵...

    对极几何 左边 极点:相机1所看到的相机2的位置. 右边 极点:相机2所看到的相机1的位置 对极几何 对应点位于共轭极线上 对极几何 给定一幅图像中的一个点,我们如何确定在第二幅图像中要搜索的对应极线 ...

  6. 【计算机视觉】Lecture 26: 颜色和光线

    光线和颜色物理学 • 光是电磁辐射 – 不同的颜色对应不同的波长 λ – 振幅规定每个波长的强度 • 可见光:波长为 400-700nm 范围 什么是颜色? • 物体没有"颜色" ...

  7. 【计算机视觉】Lecture 8:立体视觉介绍

    立体视觉 通过两个或多个相机同时拍摄的图像,推导出深度信息 基本投影模型 为什么立体视觉? 本质的歧义: 射线OP上的任何点都会产生像素点p 为什么立体视觉? 第二个相机能够解决这个歧义,能够通过三角 ...

  8. 李飞飞计算机视觉经典课程上线,今年都有哪些新内容?

    [AI 科技大本营按]斯坦福的 CS231n 是深度学习和计算机视觉领域的经典课程之一.今年 4 月,由李飞飞主讲的 CS231n Spring 2018 又如约而至,截至目前,2018 年的课程视频 ...

  9. 机器学习和计算机视觉有关的数学

    1.线性代数(Linear Algebra): 我想国内的大学生都会学过这门课程,但是,未必每一位老师都能贯彻它的精要.这门学科对于Learning是必备的基础,对它的透彻掌握是必不可少的.我在科大一 ...

  10. 计算机视觉,图像处理 经典代码paper整理(很全很强大!)

    转自:Jia-Bin Huang 同学收集了很多计算机视觉方面的代码 ,链接如下: https://netfiles.uiuc.edu/jbhuang1/www/resources/vision/in ...

最新文章

  1. python常见模块命令(os/sys/platform)
  2. linux2.6内核分析,linux2.6内核分析——LRU链表
  3. PyCharm集成Anaconda3环境下安装 腾讯优图报错 ERROR: Could not install packages due to an EnvironmentError
  4. php if 单行,php – 单行if语句或if语句没有大括号坏习惯?
  5. Android TextView多行文本滚动实现
  6. 栈的复习(加减乘除表达式求值)
  7. 准备进入股市炒股,资金10万,各位能否给点建议?
  8. 深度学习神经网络的预测间隔
  9. 修改word默认模板(Normal.dotm)
  10. 开源软件安全检查工具
  11. MP3/4维修全攻略
  12. 用循环写出九九乘法表格。
  13. PCB 生产过程中对铜面氧化的防范手段
  14. 详细介绍 Yolov5 转 ONNX模型 + 使用ONNX Runtime 的 Python 部署(包含官方文档的介绍)
  15. 浅浅总结一下HTML吧
  16. C语言学习笔记-P1 初识C语言(2)
  17. 词袋模型基本原理——DBoW3
  18. 基于EAST和Tesseract的文本检测与识别
  19. CTFHub SSRF总结
  20. 分支循环语句练习和友尽模拟器的综合应用

热门文章

  1. ENSP之STP协议基本配置教程
  2. Linux 下查看内存问题
  3. java 多语言_JAVA实现多语言
  4. 凭什么?80后合伙人“叫板Excel”
  5. Oracle执行计划分析及实际生产案例解析
  6. 圣思园Spring精髓-Spring的底层设计思想
  7. 树育发统系物生微归递递归微生物系统发育树
  8. python3实现灰度图的双三次插值算法缩放
  9. sgx使用记录(Windows开发环境搭建以及sgx的简单介绍)1
  10. 梦成真——一个普通学校计算机系学生的出国梦