- 博客(91)
- 资源 (8)
- 收藏
- 关注

原创 关于CMVS-PMVS在windows上的环境配置问题统一回复
小伙子们可以在linux下跑这个程序,其实到工作的时候,linux也是必须掌握的,正好可以练一下,而且ubuntu上配置cmvs操作起来要比windows上方便太多,出现各种问题基本都出在windows系统cywin的环境配置上,不要只看当前文章,结合我写的其他几篇文章看一下(比如cywin环境配置,cmake操作流程,vs等各个软件的安装顺序,这些都有),从头到尾基本是不会有什么问题的;这段时间比较忙,忙完这一阵我会开个github,把自己的核心改进代码给提交上去(时间从O(n4)直接到了O(n3),而且
2020-12-23 11:52:46
485

原创 CMake+vs2010实现对CMVS-PMVS源代码的编译运行,以及实现与bundler之间的相互调用
(1) 下载CMVS-PMVS2的Windows版本(下载地址:https://github.com/TheFrenchLeaf/CMVS-PMVS/downloads), 此版本并不包含VC常用的.sln/.vcproj组织体系或者NMake所用的Makefile, 但是可以用CMake进行转换获得:软件cmake-2.8.6-win32-x86 稠密重建CMVS-PMVS时想用VS2
2016-11-21 20:57:03
3859
2

原创 运行Bundler前的准备之Cygwin的下载和安装
下载和安装Cygwin Cygwin是许多自由软件的集合,最初由Cygnus Solutions开发,用于在各种版本的Microsoft Windows上运行UNIX类系统。由于Bundler默认是通过在Unix环境下执行shell脚本来启动Bundler的,因为在Windows环境下需要安装Cygwin以执行shell脚本。 Cygwin的下载地址:h
2016-11-19 08:56:11
1437

原创 windows7下实现Bundler,PMVS,CMVS在VS2010/VS2013上的编译并通过cygwin运行(1).
本篇文章是在以下两个博客:http://blog.youkuaiyun.com/zzzblog/article/details/17166869 和 http://blog.youkuaiyun.com/halfwet/article/details/6973918的基础上,外加结合自己编译调试过程中所遇到的问题对上面两个博客进行的总结和相应修改。【windows7—64位系统下用VS2010实现编译,并通过cygw
2016-11-18 21:46:56
3102
2

原创 Qt Creater中使用opencv3.1.0创建项目
由于opencv3.1.0版本较之以前发生了挺大变化,在网上又很少有与QT Creater相关的博文(查询过程真的很痛苦),看似简单的问题自己确在这上面浪费了很多时间。因此记录下来,方便大家在.pro文件的SOURCES += main.cpp语句后添加如下:(根据自己opencv3.1.0或者更高版本的安装路径酌情进行修改)INCLUDEPATH +=D:\Opencv3
2016-05-31 09:55:29
755
原创 canvas实现钟表实时绘制
canvas实现钟表根据当前时间显示,效果如下图所示:【本文是参考文章https://www.cnblogs.com/zhaoliner/p/6098717.html写的】,但该文章还得稍加修改才能运行,所以直接写这篇文章,拷贝代码直接运行代码如下:<html><head> <title>Canvas tutorial</title...
2019-02-15 16:53:18
998
原创 canvas实现英雄联盟战力图
这两天闲着没事,就看了一下canvas,以前组里有过类似的需求,自己是菜鸡,没能做,这两天正好做了一下,感觉挺简单的!没想的那么复杂,里面代码有些地方挺啰嗦,等以后再继续改进吧!先看一下实现的效果图:这个图分两步来完成:1 绘制六边形2 绘制数据填充区首先看一下六边形的坐标分析:下面这篇文章也对战力图进行了描述,而且挺详细的【刚发现....】https://www.ji...
2019-02-15 14:47:28
1697
原创 安装运行bundler时出现问题总结
关于安装运行bundler时遇到的问题做一个总结:以前自己没遇到过,又有很多人问,所以就把被人踩过的坑给总结一下,开始比较少,但会随时更新!问题一: ./pmvs/prep_pmvs.sh:行42: 语法错误: 未预期的文件结尾出现问题原因:文件错误 Linux文件到win下有很多东西不识别解决方案:把win下的sh转换成Linux环境下的文件就ok了;...
2018-07-06 18:30:34
2012
原创 不用配置bundler及cygwin,实现直接对稠密重建算法CMVS-PMVS进行研究
下面这个方法适用于那些只想对稠密重建算法CMVS-PMVS进行研究,而不想在前期bundler、cygwin的配置操作上浪费时间的学者=================================================================================================================三维重建:就现实应用情况来说
2017-12-20 15:53:32
1029
3
原创 进程相关操作
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2017-05-16 11:09:13
479
原创 操作系统处理机管理功能(2)之进程通信及调度
1.进程通信当有一组相互合作的进程去完成一个共同的任务时,他们之间往往需要交换信息。例如,有输入进程、计算进程、打印进程三个相互合作的进程,输入进程负责将所输入的数据传送给计算进程、计算进程利用输入数据进行计算,并把计算结果传给打印进程;最后又打印进程把计算结果给打印出来。进程通信的任务是:==实现相互合作进程之间的信息交换====当相互合作的进程处于同一计算机系统时,通常他们
2017-05-16 11:01:47
878
原创 操作系统处理机管理功能(1)之进程控制及进程同步
1.传统的OS中应具有处理机管理、存储器管理、设备管理和文件管理等基本功能。其中处理机管理功能:在传统的多道程序系统中,处理机的分配和运行都是以进程为基本单元的,因而对处理机管理可以归纳为对进程的管理。处理机管理的主要功能有:创建和撤销进程,对诸进程的运行进行协调,实现进程之间的信息交换,以及按照一定的算法将处理机分配给进程。在多道程序环境下为使作业能并发执行,必须为每道作业创建一个或
2017-05-16 10:56:05
3516
原创 网际协议IP(3)之网际控制报文协议ICMP(Internet Control Message Protocol)
ICMP协议为了更有效的转发IP数据报和提高交付成功的机会,在网络层使用了网际控制报文协议ICMP。因为ICMP报文是装在IP数据报中,作为其中的数据部分,因此它是IP层的协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。其报文格式如下所示:如上图所示,校验和字段用来检验整个ICMP报文。而IP数据报首部的检验和并不检验IP数据报的内容,因此不
2017-05-10 19:33:11
2502
1
原创 网际协议IP(2)之IP地址与硬件地址
IP地址与硬件地址物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址是逻辑地址是因为IP地址是用软件实现的)。发送数据时,数据从高层下到低层,然后才到通信链路上传输。使用IP地址的IP数据报一旦交给了数据链路层,就被封装成MAC帧了、MAC帧在传送时使用的原地址和目的地址都是硬件地址,这两个硬件地址都写在MAC帧首部中。局域网中硬件地址已
2017-05-10 19:29:44
1046
原创 网际协议IP(1)之地址解析协议ARP
与IP协议配套使用的还有三个协议:地址解析协议ARP(Address Resolution Protocol);网际控制报文协议ICMP(InternetControl Message Protocol);网际组管理协议IGMP(Internet Group Management Protocol)。网际协议IP及其配套协议1.地址解析协议ARP:用途是从网络层使用的IP地
2017-05-10 19:27:31
769
原创 c++中null和nullptr的区别
经过转定义我们会发现null其实是0表示一个整形数,而nullptr是空指针具体区别看下面例子:类a中有两个构造函数int a(int a);int a(int *a);则当你使用 *p=null时,a(p)调用的就是第一个构造函数,而我们其实是要对第二个构造函数进行调用。
2017-04-27 15:10:07
1870
原创 IP地址及相关操作运算
1.首先给IP家族进行分类A类 1.0.0.0~127.255.255.255 其对应的子网掩码为:255.0.0.0B类 128.0.0.0~191.255.255.255 其对应的子网掩码为:255.255.0.0C类 192.0.0.0~223.255.255.255 其对应的子网掩码为:255.255.255.0D类 224.0.0.0~239.255.2
2017-04-27 11:36:04
1102
原创 UDP广播
UDP广播分为有限广播和直接广播;有线广播:将数据传播到本局域网内所有网段,但不能跨路由器(255.255.255.255)直接广播:将数据传播到指定网段内的所有主机,能跨过路由器广播(192.168.1.255)创建套接字(socket)【套接字其实就是进程间进行通信的接口】时,可以通过setSocketopt()函数来设置广播类型。
2017-04-27 10:01:13
1761
原创 客户端与服务器进行通信时sendto()和recfrom()函数的工作原理
客户端与服务器进行通信时sendto()和recfrom()函数的工作原理:注意基于UDP协议进行传输时,是这两个函数。当进程间通讯是基于TCP时,就是send()和recv()函数。但两者工作原理都一样。我们知道32位机器运行一个进程,操作系统会有4GB虚拟地址空间,其中2GB分配给内核,2GB分配给用户。当然了,并不是2GB资源都分配给该进程,而是进程需要多少就会分配多少。电脑A中
2017-04-27 09:48:21
2620
原创 局域网计算机间进行通信都经历了什么
上图中连线应该是双向箭头,这里就不在进行修改了局域网中A和B进行通信,可以直接连接网线。但当局域网中计算机比较多的时候呢?都连接网线吗?显然这种做法不太行。由此交换机就应运而生。局域网间多个计算机进行相互通信,依靠的就是交换机。下面说一下计算机之间进行通讯的详细流程。在这之前先了解一下网络的层次。这里以五层为例;================================应
2017-04-27 09:22:45
4931
原创 TCP的流量控制
理解:窗口和滑动窗口TCP的流量控制:TCP使用窗口机制进行流量控制什么是窗口?连接建立时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另一端,接收方发送的确认信息中包含了自己剩余的缓冲区尺寸剩余缓冲区空间的数量叫做窗口2. TCP的流控过程(滑动窗口)
2017-04-26 11:38:08
444
原创 TCP与UDP的区别
TCP(TransmissionControl Protocol)传输控制协议: 该协议主要用于在主机间建立一个虚拟连接,以实现高可靠性的数据包交换。IP协议可以进行IP数据包的分割和组装,但是通过IP协议并不能清楚地了解到数据包是否顺利地发送给目标计算机。而使用TCP协议就不同了,在该协议传输模式中在将数据包成功发送给目标计算机后,TCP会要求发送一个确认;如果在某个时限内没有收到确
2017-04-26 11:31:24
525
原创 TCP粘包问题
1.什么是粘包: 简单的说就是通过TCP协议发送了多条独立的数据,但接收的时候,有些数据不幸的合并成了一个。比如客户端向服务器发送两个命令:1)Fen 2)ShouBa 但是服务器接收的时候,很可能不是分两次接收,而是一次接收到 FenShouBa2.粘包出现的原因: 2.1由于TCP协议本身的机制(面向连接的可靠地协
2017-04-26 11:04:08
577
原创 客户端与服务器之间分别通过TCP和UDP进行通信
一:TCP/IP协议的应用一般采用客户/服务器模式,因此在实际应用中,必须有客户和服务器两个进程,并且首先启动服务器,其系统调用时序图如下。 面向连接的协议(如TCP)的套接字系统调用如图2.1所示:注意:服务器必须首先启动,直到它执行完accept()调用,进入等待状态后,方能接收客户请求。假如客户在此前启动,则connect()将返回出错代码,连接不成功。这里直接上C++代码:
2017-04-26 10:45:09
7399
原创 TCP协议三次握手、四次挥手详解
本文是参考的文章http://blog.youkuaiyun.com/whuslei/article/details/6667471/,但文章只给了大致流程(某些部分太大略了)。这里将详细流程记录下来,并添加了自己的理解。同时也在vs2012上实现了TCP在客户端与服务器方面的链接代码。代码可通过该网址进行下载。TCP与服务器之间建立连接需要三次握手才能完成,而断开连接则需要四次挥手。整个过程如下图所示:
2017-04-24 17:16:38
1031
转载 C语言函数传递指针参数的问题
这货写的真详细,并且通俗易懂。看到的有福气了0.0呵呵一个问题是,我们想用一个函数来对函数外的变量v进行操作,比如,我想在函数里稍微改变一下这个变量v的值,我们应该怎么做呢?又或者一个常见的例子,我想利用swap()函数交换两个变量a,b的值,我们应该怎么做呢(好吧,博主是觉得这个问题是足够的老土)。如果你真的理解【函数】这个工具的本质,我想你稍微仔细的思考一下,可能就不会来查看博
2017-04-20 15:46:45
789
原创 Unity使用sql Server问题汇总
Unity使用sql Server问题汇总创建C#脚本,引入数据库命名空间时,不会显示。这是因为差一个System.Data.dll文件,将此文件手动添加到vs编辑器中【解决方案->Assembly-Csharp->引用。右键点击引用->添加引用。将System.Data.dll文件加入】。写好脚本后,运行会发现各种错误:【一般都是缺少动态链接库文件之类的错误】
2017-04-20 15:41:33
696
原创 析构函数
在类中使用指针时,需要使用new分配它自己的空间。如:Private: int* m_pAge;Public:Cperson(){m_pAge =new int(100);}new 或者 malloc后需要手动删除所使用空间,由此引入析构函数.析构函数:回收对象在堆区分配的空间,类中有new就会有析构函数.对象生命周期结束,会自动调用析构函数.析构:对象生命周期结束时,回收空间
2017-01-15 20:59:25
406
原创 迭代器与反向迭代器
这里以链表为例:直接上代码,解释理解起来比较容易#include#include#includeusing namespace std;void Show(int n_Value){cout}int main(){list list1;list1.push_back(1);list1.push_back(2);list1.push_back(
2017-01-15 20:47:19
737
原创 vector原理及其成员函数使用总结
这里直接上程序,程序中有注解。可以直接copy代码,在vs中编译执行#include#include#includeusing namespace std;/*迭代器注意事项:1.添加,删除,结合的操作会使得原有的迭代器失效,因此需要重新更新赋值2.vector vec[4]--有四个vector数组,vector vec(10);//有1个数组,数组中有10个元素
2017-01-12 22:41:19
694
原创 c++标准库及命名空间std
1、命名空间std C++标准中引入命名空间的概念,是为了解决不同模块或者函数库中相同标识符冲突的问题。有了命名空间的概念,标识符就被限制在特定的范围(函数)内,不会引起命名冲突。最典型的例子就是std命名空间,C++标准库中所有标识符都包含在该命名空间中。 如果确信在程序中引用某个或者某些程序库不会引起命名冲突(即库中的标识符不会在程序中代表其他函数名称),那么可以通过using
2016-12-30 10:54:20
740
原创 c++中结构体和类的异同
结构体是对数据(变量)的封装。类是对数据(变量)和函数(方法)的封装。在C语言中,结构体中使用函数则必须使用指针,在C++中结构体可以有函数,但不推荐这样使用(一般都不用)。类是具有相同属性和行为的对象的抽象,使用类时,需先定义一个类变量,定义类的变量就是对象。定义对象时,会自动调用构造函数(所以构造函数的使用是从定义一个类时开始的)。结构体内的变量默认为public ,而类中变量
2016-12-30 10:30:29
693
原创 c++程序代码使用指针调试运行出错分析
程序代码中使用指针时,几种可能出现的提示错误及其原因:1.出现0Xcccccccc、0Xcdcdcdcd错误表示指针没有初始化。2.出现0X00000000 表示指针指向空3.出现 0Xfeeefeee 表示指针所指向空间已经被删除。
2016-12-30 10:21:49
945
原创 C++学习笔记(2)之引用详解
引用就是对象的另外一个名字。在实际的程序中,引用主要用作函数的形式参数下面用独立的对象来介绍并举例说明引用的用法:引用是一种复合类型,通过在变量名前面添加“&”符号来定义。复合类型是指用其他类型定义的类型。可以定义任何其他类型的引用,但是不能定义引用类型的引用,换句话来说就是引用初始化后不能引用其他引用。1. 引用必须用与该引用同类型的对象初始化(引用一旦定义就要进行初始化,且初始化值不能
2016-12-29 18:23:32
599
1
原创 C++学习笔记(1)之传值、传指针、传引用的区别
1.引用和指针的区别:引用定义就要初始化、引用初始化后不能引用其他的引用、不能给引用赋空值,引用具有 1)不占空间 2)效率 3)安全优点2.什么时候使用指针,什么时候又该使用引用?指针和引用的相同点是,都可以在程序的不同地方,操作同一块物理空间。下面是使用指针的情况:是不是要装地址、有没有地址偏移操作、使用new,malloc动态申请空间时,必须使用指针。当对单一的一块空间操作时,
2016-12-28 22:40:01
552
原创 external和internal以及none链接属性的讲解
㈠. external和internal以及none链接属性的讲解备注:1.链接属性分为external,internal,none。 2.全局变量默认拥有external链接属性; static修饰的变量拥有internal链接属性; 函数体中的变量用于none链接属性。 3.拥有external链接属性的变量可被所有文件访问,
2016-12-28 22:21:16
1366
转载 windows7下实现Bundler并通过cygwin编译运行以及pmvs、cmvs的使用(2)
本文参考博客http://www.cnblogs.com/mothe123/p/3570981.html ,其中有一个错误,在这里进行了改正,先转载下来以防丢失本人电脑是WIN7,64位操作系统Bundler的配置: Bundler的配置有两种途径:1)通过makefile;2)通过VS。这里我不建议用VS配置。因为VS配置出来的少了一个Bun
2016-11-21 19:59:14
2079
8
Learning to Assign Orientations to Feature Points
2016-09-22
摄像机标定详解版
2016-07-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人