- 博客(73)
- 资源 (1)
- 收藏
- 关注

原创 matlab双目标定(详细过程)
双目相机标定主要是为了获得摄像头的内参(f,1/dx,1/dy,cx,cy)、畸变参数(k1,k2,k3,p1,p1)和外参(R,t),用于接下来的双目校正和深度图生成。具体内容参照:https://blog.csdn.net/qq_38236355/article/details/88933839具体标定步骤如下:一、获得棋盘格图像大多数双目标定都是用棋盘格进行标定,如下所示:这里有一...
2019-04-13 12:26:03
54263
90

原创 机器学习之推荐系统
一、什么是推荐系统?我们每天都在有意识无意识接触推荐系统,比如:一种数学定义为:设C为全体用户集合;设S为全部商品/推荐内容集合;设u是评判把si推荐给ci的好坏评判函数;推荐是对于c∈C,找到s∈S,使得u最大,即部分场景下是Top N的推荐,即不止推荐一个si,把多个感兴趣的si做排序推荐给用户。...
2019-04-10 11:31:51
3443
22
原创 最长公共子序列和最长公共子串——C++
一、给定两个字符串S1和S2,求两个字符串的最长公共子序列的长度。输入样例ABCDAEBD输出样例3解释S1和S2的最长公共子序列为ABD,长度为3思路动态规划LCS(m,n)表示S1[0…m]和S2[0…n]的最长公共子序列的长度S1[m] == S2[n]: LCS(m, n) = 1 + LCS(m - 1, n - 1);S1[m] != S2[n]: LCS(m, n) = max(LCS(m - 1, n), LCS(m, n - 1))。#inc
2020-10-06 17:26:42
1252
原创 滴滴笔试毕业旅行——回溯法(dfs)
题目:题目描述:小滴正在筹划他的毕业旅行。他打算去找他的外国网友们,首先第一站是法国巴黎,但是去巴黎的路线有很多,交通工具也有很多可供选择。现在有一个结点数为n,边的条数为m的无向图表示小滴到巴黎的所有路线。其中小滴的家为结点s,巴黎为结点e,小滴出发时间为start,请问小滴最早什么时候能到达巴黎?输入描述单组输入,数字间有空格隔开。第一行两个整数:结点数n,边数m(n<=1000,m<=10000)。第二行到第m+1行每行各有三个整数:结点u,结点v,需要的时间ti
2020-09-14 17:53:26
487
原创 浪潮笔试摆石头——C++
沙滩按照线型摆放着n个大小不一样的球形石头,已知第i 个石头的半径为n,且不存在两个石头有相同的半径。为了使石头的摆放更加美观,现要求摆放的石头的半径从左往右一次递减。因此,需要对一些石头进行移动,每次操作可以选择一个石头,并把它放在剩下n- 1个石头在最左边或最右边。问最少需要操作多少次才能将这n个石头的半径变成升序?样例输入:54 1 2 5 3样例输出:2思路:实则题目就等于求出最长升序子字符串,但因为题目加了限制条件:每次可选择一块石头,并把它放在剩下n-1块石头的最左边或最右边。所以
2020-09-04 11:13:25
883
原创 快速排序——C语言实现
一、排序算法的基本分类:插入排序类:直接插入排序--------(改进)-------->希尔排序选择排序类:简单选择排序--------(改进)-------->堆排序交换排序类:冒泡排序--------(改进)-------->快速排序二、快速排序算法基本思想:利用分治法的思想,在序列中任选一个记录作为基准(由自己设定),以此基准将当前无序序列划分为左、右两个较小的...
2020-04-20 22:32:38
705
原创 归并排序——C语言实现
归并排序是利用归并的思想实现的排序方法。它的原理是假设初始化序列中有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1。然后两两归并,得到(n/2 + n% 2)个长度为2或1的有序子序列;再两两归并,…,如此重复,直到得到一个长度为n的有序序列为止,这种排序方法称为2路归并排序。一般用的归并排序就是2路归并排序。过程如下图所示:归并排序可以由递归实现,也可以由迭代实现。一、归并...
2020-04-20 11:29:02
439
原创 堆排序——C++实现
堆排序算法的步骤:例如大顶堆1、首先将要排序的数组构造成一个大顶堆,数组本身可以看作是一个完全二叉树的顺序存储结构,构建大顶堆是一个从下至上进行筛选的过程,从最后一个非终端结点(N/2)开始(当数组元素是从下标1开始存储的,最后一个非终端结点的下标就是N/2)。如果发现左右子结点的值大于父结点,则将两者互换,对每一个非终端结点筛选完成后就形成了一个大顶堆。2、取出堆首元素(此时为最大的元素)...
2020-04-18 16:28:06
343
原创 二叉排序树(二叉搜索树,二叉查找树)详细代码实现
//二叉排序数(二叉搜索树,二叉查找树)#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>using namespace std;#define end 32767 // 定义结束标志//结点结构typedef struct BiTNode{ int data; struct BiTNode *lchild, *...
2020-04-13 18:05:31
1375
原创 马踏棋盘(骑士周游问题)——回溯法
如图,在8*8国际象棋棋盘中,马的走法有八种。问题随便规定棋盘上的一点(如(2,0)),马开始走,由此点开始,走遍棋盘上的其他63个格子的路径,求此路径。思路用回溯法,一条路走下去,碰到死路就回头走,用到递归(类似于图的深度遍历);设计一个nextxy()函数,用来判断下面的八个点哪一个能走;print函数,输出位置;递归函数TracelChessBoard(),用tag来作为标...
2020-04-09 20:24:59
964
原创 双向链表 C语言实现
有头结点的双向链表如下图所示://双向不循环链表,有头结点#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<iostream>using namespace std;typedef int el...
2020-03-19 17:28:47
259
原创 STL函数对象(仿函数)与函数适配器
1、函数对象(仿函数)函数对象是c++中一种行为类似函数的对象,对它可以像调用函数一样使用。函数对象是泛化的函数,是重载了“()”运算符的类的对象。主要作用是作为STL算法的参数,为算法提供更细化的操作。使用STL的函数对象,需要包含头文件 <functional>。例如一个比较大小的仿函数:template<typename T> struct comp{...
2020-03-12 19:43:15
262
原创 归纳c++类访问权限问题(private、protected、public)
C++类成员(成员数据和成员函数)的访问权限主要有三种,public、private和protected。总体来说权限public>protected>private。1、private成员
2020-03-02 23:44:16
1742
原创 C语言中的位操作
运算符含义描述<<左移将一个数的各二进制位全部左移N位,高位舍弃,低位补0。>>右移将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0。&按位与如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。l按位或两个相应的二进制位中只要有一个为1,该位的结果值为1,否则为0。~按...
2020-02-26 13:01:21
197
原创 C和C++中函数使用的不同点
一、返回值C中:如果函数未指定返回值类型,则默认为intc++中:如果一个函数没有返回值,返回值类型必须指定为void二、参数列表C中:如果函数没有指定参数列表,则默认可以接受任意多个参数C++中:有严格的类型检测,没有参数列表的函数默认为void,不接受任意参数三、缺省参数(即给参数一个默认值)C:不支持C++:支持(如果没有指定实参则使用缺省值,有则使用指定实参)1.默认实参...
2020-02-26 11:46:25
365
原创 C语言不同数据类型的混合运算
在c语言中,数据类型级别由低到高为(由存储长度决定):例如:int a;a = 'A' + 1.6;1、在运算过程中,如果参与运算的数据类型不同时,数据将由低类型转化为高类型,即’A’由char类型转换为double类型;(存储长度较短的转换为存储长度较长的,且不丢失精度)2、在赋值运算时,如果赋值号两边的数据类型不同,赋值号右边的类型将转换为左边的类型。如果右边的数据类型长度比左边...
2020-02-26 11:38:59
4883
原创 原码、反码、补码的相互转换
首先,正数的原码,反码,补码都是相同的。所以,这里讨论负数的原码,反码,补码的相互转化问题。1、负数原码和反码的相互转化负数原码转化为反码:符号位不变,数值位按位取反。如:原码 1100 0010反码 1011 1101负数反码转化为原码:符号位不变,数值位按位取反。如:反码 1011 1101原码 1100 00102、负数反码和补码的相互转化负数反码转化为补码:末尾...
2020-02-23 20:03:29
5508
转载 C语言中printf输出问题,和a++,++a的区别
转自 https://blog.csdn.net/seino_m/article/details/79121527
2020-02-18 18:28:37
1322
原创 哈希表的创建、插入与查找——C语言简单实现
小甲鱼数据结构课程的改良版://散列表(哈希表)的创建、初始化、插入与查找#include<stdlib.h>#include<iostream>using namespace std;#define HASHSIZE 13#define NULLKEY -32456 //哈希表初始化的值//定义哈希表结构typedef struct{ in...
2020-02-17 17:02:17
6733
原创 C语言—字符串与字符数组,字符串数组与字符串指针的区别
字符串与字符数组字符串一定是一个char的数组,但char的数组未必是字符串。——以字符’\0’结尾的char数组就是一个字符串,但如果char数组没有以’\0’结尾,那么就不是一个字符串,只是普通字符数组,所以字符串是一种特殊的char数组。两者的区别:字符串:1、字符串赋初值用双引号引起来;2、以隐含的空字符\0结束,占用字节数+1,注意:1字节/字母,2字节/汉字;3、字符串可以...
2020-02-17 16:55:44
3555
2
原创 OPenCV imread()函数第二个参数详解
在OpenCV官方文档中imread()函数的原型如下:Mat imread(const string& filename, int flags = 1);第一个参数filename是我们需要载入图片的路径名。至于第二个参数,表示的是加载的图像是什么类型,可以看到它自带的默认值为1。至于具体有多少种取值,各个取值代表什么类型,我网上找了好多资料都不尽相同。经过我在vs下亲自验证,总结...
2020-02-03 17:19:18
3964
原创 OpenCV程序main函数参数argc和argv的含义
在刚刚接触到Opencv时,我们常常会在相关的示例程序当中见到argc和argv这两个参数,下面给大家解释一下argc和argv的含义。argc和argv中的arg指的是"参数"。其中,argc为整数,用来统计运行程序时送给main函数的命令行参数的个数(个人理解是主函数中字符串的个数);argv加上与[ ],成为argv[ ],表示字符串数组,用来存放指向字符串参数的指针数组,每个元素指向一个...
2020-02-02 20:45:38
972
转载 计算机视觉:相机成像原理:世界坐标系、相机坐标系、图像坐标系、像素坐标系之间的转换
转自链接:https://blog.csdn.net/chentravelling/article/details/53558096
2019-11-27 14:55:20
324
原创 ubuntu系统安装完nvidia显卡驱动后黑屏,不能进入系统
我之前安装了系统里建议安装的nvidia-380显卡驱动,为了安装更高版本的CUDA,我将nvidia显卡驱动升级到了430,但是重启电脑进入Ubuntu系统时黑屏,进不去系统界面,网上试了很多方法都没有。最后找到了一个解决的方法(亲测有用):1、重启后在系统选择界面上选第二个——ubuntu 高级选项2、进去以后选择一个括号里面带recovery mode的选项3、然后它自动黑屏出现...
2019-11-15 16:10:15
29967
27
原创 Linux系统终于可以安装正版的QQ了
Linux QQ 最新版悄悄上架了,Linux版的QQ可谓是"十年磨一剑"啊!那就让我们看看最新版QQ都有哪些功能?下载安装下载地址:https://im.qq.com/linuxqq/download.html我使用的是Ubuntu 16.04系统,所以选择x64的shell下载安装。安装时可能出现权限不够的情况,解决办法如下:瞬间就安装成功了!登录界面很大的缺点就是...
2019-11-06 21:22:30
14737
3
转载 ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type
转自链接:https://blog.csdn.net/qq_34544129/article/details/819464941、问题描述ubuntu系统中安装好anaconda后,又继而安装了ROS,并通过命令pip install opencv-python安装opencv的情况下,此时安装的opencv-python包是存放在anaconda下的,而在使用如下python语句:i...
2019-09-28 17:35:46
350
原创 基于邻接表的图遍历方式(深度优先+广度优先)—C语言
深度优先遍历: 类似与树的前序遍历。从图中的某个顶点v出发,访问此顶点,然后从v的未被访问到的邻接点进行遍历,直到图中所有和v有路径相通的顶点都被访问到(注:优先访问外层节点,访问到无新顶点时,会进行回退,访问未被访问过的分支顶点)。广度优先遍历: 类似于树的层序遍历。从图中的某个顶点w出发,让顶点w入队,然后顶点w再出队,并让所有和顶点w相连的顶点入队,然后再出队一个顶点t,并让所有和t相连但...
2019-09-25 20:30:13
7568
原创 基于邻接矩阵的图遍历方式(深度优先+广度优先)—C语言
深度优先遍历: 类似与树的前序遍历。从图中的某个顶点v出发,访问此顶点,然后从v的未被访问到的邻接点进行遍历,直到图中所有和v有路径相通的顶点都被访问到(注:优先访问外层节点,访问到无新顶点时,会进行回退,访问未被访问过的分支顶点)。广度优先遍历: 类似于树的层序遍历。从图中的某个顶点w出发,让顶点w入队,然后顶点w再出队,并让所有和顶点w相连的顶点入队,然后再出队一个顶点t,并让所有和t相连但...
2019-09-25 20:24:05
23562
6
原创 图的邻接表存储—C语言
邻接表对应的,我们得到如下的结构:我们以无向图为例:写出相应的邻接矩阵:程序实现://图的邻接表方式存储—需要顶点表和边表。//顶点表包括整型/字符型结构的元素(顶点自身的值)和边表结构类型的指针;//边表包括整型/字符型结构的元素(顶点下标或权值)和本身结构体类型的指针;#define _CRT_SECURE_NO_WARNINGS#include<stdio.h...
2019-09-23 20:34:37
2022
原创 图的邻接矩阵存储—C语言
代码实现://图的邻接矩阵存储结构—用两个数组来表示图,一个一维数组存储图中的顶点信息,一个二维数组(称为邻接数组)存储图中的边或弧的信息。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <iostream>#define MAX_VERTI...
2019-09-23 15:07:33
2691
1
原创 线索二叉树—C语言实现
线索二叉树的定义如下:https://www.jianshu.com/p/3965a6e424f5程序实现://线索二叉树#define _CRT_SECURE_NO_WARNINGS#include <stdlib.h>#include <stdio.h>typedef char ElemType;typedef struct BITNODE //二叉树...
2019-09-19 16:20:53
528
原创 二叉树链—C语言实现
二叉树的具体定义如下:https://www.jianshu.com/p/bf73c8d50dc2代码实现://二叉树链—二叉树的链表描述#define _CRT_SECURE_NO_WARNINGS#include <stdlib.h>#include <stdio.h>typedef char ElemType;typedef struct BITNO...
2019-09-19 16:14:06
374
原创 队列的顺序存储结构——C实现
队列的顺序存储结构——数组实现;如果每次删除一个队列元素时,都需要把剩余元素左移一个位置,则时间复杂度会增加为O(n);如果每次删除一个队列元素,只把队首加1,时间复杂度会减少为O(1),但无法用到队首之前的空间;对于队列的顺序存储结构,一般采用循环队列,把数组视为一个环,把数组的两端连接。可以同时解决上述两个问题;但为了避免无法判断队列是空还是满,队列不能插满。代码实现:#defin...
2019-09-14 16:48:02
591
原创 队列的链式存储结构——C实现
队列的链式存储结构。队列常用链表来实现,简称为链队列。本次设计的链队列有头结点,并且队首指向头结点,队尾指向链尾结点。队列是先进先出的线性表,在队尾那一端插入元素,在队首那一端删除元素。c语言代码:#define _CRT_SECURE_NO_WARNINGS#include<stdlib.h>#include<stdio.h>typedef char El...
2019-09-14 14:38:45
369
原创 逆波兰计算器——完整版C实现
1、什么是逆波兰表达式?其定义为:https://baike.baidu.com/item/%E9%80%86%E6%B3%A2%E5%85%B0%E8%A1%A8%E8%BE%BE%E5%BC%8F/9841727?fr=aladdin逆波兰表达式又称为后缀表达式,这是计算机喜欢的输入形式。2、逆波兰计算器实现逆波兰计算器要分为两个步骤:(1)、将算数表达式(中缀表达式)转换为逆波兰...
2019-09-11 17:54:20
2538
2
原创 栈的链式存储结构——C语言
链式存储结构最大的好处就是没有空间的限制,通过指针指向将结点像一个链子一样把结点链接,那么栈的同样可以用于链式存储结构。栈因为只是栈顶来做插入和删除操作,所以比较好的方法就是将栈顶放在单链表的头部(与顺序栈相反),栈顶指针和单链表的头指针合二为一。另外栈顶在头部了,那么单链表的头结点也就失去了意义,通常对于链栈来说,是不需要头结点的。同样对于链栈来说,基本不存在栈满的情况,除非内存已经没有可...
2019-09-09 21:31:29
418
原创 栈的顺序存储结构——C实现
//栈的顺序存储结构,C语言实现//栈的建立、销毁、压栈、出栈、取栈顶元素操作#include<stdio.h>#include<stdlib.h>#include<time.h>#include<iostream>using namespace std;#define STACK_INIT_SIZE 10 //栈的总存储容量...
2019-09-09 15:16:20
264
原创 C语言中malloc()和free()函数的理解
关于malloc和free这两个函数,malloc的用法示例:int p=(int )malloc(2sizeof(int));它表示在堆中开辟一块大小为2sizeof(int)的一块内存空间,p指向这块内存空间的起始地址,malloc前面的(int*)表示这块空间用来存储int型数组。开辟了这块空间后,可以修改这个空间中的值,例如为p,(p+1)做赋值操作,如果再次使用malloc函数,例如再写...
2019-09-09 11:59:32
647
原创 双向循环链表 C语言实现
双向循环链表的存储结构:双向链表也是采用的链式存储结构,它与循环链表的区别就是每个数据结点中多了一个指向前驱元素的指针域 ,可以有头结点,也可以没有。它的存储结构如下图:当只有头结点时:具体代码实现://双向循环链表,有头结点#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>...
2019-09-05 16:19:20
395
原创 循环链表 C实现
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>typedef struct List{ int data; struct List *next;}list;void creat_list(list **p)//如果链表为空,则创建一个链表,指针域指向自己,否则寻找尾...
2019-09-04 15:17:22
239
双目深度估计代码.zip
2019-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人