算法
文章平均质量分 85
JinSu_
这个作者很懒,什么都没留下…
展开
-
【算法】PatchMatch立体匹配算法_原理解析
PatchMatchStereo是Michael Bleyer等在2011年发表于British Machine Vision Conference(BMVC)上的一篇双目立体匹配算法文章,非常经典,倾斜支持窗的思路打破传统固定窗口式局部匹配的思维桎梏,在Middlebury数据集上获得非常好的匹配效果,一段时间内高居排行榜第一名。更难能可贵的是,它和SGM一样数据泛化能力出色,对大部分数据都能取得不错的结果,所以也被很多商业软件所实现,是真正能够产品化的算法。原创 2023-03-02 14:32:18 · 4471 阅读 · 1 评论 -
【算法】FLANN中kd树构建和查询的简明分析
K-最近邻(K-Nearest Neighbour, KNN)算法是一种基本分类与回归方法,属于监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本。算法的输入输出如下:输入:输出:在特征匹配的应用中,我们通常找到最接近2个最近邻点(k=2),并在这两个关键点中,若最近的距离除以次近的距离小于指定阈值ratio,则接受这一对匹配点。Low推荐ratio的取值为0.8,但Low对大量存在尺度、旋转和亮度变化的两幅图片进行匹配,实验结果表明ratio取值在0. 4原创 2022-06-21 10:32:44 · 5374 阅读 · 0 评论 -
【算法】OpenCV-SGBM算法及源码的简明分析
OpenCV-SGBM的源码在/modules/calib3d/src/stereosgbm.cpp中,博主用的opencv版本为4.5.2BT代价就是计算两个像素之间的相似度(或者,代价cost)原创 2022-04-13 12:36:35 · 21568 阅读 · 4 评论 -
【算法】SGM半全局匹配+多线程&SIMD256优化
SGM半全局匹配(Semi-Global Matching)参考论文:H Hirschmüller. Stereo Processing by Semiglobal Matching and Mutual Information[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2007, 30.参考博文:立体视觉入门指南(7):立体匹配_闲情逸致~-CSDN博客算法的前提原创 2022-02-21 15:44:45 · 5768 阅读 · 2 评论 -
【算法】多视图几何三维重建+增量式SfM
多视图几何三维重建的基本原理:从两个或者多个视点观察同一景物,已获得在多个不同的视角下对景物的多张感知图像,运用三角测量的基本原理计算图像像素间位置偏差,获得景物的三维深度信息,这一个过程与人类观察外面的世界的过程是一样的。SfM:SfM的全称为Structure from Motion,即通过相机的移动来确定目标的空间和几何关系,是三维重建的一种常见方法。它只需要普通的RGB摄像头,因此成本更低廉,且受环境约束较小,在室内和室外均能使用。但是,SfM背后需要复杂的理论和算法做支持,在原创 2022-02-04 13:37:15 · 12582 阅读 · 3 评论 -
【算法】移动立方体实现+vtk导出表面
参考:Marching Cubes算法 - 计算机图形学_曾经的大胖的博客-CSDN博客参考:Polygonising a scalar field (Marching Cubes)下面是源码:导入自己的nii文件就可以生成表面和表面法向量nii文件就类似于下图:感兴趣区域的值为1,背景区域为0Vectors.h#ifndef VECTORS_H#define VECTORS_H// File Name: Vectors.h// Last Modifi..原创 2022-01-26 15:37:10 · 16168 阅读 · 0 评论 -
【算法】多尺度自适应高斯滤波+steger中心线提取+细化
steger可以提取固定宽度的血管中心线,需要根据不同宽度调整高斯滤波的sigma,血管越粗sigma越大,血管约细,sigma越小。但是常见的血管图像中存在多条血管,不同血管(或者同一血管的不同位置)的宽度不一样,这会导致steger算法提取的中心线断裂!博主因此提出了多尺度自适应高斯滤波。原创 2021-03-19 17:07:50 · 5993 阅读 · 8 评论 -
【算法】有效的字母异位词
给定两个字符串s和t,编写一个函数来判断t是否是s的一个字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母,字符串等长。题目分析:根据题目的意思,字母异位词是指由相同的字母按照不同的顺序组成的单词,根据此含义,那么这两个单词的长度也一定相等,所以我们就可以先将两个单词按照字母的大小进行排序...原创 2020-10-15 15:33:06 · 209 阅读 · 0 评论 -
【算法】顺时针旋转矩阵
有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。测试样例:[[1,2,3],[4,5,6],[7,8,9]],3返回:[[7,4,1],[8,5,2],[9,6,3]]这是一道发现规律的题目,规律很简单import java.util.*;public class Rotate { public int[][] rotateMatrix(int[][] A, ..原创 2020-10-15 15:20:20 · 1083 阅读 · 0 评论 -
【算法】魔法世界中的传送门
一座魔法城市,城市中的各个地点由正整数1到N标记。为了快捷穿梭于不同地点,法师们在每个地点都建造了传送门。这些门都有一个特点,就是只能传送到自己所在地点标记数的倍数的地点。例如,地点10的传送门可以传送到地点20、地点30、地点40等,但不能传送到地点2、地点3、地点5等。如需到达不能传送的地点,则只能走路过去。使用传送门时瞬间完成的,不需要耗费时间。走路耗费的时间则为两个地点标记值之差的绝对值。例如,从地点7走到地点5,需要的时间为2。法师学徒安东尼需要去城市的不同地点修炼,聪明的你能帮助他合理规原创 2020-09-15 10:57:40 · 393 阅读 · 1 评论 -
【算法】数据压缩
1.输入位纯英文(含大小写,共52个)构成的字符串S,长度位L。2.假设Si是S中的第i个字母,Sj是S中的第j个字母。如果同时满足下面的三个条件,将Si~Sj的j-i+1个字母构成的序列Sij压缩表示位‘0’+个数+字母的形式。其中个数也是用字母表示,a-Z表示4~55。a)Si到Sj之间的所有字母均相同。(含Si,Sj在内,区分大小写)b)Sij的长度小于4时,不压缩c)Sij的长度大于55时,做分段压缩处理,每段长度不超过55。举例:输入:“abbbbbbAAAdcdddd”原创 2020-09-15 09:09:58 · 359 阅读 · 0 评论 -
【算法】扁平化嵌套列表迭代器
https://blog.csdn.net/zolewit/article/details/96169230stack<NestedInteger*> st;建立堆存放每一个元素迭代器初始化: NestedIterator(vector<NestedInteger> &nestedList) { for(int i=nestedList.size()-1;i>=0;--i) st.push(&.原创 2020-08-30 20:52:54 · 413 阅读 · 0 评论 -
【算法】链表的归并排序
https://blog.csdn.net/weixin_39688949/article/details/78472246复杂度分析:设置两个指针,一个步长为1, 一个步长为2,当快指针到达尾结点时,慢指针指向中间结点,时间复杂度为O(N);平分为左链表L1和右链表L2,递归分裂,直到链表为空或者只有一个结点;将链表L2的每个结点插入到链表L1中,时间复杂度为O(m+n),m、n分别为两条链表的长度。画出递归树,可知总的时间复杂度为O(N * lgN)。# include &l原创 2020-08-30 20:39:43 · 210 阅读 · 0 评论 -
【算法】递归反转链表
https://mp.weixin.qq.com/s?__biz=MzAxODQxMDM0Mw==&mid=2247484467&idx=1&sn=beb3ae89993b812eeaa6bbdeda63c494&chksm=9bd7fa3baca0732dc3f9ae9202ecaf5c925b4048514eeca6ac81bc340930a82fc62bb67681fa&scene=21#wechat_redirect// 单链表节点的结构public原创 2020-08-30 18:44:36 · 738 阅读 · 0 评论 -
【算法】三门问题
首先,计算概率有下面两个最简单的原则:原则一、计算概率一定要有一个参照系,即「样本空间」,也就是随机事件可能出现的所有结果。事件 A 发生的概率 = A 包含的样本点 / 样本空间的样本总数。原则二、计算概率一定要明白,概率是一个连续的整体,也就是所谓的条件概率,不可以把连续的概率分割开。三门问题:游戏参与者面对三扇门,其中两扇门后面是山羊,一扇门后面是跑车。参与者只要随便选一扇门,门后面的东西就归他(跑车的价值当然更大)。但是主持人决定帮一下参与者:在他选择之后,先不急着打开这扇门,.原创 2020-08-30 16:15:37 · 1680 阅读 · 1 评论 -
【算法】阶乘相关
https://mp.weixin.qq.com/s/qtdSnjSBZdP64YhpQIy0HA1、输入一个非负整数n,请你计算阶乘n!的结果末尾有几个 0。比如说输入n = 5,算法返回 1,因为5! = 120,末尾有一个 0。函数签名如下:inttrailingZeroes(intn);首先,两个数相乘结果末尾有 0,一定是因为两个数中有因子 2 和 5,因为 10 = 2 x 5。也就是说,问题转化为:n!最多可以分解出多少个因子 2 和 5?比如说n = 25,..原创 2020-08-30 13:35:46 · 1794 阅读 · 0 评论 -
【算法】最小编辑距离
https://mp.weixin.qq.com/s?__biz=MzAxODQxMDM0Mw==&mid=2247484484&idx=1&sn=74594297022c84952162a68b7f739133&chksm=9bd7fa4caca0735a1364dd13901311ecd6ec4913c8db05a1ff6cae8f069627eebe8d651bbeb1&scene=21#wechat_redirect解决两个字符串的动态规划问题,一般都是用原创 2020-08-27 22:00:34 · 200 阅读 · 0 评论 -
【算法】最长回文子串
https://mp.weixin.qq.com/s?__biz=MzAxODQxMDM0Mw==&mid=2247484471&idx=1&sn=7c26d04a1f035770920d31377a1ebd42&chksm=9bd7fa3faca07329189e9e8b51e1a665166946b66b8e8978299ba96d5f2c0d3eafa7db08b681&scene=21#wechat_redirect如何使用双指针。寻找回文串的问题核心原创 2020-08-27 20:51:25 · 85 阅读 · 0 评论 -
【算法】最长回文子序列
https://mp.weixin.qq.com/s/zNai1pzXHeB2tQE6AdOXTAdp 数组的含义如下:在子数组array[i..j]中,我们要求的子序列(最长回文子序列)的长度为dp[i][j]。具体来说,如果我们想求dp[i][j],假设你知道了子问题dp[i+1][j-1]的结果(s[i+1..j-1]中最长回文子序列的长度),你是否能想办法算出dp[i][j]的值(s[i..j]中,最长回文子序列的长度)呢?明确一下 base case,如果只...原创 2020-08-27 20:32:00 · 194 阅读 · 0 评论 -
【算法】二分查找
https://mp.weixin.qq.com/s?__biz=MzAxODQxMDM0Mw==&mid=2247484507&idx=1&sn=36b8808fb8fac0e1906493347d3c96e6&source=41#wechat_redirectleft=0,right=n-1,则while(left<=right)对应搜索区间为[left,right]那么该循环的终止条件是,left==right+1,等价于,[righ.原创 2020-08-27 17:59:13 · 134 阅读 · 0 评论 -
【算法】最长递增子序列+最长递增子串
https://mp.weixin.qq.com/s?__biz=MzAxODQxMDM0Mw==&mid=2247484498&idx=1&sn=df58ef249c457dd50ea632f7c2e6e761&chksm=9bd7fa5aaca0734c29bcf7979146359f63f521e3060c2acbf57a4992c887aeebe2a9e4bd8a89&scene=21#wechat_redirect动态规划的核心设计思想是数学归纳法。原创 2020-08-27 16:53:09 · 521 阅读 · 0 评论 -
【算法】最长公共子序列+二维动态规划
做个记录~[经典面试题:最长公共子序列]https://mp.weixin.qq.com/s?__biz=MzAxODQxMDM0Mw==&mid=2247484486&idx=1&sn=0bdcb94c6390307ea32427757ec0072c&chksm=9bd7fa4eaca073583623cdb93b05dc9e1d0757b25697bb40b29b3e450124e929ff1a8eaac50f&scene=21#wechat_redirect原创 2020-08-27 16:23:34 · 165 阅读 · 0 评论 -
【算法】正则表达式匹配
单纯做个记录~https://mp.weixin.qq.com/s/rnaFK05IcFWvNN1ppNf2ug#include<iostream>#include<string>#include<map>using namespace std;map<string, bool> memo;/* 计算 p[j..] 是否匹配 s[i..] */bool dp(string& s, int i, string& p,原创 2020-08-27 15:26:49 · 992 阅读 · 1 评论 -
【算法】有向图最大环数+有向图找环+C实例
有向图如下要求找出最大环中节点的个数,比如0-1-2-3构成一个环,0-1构成一个环,其中0-1-2-3是最大环,环数为4visit数组表示当前点的状态0 表示还没访问过1 表示正在访问-1 表示访问结束递归遍历的实现#include<iostream>#include<vector>using namespace std;vector<vector<int>> map;//邻接矩阵vector<...原创 2020-08-18 18:10:49 · 3771 阅读 · 4 评论 -
【排序算法】插入+选择+交换+归并+基数+C代码实例
*基数排序中,n代表待排序的元素个数,d个关键码(最高数位,比如12最大的话,为2),关键码的取值范围为r(0~9,为10)一、插入排序1.直接插入插入排序强调的是“插入的动作”即是说,要插入到第一个比key元素小的元素前面,也就是a[i + 1] = key;在这之前,利用while(i >= 0 && a[i] > key)寻找那个比key元素小的元素,并且,对于不小于key元素的元素会往前挪动一位时间复杂度:O(n^2),因为2层循环嘛空间...原创 2020-07-17 13:19:30 · 499 阅读 · 0 评论 -
【傅里叶滤波】傅里叶(Fourier)带通滤波+代码实例测试
本文的工作如下:一.介绍傅里叶滤波的实现原理二.介绍傅里叶带通滤波器实现图像滤波的原理三.通过代码实例进一步加深理解1. 从“几何”的角度来看待傅里叶级数我们都知道周期函数傅里叶级数公式(复数形式),如下所示: ...原创 2018-08-28 10:30:46 · 13348 阅读 · 3 评论 -
【深度学习】卷积神经网络+反向传播推导+爱因斯坦求和约定+numpy_python实现
参考博客:卷积神经网络反向传播理论推导https://blog.csdn.net/Hearthougan/article/details/72910223【python】如何用 numpy 实现https://blog.csdn.net/qq_36393962/article/details/99354969目录一、最开始的说明(很重要)二、激活层三、全连接层四、...原创 2019-10-01 11:01:07 · 1384 阅读 · 2 评论 -
【图论】匹配问题:Hungarian匈牙利算法研究+代码实例测试
参考博文:[1]https://blog.csdn.net/u011837761/article/details/52058703(Hungarian Algorithm)[2]https://blog.csdn.net/dark_scope/article/details/8880547(趣写算法系列之--匈牙利算法)[3]https://blog.csdn.net/seattledrea...原创 2018-08-11 11:20:20 · 2381 阅读 · 0 评论