图像处理常用算法介绍

此篇简单回顾下图像处理领域常用到的一些算法,这边只对每个知识点重要的点做一些记录,便于快速的知其形,会其意。

一. SIFT(Scale-Invariant feature transform)特征

重点是了解DOG(Difference of Gaussian)高斯差分图像是如何生成的,以及求取关键点,求取关键点的主方向,并以此主方向来做坐标系,梯度方向和梯度幅值按新的坐标系进行计算,构造一个特征向量描述子。主要可参考如下博客

SIFT局部描述子 - 知乎

https://www.cnblogs.com/Jack-Elvis/p/11297216.html

SIFT算法原理与源码分析

 二. PCA

可参考博主的论文

 这边投影的一些知识点拓展也可以参考之前的博客中第17点

线性代数基础知识-CSDN博客

这里其实就是通过PCA去求新的坐标系的各坐标轴,一个轴可以认为就是一个特征向量。d个特征向量即为d个轴。然后k等同于选取了其中的k个轴,只获取原数据在这k个轴上的投影值组成一个特征向量来表示图像。

也可以参考其它博客

PCA(主成分分析) - 知乎

 【机器学习】降维——PCA(非常详细) - 知乎

 三. SVD

上面最后一个参考博客中也提到了SVD,其左奇异矩阵和右奇异矩阵介绍可见如下帖子

降维算法: 奇异值分解SVD - 知乎

《统计学习方法》之SVD - 知乎

具体计算示例可参考如下博客

强大的矩阵奇异值分解(SVD) - 知乎

 回想之前在校期间,用PCA对图像提取特征时,需要计算AA^{T}, 当是一张2000*2000大小图片时,由于直接将图像拉伸为向量,一个样本将达到400万长的一个维度。假设这边有1000个样本,A的大小将会是100万* 1000, 所以AA^{T}将会100万* 100万大小,Matbalb计算时候直接显示内存不足,当时就转用SVD方法去求解。 我们可以用SVD方法,将A表达为:

A = U\Sigma V^{T} ,那么协方差矩阵

AA^{T} = U\Sigma V^{T} * V\Sigma U^{T} = U\sum ^{2}U^{T} ,转换为了U的计算

【数学和算法】SVD奇异值分解原理、以及在PCA中的运用_svd怎么在pca-CSDN博客

PCA和SVD的联系和区别? - 知乎

如下博客很好的说明了SVD在图像压缩上的一个应用

SVD与图像压缩 - 知乎

四. 矩阵的迹

关于矩阵迹的相关性质 - 知乎

 高等代数|第四章 矩阵--矩阵的迹与相似

五. 牛顿法

涉及到泰勒展开(其实就是在一个点附近,用多项式去无限逼近此函数),下面先回顾下一些基本知识点

泰勒展开百度安全验证

 讲透泰勒公式,让你成为高手! - 知乎

 [计算机数值分析]牛顿法求解方程的根-CSDN博客

 最优化方法复习笔记(三)牛顿法及其收敛性分析 - 知乎

牛顿迭代法(求函数的根)_迭代法函数必须单调-CSDN博客 

牛顿法的优缺点及特征_newton迭代法的优缺点-CSDN博客 

六. 梯度下降算法

 为什么局部下降最快的方向就是梯度的负方向? - 知乎

 最优化方法之梯度下降法和牛顿法_优化问题目标函数的梯度怎么求-CSDN博客

七. EM算法 

EM算法详解 - 知乎

【大道至简】机器学习算法之EM算法(Expectation Maximization Algorithm)详解(附代码)---通俗理解EM算法。-CSDN博客 

八. 几个矩阵的含义

雅可比(Jacobian)矩阵_雅可比矩阵-CSDN博客

Jacobian矩阵和Hessian矩阵 - 知乎

雅克比矩阵的意义 - 知乎

雅可比矩阵几何意义的直观解释及应用-CSDN博客

九. 最小二乘法

​最小二乘法 (Least Squares) - 知乎

 GD&T干货 | 最小二乘法的数学公式详解 - 知乎

十. RANSAC算法 

RANSAC算法_51CTO博客_kmeans聚类算法

RANSAC算法(仅供学习使用)-CSDN博客 

https://www.cnblogs.com/xrwang/archive/2011/03/09/ransac-1.html 

RANSAC算法 - 知乎 

十一. 梯度方向直方图 

一文讲解方向梯度直方图(hog) - 知乎

博主之前相关的论文

后面有时间会再继续概括! 

 

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

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

相关文章

ubuntu离线安装k8s

目录 一、前期准备 二、安装前配置 三、安装docker 四、安装cri-dockerd 五、部署k8s master节点 六、整合kubectl与cri-dockerd 七、网络等插件安装 八、常见问题及解决方法 一、前期准备 ①ubuntu系统 本地已安装ubuntu系统,lsb_release -a命令查看版本信…

2024网络安全学习路线,最全保姆级教程,学完直接拿捏!

关键词: 网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 首先咱们聊聊,学习网络安全方向通常会有哪些问题 前排提示:文末有CSDN独家网络安全资料包! 1、打基础时间太长 学基础花费很长时间,光语言都…

Windows10安装PCL1.14.0及点云配准

一、下载visual studio2022 下载网址:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com) 安装的时候选择"使用C的桌面开发“,同时可以修改文件路径,可以放在D盘。修改文件路径的时候,共享组件、…

Open CASCADE学习|拉伸

目录 1、沿方向拉伸 2、沿路径拉伸 3、变形拉伸 1、沿方向拉伸 #include <Geom_CylindricalSurface.hxx> #include <gp_Ax3.hxx> #include <GeomAPI_Interpolate.hxx> #include <BRepAdaptor_Curve.hxx> #include <BRepBuilderAPI_MakeEdge.hxx&…

