comp 9517 Computer Vision week2

图像处理

  • 1.空间域操作(Spatial domain operation)
    • 1.1 点(Point operation)
    • 1.2 邻域(Neighbourhood operation)
      • 空间滤波(spatial filtering)
      • 修复边界问题(fixing the border problem)
      • 通过卷积进行空间滤波(Spatial filtering by convolution)
      • 卷积特性:
      • 滤波器
      • 强度梯度向量(intensity gradient vector)
  • 2.变换域操作(Transform domain operation)

1.空间域操作(Spatial domain operation)

1.1 点(Point operation)

操作单个像素(individual pixels)
该部分引用大佬: Computer Vision笔记01:图像处理

1.2 邻域(Neighbourhood operation)

操作多个像素(multiple pixels)

空间滤波(spatial filtering)

对像素组进行空间滤波(spatial filtering):使用输入图像中一个像素的小邻域(a small neighbourhood)内的灰度值,为输出图像中的该像素生成一个新的灰度值。
邻域通常是以(𝑥,𝑦)为中心的权重矩阵(weight matrix) 或方形子图像(rectangular subimage),成为过滤器(filter)或核(kernel)
通过卷积进行空间滤波
输入图像𝑓(𝑥,𝑦) ,输出图像ℎ(𝑥,𝑦)
o ( x , y ) = ∑ i = − n n ∑ j = − m m f ( x − i , y − j ) h ( i , j ) o(x, y)=\sum_{i=-n}^n \sum_{j=-m}^m f(x-i, y-j) h(i, j) o(x,y)=i=nnj=mmf(xi,yj)h(i,j)
为什么要反转核?
因为核函数就是卷积的脉冲响应

修复边界问题(fixing the border problem)

填充(Padding):将所有附加像素设置为一个常量(零)值
硬切换(hard transition)会产生边界伪影(border artifacts)(需要窗口化)
在这里插入图片描述
夹紧(Clamping):无限(indefinite)重复所有的边界像素值
更好的边界行为,但具有任意性(arbitrary)
在这里插入图片描述
包装(Wrapping):从对侧复制像素值
隐含(implicitly)使用傅里叶变换(Fourier transform)
在这里插入图片描述
镜像(Mirroring):
平滑(smooth)、对称(symmetric)、周期性(periodic)、无边界伪影(no boundary)
在这里插入图片描述

通过卷积进行空间滤波(Spatial filtering by convolution)

输入输出特性:卷积是一种线性的(linear),移位不变(shift-invariant)的操作
线性:
f 1 ( x , y ) ⇒ g 1 ( x , y ) f 2 ( x , y ) ⇒ g 2 ( x , y ) 则 a f 1 ( x , y ) + a f 2 ( x , y ) ⇒ a g 1 ( x , y ) + a g 2 ( x , y ) f_1\left( x,y \right) \Rightarrow g_1\left( x,y \right) \ f_2\left( x,y \right) \Rightarrow g_2\left( x,y \right) 则 af_1\left( x,y \right) +af_2\left( x,y \right) \Rightarrow ag_1\left( x,y \right) +ag_2\left( x,y \right) f1(x,y)g1(x,y) f2(x,y)g2(x,y)af1(x,y)+af2(x,y)ag1(x,y)+ag2(x,y)
移位不变:
f ( x , y ) ⇒ g ( x , y ) 则 f ( x − Δ x , y − Δ y ) ⇒ g ( x − Δ x , y − ζ y ) f\left( x,y \right) \Rightarrow g\left( x,y \right) \ 则f\left( x-\varDelta x,y-\varDelta y \right) \Rightarrow g\left( x-\varDelta x,y-\zeta y \right) f(x,y)g(x,y) f(xΔx,yΔy)g(xΔx,yζy)

卷积特性:

