摄像机标定方法研究 苏晋 东北大学 2010-06-25 硕士
计算机立体视觉中的摄像机标定算法的研究与应用 黄侃 沈阳工业大学 2007-01-08 硕士
摄像机自标定方法的研究与进展 孟晓桥; 胡占义 自动化学报 2003-01-22 期刊
摄像机标定及相关技术研究 谭晓波 国防科学技术大学 2004-11-01 硕士
基于点特征的图像配准算法研究 赵辉 山东大学 2006-04-07 硕士
摄像机标定及相关技术研究 邹凤娇 四川大学 2005-05-10 硕士
计算机视觉中的摄像机标定方法 陈爱华; 高诚辉; 何炳蔚 中国工程机械学报 2006-10-30 期刊
摄像机现场标定算法研究 贾丹 哈尔滨工程大学 2007-02-01 硕士
https://wenku.baidu.com/view/4f53e0b0ccbff121dc36838c.html
meshlab视频教程:
https://wenku.baidu.com/video/course/v/7354a8847b66919bf9ec978fd80651b4
Mister P. MeshLab Tutorials
http://www.banterle.com/francesco/
http://www.banterle.com/francesco/courses/2017/be_3drec/
http://www.banterle.com/francesco/courses/2017/be_3drec/slides/
http://www.banterle.com/francesco/courses/2017/be_3drec/slides/Meshlab.pdf
http://www.cse.iitd.ac.in/~mcs112609/poisson_reconstruction%20-%20edited.pptx
meshlab源代码编译:
http://download.qt.io/archive/qt/5.12/5.12.5/
http://download.qt.io/archive/qt/5.9/5.9.8/
这里如果你不是下载的qt是用Ubuntu默认apt安装的qt那么要学会切换qt4和qt5,
https://blog.csdn.net/lch_vison/article/details/80899039
cd /usr/lib/x86_64-linux-gnu/qt-default/qtchooser
sudo gedit default.conf
但是最新版本的是需要qt5.9:所以还是老老实实下载把
源代码编译安装心得:
https://blog.csdn.net/u012348774/article/details/82686913
https://github.com/cnr-isti-vclab/meshlab/tree/master/src
http://www.petercheng.net/posts/meshlab-build/
https://github.com/cnr-isti-vclab/meshlab/blob/master/src/README.md
https://gist.github.com/LogWell/bffd0a79ff13ec392f8fcf6749388c46#file-compile_20190129_beta-sh
sudo apt install qt5-qmake qtscript5-dev libqt5xmlpatterns5-dev libqt5widgets5 libqt5gui5 libqt5network5 libqt5core5a libdouble-conversion1 libxcb-xinerama0
https://xbuba.com/questions/41725190
https://www.howtogeek.com/105413/how-to-compile-and-install-from-source-on-ubuntu/
git clone --depth 1 git@github.com:cnr-isti-vclab/meshlab.git
git clone --depth 1 git@github.com:cnr-isti-vclab/vcglib.git -b devel
# https://github.com/cnr-isti-vclab/meshlab/releases/tag/25f3d17
# https://github.com/cnr-isti-vclab/meshlab/blob/master/src/README.md
# install qt5.9
# sudo apt-get install qt5-default qtcreator libqt5xmlpatterns5-dev qtscript5-dev
# install some dependencies
# sudo apt-get install libeigen3-dev
# clone repos
# git clone --depth 1 https://github.com/cnr-isti-vclab/meshlab.git
# git clone --depth 1 https://github.com/cnr-isti-vclab/vcglib.git -b devel
# apply some patch to vcglib
# ***important***
# curl https://data.gpo.zugaina.org/gentoo/media-gfx/meshlab/files/2016.12/meshlab-2016.12-remove-header.patch | patch -p1
cd meshlab
# set build flags
# without omp
# QMAKE_FLAGS=('-spec linux-g++' 'CONFIG+=release' 'CONFIG+=qml_release' 'CONFIG+=c++11' 'QMAKE_CXXFLAGS+=-fPIC' 'QMAKE_CXXFLAGS+=-std=c++11' 'QMAKE_CXXFLAGS+=-fpermissive' 'INCLUDEPATH+=/usr/include/eigen3' "LIBS+=-L`pwd`/lib/linux-g++")
# with omp: 'QMAKE_CXXFLAGS+=-fopenmp'
QMAKE_FLAGS=('-spec' 'linux-g++' 'CONFIG+=release' 'CONFIG+=qml_release' 'CONFIG+=c++11' 'QMAKE_CXXFLAGS+=-fPIC' 'QMAKE_CXXFLAGS+=-fopenmp' 'QMAKE_CXXFLAGS+=-std=c++11' 'QMAKE_CXXFLAGS+=-fpermissive' 'INCLUDEPATH+=/usr/include/eigen3' "LIBS+=-L`pwd`/lib/linux-g++")
MAKE_FLAGS=('-j12')
# building
cd src/external
qmake external.pro ${QMAKE_FLAGS[@]} && make ${MAKE_FLAGS[@]}
cp lib/linux/* lib/linux-g++/ # normally this should not be necessary? some problem i had
cd ../common
qmake common.pro ${QMAKE_FLAGS[@]} && make ${MAKE_FLAGS[@]}
cd ..
qmake meshlab_mini.pro ${QMAKE_FLAGS[@]} && make ${MAKE_FLAGS[@]}
qmake meshlab_full.pro ${QMAKE_FLAGS[@]} && make ${MAKE_FLAGS[@]}
./distrib/meshlab
点云数据集下载:
http://www.pointclouds.org/news/2013/01/07/point-cloud-data-sets/
https://github.com/PointCloudLibrary/data
spple@spple:~$ sudo apt-get install libpcl-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
libpcl-dev 已经是最新版 (1.7.2-14build1)。
PCL教程-百度文库:
https://wenku.baidu.com/u/2008nmj?from=wenku
PCL-phD教程:
http://robotica.unileon.es/index.php/PCL/OpenNI_tutorial_2:_Cloud_processing_(basic)
http://robotica.unileon.es/index.php/PhD-3D-Object-Tracking
cmake_minimum_required(VERSION 3.12)
project(PCL_demo1)
set(CMAKE_CXX_STANDARD 14)
#find_package(PCL CONFIG REQUIRED)
#/media/spple/新加卷/Dataset/pcl-master/install/share/pcl-1.9
set(PCL_DIR "/media/spple/新加卷/Dataset/pcl-master/install/share/pcl-1.9/")
find_package(PCL REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4")
add_executable(PCL_demo1 main_ply.cpp)
target_link_libraries (PCL_demo1 ${PCL_LIBRARIES})
#include <iostream>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/io/ply_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/visualization/pcl_visualizer.h>
using namespace std;
using namespace pcl;
using namespace io;
int main() {
PointCloud<PointXYZ>::Ptr cloud(new PointCloud<PointXYZ>);
if (pcl::io::loadPCDFile<pcl::PointXYZ>("../ball_1_1_3.pcd", *cloud) == -1) { // 读取.ply文件
cerr << "can't read file bunny.pcd" << endl;
return -1;
}
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D Viewer"));
pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZ> fildColor(cloud, "z"); // 按照z字段进行渲染
viewer->addPointCloud<pcl::PointXYZ>(cloud, fildColor, "sample cloud");
viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 3, "sample cloud"); // 设置点云大小
viewer->setBackgroundColor(1,1,1);
while (!viewer->wasStopped())
{
viewer->spinOnce(100);
}
return (0);
}
#include <iostream>
#include <string>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/io/ply_io.h>
#include <pcl/io/vtk_lib_io.h>
#include <pcl/visualization/cloud_viewer.h>
#include <pcl/PolygonMesh.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/io/ply_io.h>
//这个只能读取小文件
int displayply(std::string ply_path){
//PointNormal
//PointXYZRGB
//PointXYZRGBNormal
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>);
if (pcl::io::loadPLYFile<pcl::PointXYZRGB>(ply_path, *cloud) == -1) //* load the file
{
PCL_ERROR("文件读取失败! \n");
system("PAUSE");
return (-1);
}
// pcl::PolygonMesh mesh;
// if (pcl::io::loadPolygonFilePLY(ply_path, mesh) == -1) //* load the file
// {
// PCL_ERROR("文件读取失败! \n");
// system("PAUSE");
// return (-1);
// }
// //pcl::StatisticalOutlierRemoval::applyFileter()
pcl::visualization::CloudViewer viewer("Viewer");
viewer.showCloud(cloud);
while (!viewer.wasStopped()){ };
return 0;
}
int readply(std::string ply_path){
pcl::PolygonMesh mesh;
if (pcl::io::loadPLYFile(ply_path, mesh))
{
std::cout << "文件读取失败!";
}
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("3D viewer window"));
viewer->addPolygonMesh(mesh, "mesh");
while (!viewer->wasStopped())
{
viewer->spinOnce();
}
return 0;
}
int main()
{
std::string name;
//displayply("../ScannerS2019_9_9.ply");
displayply("../ball_1_1_1.pcd");
//readply("../ScannerS2019_9_9.ply");
//readply("../obj_1.ply");
return 0;
}
从零开始一起学习SLAM | 你好,点云
https://www.cnblogs.com/CV-life/p/10105480.html
如何使用PCL将XYZRGB点云转换为彩色mesh模型
https://blog.csdn.net/Sparta_117/article/details/78134819
5张彩色图+5张深度图+PCL= 点云拼接
https://blog.csdn.net/weixin_40353209/article/details/81381946