三维重建
主要是讲一些基于图像的三维重建操作
红狐狸的北北记
我很强
展开
-
针孔相机的投影过程(三维重建task1-2)
针孔相机的投影过程(三维重建task1-2)熟悉的配方,这个稍微有点难懂,想学的同学需要静下心来看看!相机的投影主要是为了计算相机在世界坐标系中的位置和方向!总结归纳为四个步骤(文末还有思路整理):(1)世界坐标系到相机坐标系;(2)相机坐标系到归一化像平面坐标系;(3)归一化像平面坐标系到物理像平面坐标系;(4)物理像平面坐标系到图像坐标系。#include <iostream>#include "math/vector.h"class Camera{public:原创 2021-02-18 22:49:58 · 340 阅读 · 3 评论 -
一个完整的双视角 SFM 过程(三维重建task2-5)
操作(1)终端下运行:sudo apt-get install libimage-exiftool-perlexiftool ImageBasedModellingEdu/examples/data/sequence/IMG_0191.JPG可以看到读取焦距的命令与运行结果。(2)再执行:./build/examples/task2/task2-5_test_ba examples/data/sequence/IMG_0191.JPG examples/data/sequence/IMG_01原创 2021-02-23 17:52:48 · 701 阅读 · 0 评论 -
测试三角化,利用直接线性变换法求三维点坐标(三维重建task2-1)
测试三角化,利用直接线性变换法求三维点坐标(三维重建task2-1)本代码解决的问题:已知相机参数和匹配点,恢复三维点的坐标这次代码最主要的内容就是:如何把矩阵用代码的形式表示。然后最终获得:2.14598 -0.250569 6.92321的结果。矩阵A的表达式如下: * [x1P13 - P11] * A = [y1P13 - P12] * [x2P23 - P21] * [y2P23 - P22]std::ve原创 2021-02-22 21:51:04 · 612 阅读 · 3 评论 -
在vs2017下使用MYNTEYE S SDK 2.5.0小觅双目摄像头,永久设定包含目录和库目录
windows系统下,于vs2017下使用MYNTEYE S SDK 2.5.0**#Windows EXE 安装:**Hi,各位好啊!又见面了。前几天有个师妹问我关于双目相机的环境配置,我之前虽然有弄过,但是没来及整理笔记,后来她自己配置好了,还是蛮ok的。大家也可以看看她的教程:https://blog.csdn.net/weixin_46200354/article/details/113357960因为不同的相机搭建环境的时候遇到的问题也是不一样的,但也大同小异。小编这里只提供小觅相机2.5.0原创 2021-02-03 02:05:46 · 2215 阅读 · 3 评论 -
特征检测与匹配,测试8点法求取基础矩阵F(三维重建task1-3)
特征检测与匹配(三维重建task1-3)#include <math/matrix_svd.h>#include "math/matrix.h"#include "math/vector.h"typedef math::Matrix<double, 3, 3> FundamentalMatrix;FundamentalMatrix fundamental_8_point (math::Matrix<double, 3, 8> const& poin原创 2021-02-19 18:31:55 · 883 阅读 · 2 评论 -
关于如何用代码表示矩阵及矩阵的一些算子(三维重建task1-1)
关于如何用代码表示矩阵及矩阵的一些算子(三维重建task1-1)有一段日子没更新,参加了个数模美赛,弄了一些小项目的资料,过了个年,hh。接下来的学习主要以代码解读为主,参考一下人家大佬写的代码,对自己缺少的知识进行补充,边学边写,有说的不对的地方欢迎大家指正。代码呈上#include <iostream>#include <math/matrix_svd.h>#include "math/matrix.h"#include "math/vector.h"int m原创 2021-02-18 21:48:27 · 1635 阅读 · 6 评论 -
如何用代码实现同时对三维点位置和相机参数进行非线性优化(LM算法)(三维重建task2-3)
如何用代码实现同时对三维点位置和相机参数进行非线性优化(LM算法)(三维重建task2-3)这次的代码涉及了比较多的数学原理,如无约束非线性最小优化问题、最速下降法、牛顿法、LM法等等代码呈上#include <fstream>#include <sstream>#include <sfm/camera_pose.h>#include<cassert>#include <iomanip>#include "sfm/ba_conjug原创 2021-02-23 10:02:30 · 1103 阅读 · 2 评论 -
如何利用Kneip算法及基于RANSAC的Kneip算法求解P3P问题,获得相机姿态(三维重建task2-2)
如何利用Kneip算法及基于RANSAC的Kneip算法求解P3P问题(三维重建task2-2)简答介绍一下P3P法:需要4对不共面的点 求出2D点在当前相机坐标系中的3D点,然后进行3D-3D的姿态求解。直接线性变换法(已知三维点和对应二位点,求解相机内外参数,前一个博客有分析)Kneip算法的介绍: P3p: 从3对3D-2D的对应点中确定相机的朝向和位置 通常会产生4对解,需要用第4对匹配关系确定 一般的求解思路是首先计算点在相机中的3D坐标,然后通过ICP的方式计算相机姿态 K原创 2021-02-22 23:20:09 · 729 阅读 · 0 评论 -
Jacobian矩阵的计算(三维重建task2-4)
Jacobian矩阵的计算(三维重建task2-4)// Created by caoqi on 2018/8/31.////3D: 1.36939, -1.17123, 7.04869//obs: 0.180123 -0.156584#include "sfm/bundle_adjustment.h"#include "math/matrix.h"#include "math/vector.h"/* * This function computes the Jacobian原创 2021-02-23 13:49:31 · 897 阅读 · 0 评论 -
运动恢复结构(三维重建task3-1)
运动恢复结构(三维重建task3-1)代码#include "defines.h"#include "functions.h"#include "sfm/bundler_common.h"#include "sfm/bundler_features.h"#include "sfm/bundler_matching.h"#include "sfm/bundler_intrinsics.h"#include "sfm/bundler_init_pair.h"#include "sfm/bund原创 2021-02-24 22:39:35 · 436 阅读 · 0 评论 -
Linux系统环境下配置ImageBasedModellingEdu
Linux系统环境下配置ImageBasedModellingEdu各位小朋友,大朋友们,大家好啊!最近小编在学三维重建(本人网名红狐狸,大家可以这么称呼我哈!),感觉这个东西对新手不太友好,所以想着做一些笔记。一来可以给感兴趣的同学留一点方便,二来也可以找一些志同道合的小伙伴共同探讨学习一下。我也是菜鸟上路,各位同门,多多指教!有兴趣可以点个关注,有问题欢迎私信。后面小编还会更新一些小编在学习路上的教程和心得哦!这次配置环境我参考了很多人写的笔记,然后这篇教程我主要在我遇到的问题上,对原有的教程进行补原创 2021-02-01 22:59:22 · 2722 阅读 · 9 评论 -
从基础矩阵中求解本质矩阵,得到相机的参数(三维重建task1-5)
从基础矩阵中求解本质矩阵,得到相机的参数(三维重建task1-5)代码呈上#include <math/matrix.h>#include <math/matrix_svd.h>typedef math::Matrix<double, 3, 3> FundamentalMatrix;typedef math::Matrix<double, 3, 3> EssentialMatrix;//用于测试相机姿态的正确性math::Vec2d p1={原创 2021-02-20 13:55:51 · 1624 阅读 · 1 评论 -
匹配策略方法:已知性检测、互为最近邻、最近邻和次近邻的比、快速匹配的方法等(三维重建task1-6)
匹配策略方法:已知性检测、互为最近邻、最近邻和次近邻的比、快速匹配的方法等(三维重建task1-6)解析都在注释里面,大家可以仔细看看#include <iostream>#include <fstream>#include "util/aligned_memory.h"#include "util/timer.h"#include "core/image.h"#include "core/image_tools.h"#include "core/image_io.原创 2021-02-20 15:24:26 · 1675 阅读 · 0 评论 -
利用RANSAC求解基础矩阵(三维重建task1-4)
利用RANSAC求解基础矩阵(三维重建task1-4)代码呈上#include <iostream>#include <fstream>#include <sstream>#include<cassert>#include <set>#include <util/system.h>#include <sfm/ransac_fundamental.h>#include "math/functions.h"#原创 2021-02-20 13:06:36 · 1462 阅读 · 1 评论