交换性(Communitativity): f 1 ∗ f 2 = f 2 ∗ f 1 f_1 * f_2=f_2 * f_1 f1f2=f2f1
结合性(Associativity): f 1 ∗ ( f 2 ∗ f 3 ) = ( f 1 ∗ f 2 ) ∗ f 3 f_1 *\left(f_2 * f_3\right)=\left(f_1 * f_2\right) * f_3 f1(f2f3)=(f1f2)f3
分配律(Distributivity): f 1 ∗ ( f 2 + f 3 ) = f 1 ∗ f 2 + f 1 ∗ f 3 f_1 *\left(f_2+f_3\right)=f_1 * f_2+f_1 * f_3 f1(f2+f3)=f1f2+f1f3
乘法因子(Multiplicativity): a ⋅ ( f 1 ∗ f 2 ) = ( a ⋅ f 1 ) ∗ f 2 a\cdot \left( f_1\ast f_2 \right) =\left( a\cdot f_1 \right) \ast f_2 a(f1f2)=(af1)f2
求导(Derivation): ( f 1 ∗ f 2 ) ′ = f 1 ′ ∗ f 2 = f 1 ∗ f 2 ′ \left( f_1\ast f_2 \right) '=f'_1\ast f_2=f_1\ast f'_2 (f1f2)=f1f2=f1f2
定理(Theorem): f 1 ∗ f 2 ⟷ f 1 ^ ⋅ f 2 ^ f_1\ast f_2\longleftrightarrow \widehat{f_1}\cdot \widehat{f_2} f1f2f1 f2

滤波器

最简单的平滑滤波(simplest smoothing filter)
计算邻域N中|N|个像素的平均像素值
g ( x , y ) = 1 ∣ N ∣ ∑ ∑ ( i , j ) ϵ N f ( x + i , y + j ) g\left( x,y \right) =\frac{1}{|N|}\sum{\sum{_{\left( i,j \right) \epsilon N}f\left( x+i,y+j \right)}} g(x,y)=N1(i,j)ϵNf(x+i,y+j)

  • 常用于图像模糊(image blurring)降噪(noise reduction)
  • 减少由于图像采集干扰(disturbances in image acquisition)而引起的波动(fluctuation)
  • 邻域平均也会模糊图像中的物体边缘(blur the object edges)
  • 可以用加权平均(weighted averaging) 来赋予某些像素更多的重要性
    也成为统一过滤器(uniform filter),因为它隐式(implicitly)的使用统一内核

高斯滤波(Gaussian filter)
最重要的基本图像滤波器之一
g σ ( x , y ) = 1 2 π σ 2 e − x 2 + y 2 2 σ 2 g_{\sigma}\left( x,y \right) =\frac{1}{2\pi \sigma ^2}e^{-\frac{x^2+y^2}{2\sigma ^2}} gσ(x,y)=2πσ21e2σ2x2+y2
高斯滤波器具有许多优良特性

  • 是唯一可分离(separable)且圆对称(circularly symmetric) 的滤波器
  • 空间和频域(spatial and frequency domain)具有最优联合定位(optimal joint localization)
  • 高斯函数的傅里叶变换(Fourier transform) 也是高斯函数
  • 任何低通滤波器的n倍卷积(n-fold convolution) 都会收敛(converges to)到高斯
  • 无线光滑(infinitely smooth) 所以可任意区分
  • 它可自然扩展 σ \sigma σ,并支持一致的尺度空间理论 (consistent scale-space theory)

中值滤波(Median filter)
是一种基于排序和排名像素值的顺序统计滤波器,在邻域𝑁中计算包含𝑁个像素的中值,把数字图像或数字序列中某一点的值用该点的一个邻域中各点值的中值代替

  • 消除了孤立的强度尖峰( isolated intensity spikes)(椒盐图像噪声)
  • 邻域通常大小为 n×n像素,n=3,5,7……
  • 消除面积小于 n 2 2 \frac{n^2}{2} 2n2的像素簇
  • 不是卷积滤波,而是非线性滤波(nonlinear filter)

高斯VS中值
保留(retain)小物体,高斯滤波最佳
去除(remove)小物体,中值滤波最佳
在这里插入图片描述

非锐化掩蔽(unsharp masking)技术进行锐化
用原始图像减去高斯模糊后的图像。这相当于在原图中只保留了被高斯滤波去掉的部分——即高频细节(图像中的快速变化部分,比如边缘、纹理、细小的细节。这些区域通常对应图像中亮度变化剧烈的部分)
在这里插入图片描述

  • 高斯滤波: 使用高斯滤波器对输入图像进行模糊处理,去除高频细节(例如边缘)。
  • 高频细节提取: 通过将模糊后的图像从原始图像中减去,提取出高频细节(如边缘和突变区域)。
  • 加权相加: 将提取出的高频细节乘以一个系数 𝑎,然后再加回到原始图像中,以增强边缘并锐化图像。
    输出图像: 右侧的结果图像是原始图像的一个锐化版本猫毛更清晰