追觅发布多款旗舰新品,双机械臂扫地机器人X40领衔登场

2月2日&#xff0c;追觅科技全球首创仿生“双”机械臂新品发布会在苏州举行。会上&#xff0c;追觅科技中国区总裁郭人杰分享了追觅科技全球化发展的业绩成果。郭人杰称&#xff0c;2019-2023年&#xff0c;追觅科技5年复合年增长率超过100%&#xff0c;增速领跑智能清洁行业&a…

LeetCode、746. 使用最小花费爬楼梯【简单,动态规划 线性DP】

文章目录 前言LeetCode、746. 使用最小花费爬楼梯【简单&#xff0c;动态规划 线性DP】题目与分类思路 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术领域。…

C语言——教师信息管理系统

1.教师信息添加.h void InputTeacher() {int c 0;system("cls");printf("\t\t*************************************************\n");printf("\t\t******** 欢迎来到教师信息添加系统 **********\n");printf("\t\t***************…

python的进程,线程、协程

python进程的实现 #coding:utf-8 from multiprocessing import Process import timedef run(name):print(%s is running % name)time.sleep(3)print(%s finished his run % name)if __name__ __main__:p Process(targetrun, args(XWenXiang,)) # 创建一个进程对象p.start()…

Luogu P3388 【模板】割点(割顶) 题解 Tarjan/割点

题目链接&#xff1a;Luogu P3388 【模板】割点&#xff08;割顶&#xff09; 题目描述&#xff1a; 给定一张无向图&#xff0c;输出割点个数以及割点编号。 割点的定义&#xff1a;删除一个点及其连接的边后&#xff0c;若能使图的联通块数量增加&#xff0c;那么被删除的这个…

怎么在bash shell中操作复杂json对象

怎么在bash shell中操作复杂json对象 在bash shell中操作复杂JSON对象&#xff0c;jq可以帮助我们在bash环境下轻松地处理这类数据&#xff0c;本文将详细介绍如何使用jq在bash中操作复杂的JSON对象。 jq是一个轻量级且灵活的命令行JSON处理器&#xff0c;它允许你以非常高效的…

学习数据结构和算法的第3天

常数循环的复杂度 计算Func4的时间复杂度 voidFunc4(int N) { int count 0; for (int k 0; k < 100; k) { count; } printf("%d\n", count); }O&#xff08;1&#xff09; 不是代表算法运行一次&#xff0c;是常数次 strchar的时间复杂度 #include<stdi…

k8s版本升级到1.24.x

每个版本升级都有对应的文档,以1.23升级到1.24为例。 1.24.6版本后,k8s不再依赖于docker。需要先切换到使用containerd。 可以查看栏目的k8s安装文档。 确定要升级到哪个版本 使用操作系统的包管理器找到最新的补丁版本 Kubernetes 1.24: yum list --showduplicates kub…

Redis(十二)Bigkey

文章目录 游标案例生成100万测试数据key生产上限制keys */flushdb/flushall等危险命令不使用keys *&#xff1a;scan Biigkey案例多大算大发现bigkey渐进式删除生产调优示例问题 游标案例 生成100万测试数据key shell: for((i1;i<100*10000;i)); do echo "set k$i v…

Nicn的刷题日常之调整奇数偶数顺序

目录 1.题目描述 2.解题思路 3.解题 1.题目描述 输入一个整数数组&#xff0c;实现一个函数&#xff0c; 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分&#xff0c; 所有偶数位于数组的后半部分。 2.解题思路 1. 给定两个下标left和right&#xff…

编程笔记 html5cssjs 073 JavaScript Object数据类型

编程笔记 html5&css&js 073 JavaScript Object数据类型 一、创建 Object二、Object 类型的属性与方法三、示例四、参考小结 JavaScript 中的 Object 数据类型是该语言中最复杂也最灵活的数据类型之一&#xff0c;它是其他所有内置对象和用户自定义对象的基础。在 JavaS…

网课:机器翻译——牛客(题解)

题目描述 小晨的电脑上安装了一个机器翻译软件&#xff0c;他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单&#xff0c;它只是从头到尾&#xff0c;依次将每个英文单词用对应的中文含义来替换。对于每个英文单词&#xff0c;软件会先在内存中查找这个单词的中文含…

手拉手spring-boot-starter-mail实现发送QQ邮箱

技术栈 springbootmybatis-plusmysql 软件 版本 IDEA IntelliJ IDEA 2022.2.1 JDK 17 Spring Boot 3.1 mybatis-plus 3.5 spring-boot-starter-mail Springboot版本 spring boot对mail的封装支持非常好&#xff0c;方便&#xff0c;几行代码就可以把邮件集成进来…

5 个 JavaScript 代码优化技巧

在本文中&#xff0c;将介绍 5 个代码优化的技巧&#xff0c;有助于编写更高效、更优雅的代码。这些技巧包括使用扩展运算符简化代码到使用 async/await 处理异步代码等。 1. 使用扩展运算符解构对象和数组 扩展运算符由三个点 ... 表示&#xff0c;可用于对象和数组的解构。…

调用Gensim库训练Word2Vec模型

一、前期工作&#xff1a; 1. 安装Gensim库 pip install gensim 2.安装chardet库 pip install chardet 3. 对原始语料分词 选择《人民的名义》的小说原文作为语料&#xff0c;先采用jieba进行分词 import jieba import jieba.analyse import chardet jieba.suggest_freq…

Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(三)

原文&#xff1a;Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第六章&#xff1a;决策树 决策树是多功能的机器学习算法&#xff0c;可以执行分类和回归任务&#xff0c;甚至多输出任务。它们…