- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 openMVG源码学习(三)main_ComputeMatches
openMVG源码学习(三)main_ComputeMatches之前的链接:openMVG源码学习(二)main_ComputeFeaturesopenMVG源码学习(一)main_SfMInit_ImageListing.代码前的准备删除cmd相关更改代码书写习惯。。。前言少序,直接开始。输入输出说明std::string sSfM_Data_Filename;//名称确定std::string sMatchesDirectory = "";std::string sGeomet
2021-06-23 22:00:43
1691
原创 openMVG源码学习(四)main_GlobalSFM
openMVG源码学习(三)main_GlobalSFM之前的链接:openMVG源码学习(二)main_ComputeFeaturesopenMVG源码学习(一)main_SfMInit_ImageListing.代码前的准备删除cmd相关更改代码书写习惯。。。前言少序,直接开始。论文支持Global Fusion of Relative Motions for Robust, Accurate and Scalable Structure from Motion输入输出说明std:
2021-06-17 10:53:43
1160
2
原创 openMVG源码学习(二)main_ComputeFeatures
openMVG源码学习(二)main_ComputeFeatures这个学习笔记将使用openmvg作为第三方库,官方文档当中所推荐的恢复运动结构的方法,当中代码的含义以及我在学习当中所发现的经验。也欢迎大家来讨论!先前文章:链接: openMVG源码学习(一)main_SfMInit_ImageListing代码运行前的准备删除cmd相关的东西,反正这个在clion当中运行返回会出错,删除cmd的相关的东西也不会影响代码的完整性。删除之后main函数传参的参数,即int main()之后,对代
2021-05-25 11:26:03
1293
1
原创 openMVG源码学习(一)main_SfMInit_ImageListing
openMVG学习笔记(一)这个学习笔记将使用openmvg作为第三方库,官方文档当中所推荐的恢复运动结构的方法,当中代码的含义以及我在学习当中所发现的经验。也欢迎大家来讨论!包含的代码与平台ubuntu18.04openMVG的安装就不在此赘述了主要参照官方文档就好main_SfMInit_ImageListing.cppmain_ComputeFeatures.cppopenMVG_main_ComputeMatchesopenMVG_main_IncrementalSfMopenMV
2021-05-25 10:21:56
3163
4
原创 高斯滤波 从C++多线程到CUDA
原理不做解释有兴趣的看其他人的文章,讲的都会很好直接上代码C++//Created by pumao on 2021/5/8.#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/opencv.hpp>#include <opencv2/highgui/highgui.hpp>#include <cmath>using namespace
2021-05-10 18:25:59
606
原创 cuda共享内存与原子操作,实现计算字符直方图
写在前面这个程序再《CUDA by Example》所给出的程序代码是有问题的,原先的例子代码将所有的数据加到直方图数组的第一个元素上,其他数字为零,至少我的是这样的,所以我就自己写了一个,并且优化了使用cpu初始化原始数据的效率(STL的多线程)。代码在这里#include<cuda_runtime.h>#include<device_launch_parameters.h>#include<cstdio>#include<iostream>#
2021-03-16 20:01:07
372
原创 C++实现Helmert验后方差分量估计
Helmert验后方差分量估计我们的小作业哈原理《近代测量数据处理与应用》P57Eigen:http://eigen.tuxfamily.org/代码Helmert.h#pragma once#include<iostream>#include<vector>#include<string>#include<fstream>#include <Eigen/Dense>class Helmert{public: He
2020-12-10 23:39:58
1103
原创 openMVG例子学习之features_image_matching
openMVG例子学习之features_image_matching写在前面这个功能opencv也可以实现,原理与流程我自前实现了出来,不过这里的描述子选项更多,学习的化csdn该类文章满大街,也容易理解。/*功能:两幅图像查找特征点并且特征点的匹配与绘制本文给出了三种描述子SIFT、AKAZE、AKAZE_MLDB输入:两幅图像,描述子种类输出:IndMatches:vector,存储的类型为IndMatchIndMatch的数据为uint32_t的x和y附加:执行匹配使
2020-11-30 22:37:51
775
原创 openMVG例子学习之安装配置
openMVG安装openMVG安装当然也可以生成Debug版本openMVG在VS2017下的配置(windows)路径仅供参考:openMVG库函数配置方法记录如下:1、项目属性中,添加包含目录:D:\openMVG\src\third_party\ceres-solver\include;D:\openMVG\src\third_party\ceres-solver\internal\ceres\miniglog;E:\HurryUP\2020\openMVG\openMVG\thi
2020-11-30 17:07:58
1192
原创 openMVG例子学习之undistoBrown
openMVG例子学习之undistoBrown写在前面这个代码来自于\openMVG\src\openMVG_Samples当中似乎这些代码在安装时cmake当中已经生成过这里主要来对源码的主要逻辑进行分析。/*功能:实现不同模式(灰度,RGB,RGBA)图片下的畸变矫正输入:图片路径、畸变中心c、畸变因子k、焦距f输出:把矫正好的图片写入到输出文件中注意:可以在控制台实现进度条功能代码核心为最后的一段循环*/#include "openMVG/cameras/Cam
2020-11-30 17:00:55
395
原创 C++Primer 第15章 OOP
C++Primer 第25章 OOP#include<iostream>class Base{public: virtual void fun1(int i = 0) { std::cout << i << std::endl; }private: int a = 0;};class Son :public Base{public: virtual void fun1(int i = 9) override final { std:
2020-10-21 19:26:58
133
原创 三弯矩方程构造三次样条函数的C++实现
三弯矩方程构造三次样条函数的C++完美实现这个是对于我上一个代码使用C++实现完整功能的牛顿插值法的一个拓展,原理同样来自于《数值分析》下面是代码了:Newtown.h#include<iostream>#include<memory>#include<vector>using namespace std;struct Npoint{ Npoint(double &x, double &y) : y(y) { vecx.pus
2020-10-06 21:01:39
707
原创 C++primer 拷贝控制之Big Three
写在前面国庆去放松去啦,所以书本的学习就停格在了第十二章,也就是动态内存的地方,关于只能指针这一方面,我将联系放在了我设计的牛顿插值法。alloc这块,我的练习就暂且放一下,因为本章主要讲了如何管理内存的原理与思想,主要介绍了几种非常安全的C++内存管理方式。那么终于要到了第三部分——”高级部分“!那我们鼓足勇气开始吧!拷贝控制你以为你以为的构造函数就单单在对象生成时可以使用这么简单吗?我之前的确是这样认为的哈哈哈,不就是重载么,有什么稀奇的哈哈,结果看完本章,醍醐灌顶!组成拷贝控制操作分为以下五
2020-10-05 21:11:52
150
原创 使用C++实现完整功能的牛顿插值法
什么是牛顿插值法呢?这里有详细的解释:链接: 牛顿插值法及其代码.那么,如何使用C++实现不断加点的牛顿插值呢?下面是我对其数据结构的设计:下面是实现代码:#include<iostream>#include<memory>#include<vector>using namespace std;struct Npoint{ Npoint(double x, double y) : y(y) { vecx.push_back(x); }
2020-09-25 15:10:47
1662
原创 平衡二叉树与红黑树
写在前面这昨天去了一趟渭南的桃花源,这个是我们本科最后一次实习的地方,时隔不到10个月,我又跟导师来这里考察,为学弟们铺路了。上次过来还是12月份,树木的叶子都落光了,河流微微结冰了,我们就在这凛冬当中,完成了最后一次本科的实习,因为刚刚考完初试,马不停蹄的赶过来,就到了没有桃花的桃花源哈哈哈,身临大自然,卸去一身的疲惫,现在回想真的是有莫大的乐趣呀!话不多说,附图几张:最后一张是我们12月份布设的像控点,昨天去还在呢哈哈哈,导师说我们以后尽量把像控点选择成自然就有的天然像控点,这样
2020-09-24 18:04:35
146
原创 红黑树的C++实现,20200924版(不断完善中)
写在前面C++Primer学到了关联式容器,该章相对于其他章节,讲述的比较简单,所以就打算实现RBtree来深刻体会关联式容器的底层工作原理。存在的问题1.子树左旋或右旋后,该子树的根指针指向正确,但其子树的根节点指向该子树的指针未改变。2.动态内存学艺不精,内存分配这块,还存在很大问题,正在考虑使用智能指针(等我12、13章学完了再改正)。3.代码冗余性过多,特别是if语句嵌套过多。4.数据只接受int类型,未使用模板。5.没有自定义的迭代器其中第4以及第5点,需要认真阅读源码,之后达到实
2020-09-24 17:54:17
120
原创 C++Primer 第10章 bind与迭代器
C++Primer 第10章 bind与迭代器//10.20,10.22#include<iostream>#include<vector>#include<string>#include<algorithm>#include<functional>using namespace std;using namespace std::placeholders;bool sumcount(const string &str,
2020-09-18 22:55:06
177
原创 C++Primer 第10章lambda表达式
泛型编程咱们继续高歌猛进,下面我给大家继续讲关于算法的故事。我们知道标准库容器中定义的算法大多数独立在算法之外,通常这些算法是通用的。它们可以处理不同类型的容器中的元素。是不是听起来非常的神奇?不同的容器可以利用相同的算法,这些功劳都可以归因于他们拥有相同的迭代器接口,虽然不同的容器其数据结构不同。但是其迭代器经过包装,给用户在使用时, 可以使用相同的操作方法,来对不同的容器进行操作,那么算法就可以利用迭代器来间接地访问容器内的元素,从而达到处理元素的目的。因此,大多数的算法并不依赖于容器本身,不过某些
2020-09-17 17:59:43
185
原创 C++Primer 第9章 顺序容器
写在前面到了,看来侯捷老师的STL,我对C++的标准库是有了极大的兴趣的,本章主要讲述的是标准库中的顺序容器的使用。顺序容器首先什么是顺序容器呢?是将数据以一定次序存储在内存当中,其数据的顺序不以元素的值确定先后。那么顺序容器都有什么呢:本书给出了以下6种容器:vector 支持快速随机访问,可变大小,头部插入删除可能很慢deque 双向队列,头尾均可快速的插入,随机访问,可变大小list 双向链表,只能顺序访问,但插入删除很快,对于多量的小元素,更耗内存forward_list 单
2020-09-17 11:41:23
122
原创 数值分析之牛顿插值法
数值分析之牛顿插值法#include<iostream>#include<deque>#include<string>#include<iomanip>using namespace std;struct Npoint{ double x; double y;};class Newpoint{public: Newpoint() = default; ~Newpoint(); Newpoint(initializer_list&
2020-09-16 21:29:08
419
原创 C++Primer 第8章IO流
C++Primer 第8章 IO流写在前面经过前面初级部分的学习,我进入该书所写的中级阶段——C++标准库,这里会讲到C++所自带的最核心的标准库,之前听过侯捷老师的课,有幸感受到标准库的强大与精妙。正如本书所说,标准库是值得每一位C++程序员应该掌握的。这里给自己鼓劲!附上几张我上周末终南山的照片:是挺美的,不过我去的时候刚好遇上下雨,行走在云中,能见距离不到10m,看不见远处的景吧,但是也别有一番梦境的氛围哈哈哈。下面开始言归正传!做个总结吧,我会更改我之前的写博文的风格的,之前的博文
2020-09-14 16:47:48
174
原创 C++Primer 习题 第7章
C++Primer 习题 第7章Person.h#ifndef PERSON_H#define PERSON_H#include<iostream>#include<string>using namespace std;class Person{public: //7.15 Person() :pname("无姓名"), paddress("无地址"){} Person(string &na, string &ad) :pname(na)
2020-09-12 13:10:30
136
原创 C++Primer 习题7.学前瞎写
C++Primer 习题7.学前瞎写Sales_data.h#ifndef SALES_DATA_H#define SALES_DATA_H#include<iostream>#include<string>#include<stdexcept>using namespace std;class Sales_data{public: using bname = std::string; //小代码简直脱裤子放屁hhh using bnum
2020-09-11 10:42:13
159
原创 C++Primer 习题6.35-6.56
C++Primer 习题6.35-6.3.3//6.35#include<iostream>using namespace std;int fun(int val){ if (val > 1) return val * fun(val - 1); //如果是val--那么则return释放之后val值 //也在该局部中失去,出现未定义现象 return 1;}int main(){ cout << fun(3) << " ";}/
2020-09-10 11:07:22
234
原创 C++Primer 习题6.21-6.33
原创 C++Primer 习题6.21-6.33//6.21#include<iostream>using namespace std;int coompareint(const int i, const int *ip){ return(i > *ip) ? i : *ip;}int main(){ int ia = 1; int ib = 2; int *ip = &ib; cout << coompareint(ia, ip) <&
2020-09-08 18:47:25
227
原创 C++Primer 习题5.24-6.2.3
C++Primer 习题5.24-6.2.3//5.24#include<iostream>#include<stdexcept>using namespace std;int main(){ int val1, val2; cin >> val1; cin >> val2; if (val2 == 0) throw runtime_error("除数不能为0"); cout << val1 / val2 <<
2020-09-07 18:49:25
227
原创 C++Primer 习题3.39-3.45
C++Primer 习题3.39-3.45//3.39#include<iostream>#include<string>using namespace std;int main(){ const string str1{ "woshinibaba" }; const string str2{ "Woyeshinibaba" }; if (str1 != str2) cout << "字符串不相等" << endl; else co
2020-09-06 10:03:45
134
原创 C++Primer 习题3.22-3.36
C++Primer 习题3.22-3.36//3.4.1思考#include<iostream>#include<vector>using namespace std;int main(){ vector<int>vint{ 1,2,3,4 }; auto it = vint.begin(); it += 2; cout << *it << endl; //vint.push_back(5); //cout <<
2020-09-05 22:27:44
283
原创 C++Primer 习题3.6-3.20
C++Primer 习题3.6-3.20string、vector的非迭代器用法//3.6#include<iostream>#include<string>using namespace std;int main(){ for (char c : str1) { str2 += 'X'; } str1 = str2; cout << str1 << endl; //3.7 /* 如果改成char,结果相同 */ ret
2020-09-04 11:03:56
148
原创 C++Primer 习题3.1-3.5
C++Primer 3.1-3.5string使用//3.2.3思考#include<iostream>using namespace std;int main(){ string str{ "123 ab\t c..??" }; for (auto a : str) { //if (isalpha(a)) // cout << a << "是一个字母" << endl; //else if (isdigit(a)) //
2020-09-02 19:57:34
120
原创 C++Primer 习题2.18-2.26
C++Primer 2.18-2.26习题引用、指针、const变量//2.18#include<iostream>using namespace std;int main(){ int i = 2, j = 3; int *p = &i; cout << p << "," << *p << endl; //结果:地址1,2 p = &j; //更改所指对象 cout << p <<
2020-09-01 20:21:21
178
原创 C++Primer 习题1.1-1.16
PrimerC++习题1.1-1.16这是一个开始,一定要坚持!//1.1 int main() { return 0; }//1.2 int main() { return -1; //(进程 9660)已退出,返回代码为: -1。 }//1.3#include<iostream> int main() { std::cout << "hello,world!"; return 0; }//1.4#include<
2020-08-30 00:29:50
167
原创 VS2017、opencv安装
VS2017、openv安装写在前面这是我写的第一个博客,本人是一位遥感系的研究生,将自己所学记录下来,以作之后的笔记,有喜欢的朋友可以留言给我,讨论学术。下面我们开始吧!!青涩四年距离拟录取到现在,还不足一个月,回想自己的大学时光。不禁感慨,无病也要空吟一下哈!本人的大学时光可以说是水的一批:上课不听、作业不写说的就是我了。所有的考试科目都是传言中的“三天速成法”,考前疯狂转发锦鲤。成绩永远停留在中等偏下的水平。不过我还是有点事情可做:会了3dmax、Vray、thinking partic
2020-07-05 10:00:04
256
opencv4 + contrib vs2017 cmake已编译
2020-11-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人