池化(Pooing)
将过滤(filtering)和下采样(downsampling)结合在一个操作中,有最大/最小/中值/平均池化,使图像更少并减少计算量,在深度卷积神经网络中很流行
在这里插入图片描述
导数滤波

  • 空间导数对强度变化,如 (such as object edges)有响应
  • 在数字图像中,他们使用有限差分(finite difference)来近似
  • 有多种不同方式进行有限差分(take finite differences)

一阶导数:用前后相邻像素的差值表示变化
如:Prewitt and Sobel
在这里插入图片描述
二阶导数:可以用于检测图像中变化更快的区域
如:Laplacean过滤
在这里插入图片描述
高斯导数滤波(Gaussian derivative filters)
高斯导数滤波结合了高斯滤波(用于平滑)和导数滤波。它的基本思想是先用高斯滤波器对图像进行平滑处理,减少噪声影响,然后再计算导数。
在这里插入图片描述

Prewitt and Sobel算子
Prewitt算子 水平核,垂直核在这里插入图片描述
Sobel算子
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

拉普拉斯过滤
近似二阶导数的和
在这里插入图片描述

强度梯度向量(intensity gradient vector)

梯度矢量(Gradient vector 2D)
指向强度增加最快的方向,与光线(isophote)正交(orthogonal)在这里插入图片描述
梯度幅度(Gradient magnitude 2D)
表示梯度矢量的长度,与局部强度变化的大小(magnitude of the local intensity change)
在这里插入图片描述
梯度幅度的边缘检测
在这里插入图片描述
拉普拉斯的边缘检测

在这里插入图片描述

高斯一阶导数和二阶导数
在这里插入图片描述

傅里叶领域中的微分
微分抑制低频,但放大高频在这里插入图片描述
拉普拉斯锐化
将拉普拉斯变换结果加回到原始图像中,通常会乘以一个增强因子(如负数的某个倍数),以强调边缘,此处k=-1
在这里插入图片描述

2.变换域操作(Transform domain operation)

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Java 缓存机制与缓存失效

在分布式系统中,缓存 是提高系统性能、减轻数据库压力的常用技术。合理的缓存策略不仅能提升响应速度,还能节省资源。不过,缓存并不是万能的,缓存失效 是开发中必须考虑的问题。如果处理不好,可能会导致数据不一致或性…

使用库函数点亮一个LED灯

软件设计 STM32Gpio的介绍 如果想让LED0点亮,那么R12就要是高电平,LED0就要是低电平,也就是PF9就是低电平 F407系统主频要工作在168MHZ F103的话是工作在72mhz F429的话就180MHZ 接着我们就要使能Gpio的时钟,使能之后对GPIO相关…

YOLOV8输出预测框的坐标信息

结果:(前提是对应类别的yolov8模型已经训练好) 具体实现: 在ultralytics\utils\plotting.py里面 CtrlF搜索box_label 再次照片的最后一行输入: # 左上角cv2.putText(self.im, f"({p1[0]}, {p1[1]})", (p1…

19.初始C语言指针

初始C语言指针 1.指针的认识2.指针变量的引入3.指针变量的类型4.指针的应用场景15.指针的应用场景26.作业 1.指针的认识 指针 地址 //int a 10; //类型 变量名 内存地址 值 1.变量名直接访问2.通过地址访问&:取地址运算符* :将地址内的值读取…

Nacos未授权下载配置信息

0x01 漏洞描述: Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos存在未授权文件下载,攻击者在不登录情况下可未授权下载系统配置文件。 攻击者利用该漏洞可未授权获取到系统配置文件,如数据库和Redis连接地址…

【Delphi】创建应用程序和 LiveBindings示例(FMX)

一、创建一个FMX程序 界面上放置上如下3个控件:TProgressBar1, TArcDial1,TTrackBar1。 二、打开LiveBindings Designer 设计器 三、在 LiveBindings Designer 中,您的绑定图只包含对象,您可以将它们连接起来。 四、在设计器中,在…

openFrameworks_如何使用ofxXmlSettings和ofxGui来创建识别界面

效果图: 代码及详解 1.添加两个插件的头文件: #include "ofxGui.h" #include "ofxXmlSettings/src/ofxXmlSettings.h" 2.添加GUI部分,然后在.h声明右边的openframeworks的UI部分,包括面板ofxPanel,按钮ofx…

Tomcat 漏洞复现

1、CVE-2017-12615 1、环境开启 2、首页抓包,修改为 PUT 方式提交 Tomcat允许适用put方法上传任意文件类型,但不允许isp后缀文件上传,因此需要配合 windows的解析漏洞 3、访问上传的jsp文件 4、使用工具进行连接 2、后台弱⼝令部署war包 1…

简单了解一下SurfaceView

0 背景 最近好几次面试被问到SurfaceView的特点了,都没回答出来。 SurfaceView和TextureView也是Compose这样的声明式ui唯二实现不了控件;因为他们就不是View,而是Android提供的和Surface相关的显示系统 。 特此简单了解一下。 1 应用场景…

【Godot4.3】点数据简易表示法和Point2D

概述 在构造多点路径时我们会用到PackedVector2Array,并使用Vector2()来构造点。在手动创建多点数据时,这种写法其实很难看,有大量重复的Vector2(),比如下面这样: var points [Vector2(100,100),Vector2(200,200),V…

[Python]二、Python基础数据科学库(1)

F:\BaiduNetdiskDownload\2023人工智能开发学习路线图\2、机器学习核心技术\1、零基础快速入门机器学习 1.机器学习概述 1.1 人工智能概述 1.1.1 人工智能与机器学习、深度学习 1956年-达特茅斯会议-人工智能的起点 人工智能和机器学习、深度学习的关系: 1. 机器学习…

软考(9.22)

1 在浏览器的地址栏中输入xxxyftp.abc.can.cn,在该URL中( )是要访问的主机名。 A.xxxyftp B.abc C.can D.cn 协议://主机名.域名.域名后缀或IP地址(:端口号)/目录/文件名。 本题xxxyftp是主机名,选择A选项。 2 假设磁盘块与缓冲区大小相同,…

Django基础-创建新项目,各文件作用

学习Django的前置知识: python基本语法:需要掌握Python中的变量、循环、条件判断、函数等基本概念。面向对象编程(OOP):Django的核心架构基于面向对象编程,许多功能(如模型和视图)依…

【无人机设计与控制】 基于matlab的蚁群算法优化无人机uav巡检

摘要 本文使用蚁群算法(ACO)优化无人机(UAV)巡检路径。无人机巡检任务要求高效覆盖特定区域,以最小化能源消耗和时间。本研究提出的算法通过仿生蚁群算法优化巡检路径,在全局搜索和局部搜索中平衡探索与开…

文档布局内容检测系统源码分享

文档布局内容检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

银河麒麟高级服务器操作系统V10外接硬盘挂载指南

银河麒麟高级服务器操作系统V10外接硬盘挂载指南 1、临时挂载外接硬盘2、永久挂载外接硬盘3、总结 💖The Begin💖点点关注,收藏不迷路💖 在使用银河麒麟高级服务器操作系统V10时,您可能希望将外接硬盘(如sd…

django应用JWT(JSON Web Token)实战

文章目录 一、什么是JWT二、为什么使用JWT三、在django项目中如何应用JWT1、安装djangorestframework-simplejwt库:2、在settings.py中配置JWT认证:3、在urls.py中配置JWT的获取和刷新路由: 四、JWT如何使用1、调用生成JWT的接口获取JWT2、客…

C/C++内存管理 ——

目录 五、C/C内存管理 1、C/C内存分布 2、C语言中动态内存管理方式:malloc/calloc/realloc/free 3、C内存管理方式 1.new/delete操作内置类型 2.new和delete操作自定义类型 4、operator new与operator delete函数 5、new和delete的实现原理 1.内置类…

十六 未来信息综合技术(考点篇)试题

SaaS:软件即服务,PaaS:平台即服务,LaaS:基础设施即服务。 SaaS:偏向于提供各种软件接口来提供相关的服务;PaaS:偏向于吧一些基础的功能整合成一个平台,把整个平台或部分…

【人工智能】Linux系统Mamba安装流程

在编译安装 mamba 之前,你需要确保已安装正常的PyTorch环境。 # 安装必要的系统依赖 sudo apt update sudo apt install build-essential # 安装mamba依赖 pip install packaging wheel # 克隆仓库 git clone https://github.com/Dao-AILab/causal-conv1d.git git …