This commit is contained in:
Tang1705
2020-05-24 23:15:27 +08:00
parent 5c923ee2d4
commit 5faeff5be1
50 changed files with 104666 additions and 4077 deletions

3
.gitignore vendored
View File

@@ -361,5 +361,4 @@ FodyWeavers.xsd
# 忽略指定文件夹
.vs/
Lib/
x64/
Lib/

53
Classes/HisThread.cpp Normal file
View File

@@ -0,0 +1,53 @@
#include "HisThread.h"
HisThread::HisThread(PointCloud<PointXYZRGB>* cloudArg, PolygonMesh* meshArg)
{
mesh = meshArg;
cloud = cloudArg;
}
void HisThread::run()
{
PointCloud<PointXYZRGB>::Ptr finalCloud = cloud->makeShared();
NormalEstimation<PointXYZRGB, Normal> n;//法线估计对象
PointCloud<Normal>::Ptr normals(new PointCloud<Normal>);//存储估计的法线的指针
search::KdTree<PointXYZRGB>::Ptr tree(new search::KdTree<PointXYZRGB>);
tree->setInputCloud(finalCloud);
n.setInputCloud(finalCloud);
n.setSearchMethod(tree);
n.setKSearch(20);
n.compute(*normals); //计算法线结果存储在normals中
//将点云和法线放到一起
PointCloud<PointXYZRGBNormal>::Ptr cloud_with_normals(new PointCloud<PointXYZRGBNormal>);
concatenateFields(*finalCloud, *normals, *cloud_with_normals);
//创建搜索树
search::KdTree<PointXYZRGBNormal>::Ptr tree2(new search::KdTree<PointXYZRGBNormal>);
tree2->setInputCloud(cloud_with_normals);
//创建Poisson对象并设置参数
Poisson<PointXYZRGBNormal> pn;
pn.setConfidence(true); //是否使用法向量的大小作为置信信息。如果false所有法向量均归一化。
pn.setDegree(2); //设置参数degree[1,5],值越大越精细,耗时越久。
pn.setDepth(8); //树的最大深度求解2^d x 2^d x 2^d立方体元。由于八叉树自适应采样密度指定值仅为最大深度。
pn.setIsoDivide(8); //用于提取ISO等值面的算法的深度
pn.setManifold(true); //是否添加多边形的重心,当多边形三角化时。 设置流行标志如果设置为true则对多边形进行细分三角话时添加重心设置false则不添加
pn.setManifold(false);
pn.setOutputPolygons(false); //是否输出多边形网格(而不是三角化移动立方体的结果)
//pn.setSamplesPerNode(3.0); //设置落入一个八叉树结点中的样本点的最小数量。无噪声,[1.0-5.0],有噪声[15.-20.]平滑
pn.setSamplesPerNode(18); //设置落入一个八叉树结点中的样本点的最小数量。无噪声,[1.0-5.0],有噪声[15.-20.]平滑
pn.setScale(1.25); //设置用于重构的立方体直径和样本边界立方体直径的比率。
pn.setSolverDivide(8); //设置求解线性方程组的Gauss-Seidel迭代方法的深度
//pn.setIndices();
//设置搜索方法和输入点云
pn.setSearchMethod(tree2);
pn.setInputCloud(cloud_with_normals);
//执行重构
pn.performReconstruction(*mesh);
// auto pclData = PointCloudData::getInstance(cloud);
// pclData->getViewer()->removeAllPointClouds();
// pclData->getViewer()->addPolygonMesh(mesh, "my");
}

32
Classes/HisThread.h Normal file
View File

@@ -0,0 +1,32 @@
#pragma once
#include <qthread.h>
#include <pcl/point_types.h>
#include <pcl/io/vtk_lib_io.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/features/normal_3d_omp.h>
#include <pcl/features/normal_3d.h>
#include <pcl/surface/gp3.h>
#include <pcl/surface/poisson.h>
#include <pcl/PolygonMesh.h>
#include <pcl/features/normal_3d.h>
#include <pcl/features/normal_3d_omp.h>
using namespace std;
using namespace pcl;
class HisThread :
public QThread
{
public:
HisThread(PointCloud<PointXYZRGB>* cloud,PolygonMesh* meshArg);
~HisThread(){};
private:
PolygonMesh* mesh;// 多变形网格,用于存储结果
PointCloud<PointXYZRGB>* cloud;
protected:
void run();
};

View File

@@ -10,7 +10,10 @@ void MyThread::run()
if(!pcd.empty())
{
PointCloud<PointXYZRGB>::Ptr cloudPtr(new PointCloud<PointXYZRGB>);
io::loadPCDFile(pcd, *cloudPtr);
if (QString::fromStdString(pcd).endsWith(".pcd", Qt::CaseInsensitive))
io::loadPCDFile(pcd, *cloudPtr);
else if (QString::fromStdString(pcd).endsWith(".ply", Qt::CaseInsensitive))
io::loadPLYFile(pcd, *cloudPtr);
cloud = *cloudPtr;
}
@@ -29,7 +32,3 @@ PointCloud<PointXYZRGB> MyThread::getCloud()
{
return cloud;
}
MyThread::~MyThread()
{
}

View File

@@ -13,7 +13,7 @@ class MyThread :
{
public:
MyThread();
~MyThread();
~MyThread(){};
void setPcd(QString str);
PointCloud<PointXYZRGB> getCloud();

View File

@@ -3,6 +3,7 @@
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/io/vtk_lib_io.h>
#include <QtWidgets/QMainWindow>
#include "Reconstruction.h"
using namespace pcl;

View File

@@ -1,16 +1,21 @@
#include "Reconstruction.h"
#include "MyThread.h"
#include "YourThread.h"
Reconstruction::Reconstruction(QWidget* parent)
: QMainWindow(parent)
{
ui.setupUi(this);
this->setWindowIcon(QIcon(":/icon/image/common/icon.png"));
calibData = new CalibrationData();
calibrator = new Calibrator();
dirModel = new TreeModel(this);
td = new YourThread(&cloud);
t = new MyThread;
htd = new HisThread(&cloud, &mesh);
connect(td, SIGNAL(finished()), this, SLOT(setCloud()));
connect(t, SIGNAL(finished()), this, SLOT(setCloud()));
connect(htd, SIGNAL(finished()), this, SLOT(setCloud()));
device = Device::getInstance();
setStyle();
}
@@ -18,6 +23,15 @@ Reconstruction::Reconstruction(QWidget* parent)
#pragma region Style
void Reconstruction::setStyle()
{
boost::shared_ptr<visualization::PCLVisualizer> viewer(new visualization::PCLVisualizer("3D Viewer"));
viewer->setBackgroundColor(0.458, 0.529, 0.844);
viewer->initCameraParameters();
auto pclData = PointCloudData::getInstance(cloud);
pclData->setViewer(viewer);
pclData->setUI(ui);
ui.qvtkWidget->SetRenderWindow(viewer->getRenderWindow());
ui.qvtkWidget->update();
this->setContentsMargins(0, 0, 0, 0);
// this->setFixedSize(1240, 680);
// ui.centralWidget->setGeometry(0, 40, 1240, 680);
@@ -67,6 +81,7 @@ void Reconstruction::setPicStyle()
ui.pushButton_8->setEnabled(false);
ui.pushButton_9->setEnabled(false);
ui.pushButton_10->setEnabled(false);
ui.pushButton_19->setEnabled(false);
}
ui.label_21->setPixmap(QPixmap(":/icon/image/projection/novideo.jpg"));
@@ -97,8 +112,9 @@ void Reconstruction::setButtonStyle()
// 三维重建界面
ui.pushButton_13->setIcon(QIcon(":/icon/image/reconstruction/import.png"));
ui.pushButton_14->setIcon(QIcon(":/icon/image/reconstruction/export.png"));
ui.pushButton_15->setIcon(QIcon(":/icon/image/reconstruction/save2.png"));
ui.pushButton_15->setIcon(QIcon(":/icon/image/reconstruction/surface.png"));
ui.pushButton_16->setIcon(QIcon(":/icon/image/reconstruction/color.png"));
ui.pushButton_18->setIcon(QIcon(":/icon/image/reconstruction/help2.png"));
}
#pragma endregion
@@ -144,14 +160,15 @@ void pp_callback(const visualization::AreaPickingEvent& event, void* args)
auto pclData = PointCloudData::getInstance();
PointCloud<PointXYZRGB>::Ptr cloudPtr(new PointCloud<PointXYZRGB>);
cloudPtr = pclData->getCloud().makeShared();
int num = pclData->getNum();
auto num = pclData->getNum();
std::vector<int> indices;
if (event.getPointsIndices(indices) == -1)
return;
// cout << indices.size() << "\n";
PointCloud<PointXYZRGB>::Ptr clicked_points_3d(new PointCloud<PointXYZRGB>);
for (int i = 0; i < indices.size(); ++i)
if(indices.size()>0){
for (auto i = 0; i < indices.size(); ++i)
{
clicked_points_3d->points.push_back(cloudPtr->points.at(indices[i]));
}
@@ -165,30 +182,40 @@ void pp_callback(const visualization::AreaPickingEvent& event, void* args)
pclData->getViewer()->addPointCloud(clicked_points_3d, red, cloudName);
pclData->getViewer()->
setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 10, cloudName);
setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 10, cloudName);
// pclData->getViewer()->updatePointCloud(clicked_points_3d,"cloudName");
pclData->setIndices(indices);
pclData->getUI().qvtkWidget->SetRenderWindow(pclData->getViewer()->getRenderWindow());
pclData->getUI().qvtkWidget->update();
}
}
void Reconstruction::setCloud()
{
ui.label_9->setVisible(false);
if (loadingStatus)
if(possionStatus)
{
cloud = t->getCloud();
loadingStatus = false;
}
if (reconstructStatus)
auto pclData = PointCloudData::getInstance(cloud);
pclData->getViewer()->removeAllPointClouds();
pclData->getViewer()->addPolygonMesh(mesh, "my");
possionStatus = false;
}else
{
reconstructStatus = false;
}
cout << cloud[0].r;
if (loadingStatus)
{
cloud = t->getCloud();
loadingStatus = false;
}
updateQVTK(cloud, color);
if (reconstructStatus)
{
reconstructStatus = false;
}
cout << cloud[0].r;
updateQVTK(cloud, color);
}
}
void Reconstruction::updateQVTK(PointCloud<PointXYZRGB> cloud, QColor color)
@@ -568,12 +595,18 @@ void Reconstruction::on_pushButton_4_clicked()
}
ui.lineEdit->setText(fileName);
td->setPath(fileName.toStdString());
// 投影结构光图案
device->getProjector()->displayPattern(44);
// device->getProjector()->displayPattern(44);
// todo 接着进行投影操作
}
// 投影图案
void Reconstruction::on_pushButton_19_clicked()
{
device->getProjector()->displayPattern(44);
}
// 相机拍照
void Reconstruction::on_pushButton_9_clicked()
{
@@ -674,7 +707,9 @@ void Reconstruction::on_pushButton_17_clicked()
// 异常点选择
void Reconstruction::on_pushButton_11_clicked()
{
// todo 异常点选择
QMessageBox::information(this, tr("QMessageBox::information()"),
"Please press the 'X' in the keyboard to choose the outlier points!");
}
// 异常点剔除
@@ -711,7 +746,7 @@ void Reconstruction::on_pushButton_13_clicked()
QString fileName = QFileDialog::getOpenFileName(
this, tr("open multiple image file"),
"./", tr("PCD files(*.pcd);PLY files(*.ply);All files (*.*)")); // todo 文件类型待确认
"./", tr("PCD files(*.pcd);;PLY files(*.ply);;All files (*.*)")); // todo 文件类型待确认
if (fileName.isEmpty())
{
@@ -733,36 +768,36 @@ void Reconstruction::on_pushButton_13_clicked()
t->setPcd(fileName);
t->start();
loadingStatus = true;
// todo 存储文件或文件路径
}
// 导出结果
void Reconstruction::on_pushButton_14_clicked()
{
// todo 导出结果
}
// 保存截图
void Reconstruction::on_pushButton_15_clicked()
{
QString fileName = QFileDialog::getSaveFileName(this,
tr("save screen shot"),
"",
tr("*.png;; *.jpg;; *.bmp;; All files(*.*)"));
QString fileName=QFileDialog::getSaveFileName(this, tr("Save to file"),
"./", tr("PCD files(*.pcd);;PLY files(*.ply);;All files (*.*)"));
if (!fileName.isNull())
{
// 截图所选的控件暂时用 label_17 替代
QPixmap pix = QPixmap::grabWidget(ui.qvtkWidget);
pix.save(fileName);
if (fileName.endsWith(".pcd", Qt::CaseInsensitive))
io::savePCDFileBinary(fileName.toStdString(), cloud);
else if (fileName.endsWith(".ply", Qt::CaseInsensitive))
io::savePLYFileBinary(fileName.toStdString(), cloud);
}
}
// 泊松曲面重建
void Reconstruction::on_pushButton_15_clicked()
{
ui.label_9->setVisible(true);
QCoreApplication::processEvents();
htd->start();
possionStatus = true;
}
// 颜色选取
void Reconstruction::on_pushButton_16_clicked()
{
auto pclData = PointCloudData::getInstance(cloud);
QColor colortmp = QColorDialog::getColor(Qt::black);
if (colortmp.isValid())
{
@@ -777,4 +812,5 @@ void Reconstruction::on_pushButton_18_clicked()
Help* help = new Help();
help->show();
}
#pragma endregion
#pragma endregion

View File

@@ -13,8 +13,19 @@
#include "ui_Reconstruction.h"
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl/io/ply_io.h>
#include <pcl/io/png_io.h>
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/io/vtk_lib_io.h>
#include <vtkOutputwindow.h>
#include <pcl\filters\statistical_outlier_removal.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/common/transforms.h>
#include <vector>
#include <pcl/io/obj_io.h>
#include <pcl/PolygonMesh.h>
#include <pcl/features/normal_3d.h>
#include <pcl/features/normal_3d_omp.h>
#include <vtkRenderWindow.h>
#include <QProgressDialog>
#include "Camera.h"
@@ -24,17 +35,19 @@
#include "Calibrator.h"
#include "CalibrationData.h"
#include "Device.h"
#include "HisThread.h"
#include "CoreAlgorithm.h"
#include "MyThread.h"
#include "YourThread.h"
#include "PointCloudData.h"
#include "Help.h"
#include <iostream>
using namespace pcl;
using namespace std;
enum Role { ImageFilenameRole = Qt::UserRole, GrayImageRole, ColorImageRole };
class MyThread;
class YourThread;
class Reconstruction : public QMainWindow
{
Q_OBJECT
@@ -67,8 +80,11 @@ private:
bool reconstructStatus = false; // 点云渲染
// 点云多线程
MyThread* t;
MyThread *t;
HisThread* htd;
PolygonMesh mesh;
bool loadingStatus = false; // 点云渲染
bool possionStatus = false;
void setStyle();
void setPicStyle();
void setButtonStyle();
@@ -93,6 +109,7 @@ private slots:
void on_pushButton_16_clicked();
void on_pushButton_17_clicked();
void on_pushButton_18_clicked();
void on_pushButton_19_clicked();
void setPicAction(QString action);
void setCloud();
};

View File

@@ -48,7 +48,7 @@ void YourThread::run()
kp.at<float>(i, j) = m3[i][j];
auto cArg = CameraArguments::getInstance(r, t, kc, kp);
CoreAlgorithm testCase = CoreAlgorithm("./Data/image/reconstruction/tq.png", cArg);
CoreAlgorithm testCase = CoreAlgorithm(path, cArg);
testCase.run();
vector<Mat> coordinates=testCase.getCoordinates();
cloud->width = coordinates.size();
@@ -66,4 +66,9 @@ void YourThread::run()
auto pclData = PointCloudData::getInstance(*cloud);
pclData->setCloud(*cloud);
}
void YourThread::setPath(string pathArg)
{
path = pathArg;
}

View File

@@ -3,7 +3,6 @@
#include <qthread.h>
#include <pcl/point_types.h>
#include <pcl/io/vtk_lib_io.h>
#include "CoreAlgorithm.h"
#include "PointCloudData.h"
using namespace std;
@@ -14,10 +13,13 @@ class YourThread :
{
public:
YourThread(PointCloud<PointXYZRGB> *cloud);
~YourThread(){};
~YourThread(){}
void setPath(string pathArg);
private:
PointCloud<PointXYZRGB> *cloud;
string path;
protected:
void run();
};

View File

@@ -5,8 +5,8 @@
int main(int argc, char *argv[])
{
AllocConsole();//分配控制台
freopen("CONOUT$", "w+t", stdout);//向控制台输出
// AllocConsole();//分配控制台
// freopen("CONOUT$", "w+t", stdout);//向控制台输出
QApplication a(argc, argv);
Loading l;
l.show();

100011
Data/result/rail.pcd Normal file

File diff suppressed because it is too large Load Diff

73
Reconstruction.rc Normal file
View File

@@ -0,0 +1,73 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource1.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// 中文(简体,中国) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource1.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1 ICON "icon1.ico"
IDI_ICON2 ICON "D:\\BJTU\\Reconstruction\\Resources\\image\\common\\icon.ico"
#endif // 中文(简体,中国) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@@ -43,8 +43,8 @@
<LibraryPath>D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\Boost\lib;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\FLANN\lib;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\Qhull\lib;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\VTK\lib;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\lib;C:\Program Files\OpenNI2\Lib;D:\BJTU\Reconstruction\Lib\FlyCapture2\lib64;D:\BJTU\Reconstruction\Lib\FlyCapture2\lib64\vs2015;D:\BJTU\Reconstruction\Lib\opencv\build\x64\vc15\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<IncludePath>D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\Qhull\include;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\FLANN\include;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\Eigen\eigen3;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\Boost\include\boost-1_64;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\include\pcl-1.8;C:\Program Files\OpenNI2\Include;$(IncludePath)</IncludePath>
<LibraryPath>D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\Boost\lib;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\FLANN\lib;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\Qhull\lib;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\VTK\lib;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\lib;C:\Program Files\OpenNI2\Lib;$(LibraryPath)</LibraryPath>
<IncludePath>D:\BJTU\Reconstruction\Lib\opencv\build\include\opencv2;D:\BJTU\Reconstruction\Lib\opencv\build\include;D:\BJTU\Reconstruction\Lib\FlyCapture2\include;D:\BJTU\Reconstruction\Lib\FlyCapture2\include\C;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\VTK\include\vtk-8.0;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\Qhull\include;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\FLANN\include;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\Eigen\eigen3;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\Boost\include\boost-1_64;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\include\pcl-1.8;C:\Program Files\OpenNI2\Include;$(IncludePath)</IncludePath>
<LibraryPath>D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\VTK\lib;D:\BJTU\Reconstruction\Lib\opencv\build\x64\vc15\lib;D:\BJTU\Reconstruction\Lib\FlyCapture2\lib64\vs2015;D:\BJTU\Reconstruction\Lib\FlyCapture2\lib64;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\Boost\lib;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\FLANN\lib;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\3rdParty\Qhull\lib;D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\lib;C:\Program Files\OpenNI2\Lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
<Import Project="$(QtMsBuild)\qt_defaults.props" />
@@ -90,7 +90,7 @@
<SubSystem>Windows</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<AdditionalDependencies>pcl_common_release.lib;pcl_features_release.lib;pcl_filters_release.lib;pcl_io_ply_debug.lib;pcl_io_release.lib;pcl_kdtree_release.lib;pcl_keypoints_release.lib;pcl_ml_release.lib;pcl_octree_release.lib;pcl_outofcore_release.lib;pcl_people_release.lib;pcl_recognition_release.lib;pcl_registration_release.lib;pcl_sample_consensus_release.lib;pcl_search_release.lib;pcl_segmentation_release.lib;pcl_stereo_release.lib;pcl_surface_release.lib;pcl_tracking_release.lib;pcl_visualization_release.lib;vtkalglib-8.0.lib;vtkChartsCore-8.0.lib;vtkCommonColor-8.0.lib;vtkCommonComputationalGeometry-8.0.lib;vtkCommonCore-8.0.lib;vtkCommonDataModel-8.0.lib;vtkCommonExecutionModel-8.0.lib;vtkCommonMath-8.0.lib;vtkCommonMisc-8.0.lib;vtkCommonSystem-8.0.lib;vtkCommonTransforms-8.0.lib;vtkDICOMParser-8.0.lib;vtkDomainsChemistry-8.0.lib;vtkDomainsChemistryOpenGL2-8.0.lib;vtkexoIIc-8.0.lib;vtkexpat-8.0.lib;vtkFiltersAMR-8.0.lib;vtkFiltersCore-8.0.lib;vtkFiltersExtraction-8.0.lib;vtkFiltersFlowPaths-8.0.lib;vtkFiltersGeneral-8.0.lib;vtkFiltersGeneric-8.0.lib;vtkFiltersGeometry-8.0.lib;vtkFiltersHybrid-8.0.lib;vtkFiltersHyperTree-8.0.lib;vtkFiltersImaging-8.0.lib;vtkFiltersModeling-8.0.lib;vtkFiltersParallel-8.0.lib;vtkFiltersParallelImaging-8.0.lib;vtkFiltersPoints-8.0.lib;vtkFiltersProgrammable-8.0.lib;vtkFiltersSelection-8.0.lib;vtkFiltersSMP-8.0.lib;vtkFiltersSources-8.0.lib;vtkFiltersStatistics-8.0.lib;vtkFiltersTexture-8.0.lib;vtkFiltersTopology-8.0.lib;vtkFiltersVerdict-8.0.lib;vtkfreetype-8.0.lib;vtkGeovisCore-8.0.lib;vtkgl2ps-8.0.lib;vtkglew-8.0.lib;vtkGUISupportQt-8.0.lib;vtkGUISupportQtSQL-8.0.lib;vtkhdf5-8.0.lib;vtkhdf5_hl-8.0.lib;vtkImagingColor-8.0.lib;vtkImagingCore-8.0.lib;vtkImagingFourier-8.0.lib;vtkImagingGeneral-8.0.lib;vtkImagingHybrid-8.0.lib;vtkImagingMath-8.0.lib;vtkImagingMorphological-8.0.lib;vtkImagingSources-8.0.lib;vtkImagingStatistics-8.0.lib;vtkImagingStencil-8.0.lib;vtkInfovisCore-8.0.lib;vtkInfovisLayout-8.0.lib;vtkInteractionImage-8.0.lib;vtkInteractionStyle-8.0.lib;vtkInteractionWidgets-8.0.lib;vtkIOAMR-8.0.lib;vtkIOCore-8.0.lib;vtkIOEnSight-8.0.lib;vtkIOExodus-8.0.lib;vtkIOExport-8.0.lib;vtkIOExportOpenGL2-8.0.lib;vtkIOGeometry-8.0.lib;vtkIOImage-8.0.lib;vtkIOImport-8.0.lib;vtkIOInfovis-8.0.lib;vtkIOLegacy-8.0.lib;vtkIOLSDyna-8.0.lib;vtkIOMINC-8.0.lib;vtkIOMovie-8.0.lib;vtkIONetCDF-8.0.lib;vtkIOParallel-8.0.lib;vtkIOParallelXML-8.0.lib;vtkIOPLY-8.0.lib;vtkIOSQL-8.0.lib;vtkIOTecplotTable-8.0.lib;vtkIOVideo-8.0.lib;vtkIOXML-8.0.lib;vtkIOXMLParser-8.0.lib;vtkjpeg-8.0.lib;vtkjsoncpp-8.0.lib;vtklibharu-8.0.lib;vtklibxml2-8.0.lib;vtklz4-8.0.lib;vtkmetaio-8.0.lib;vtkNetCDF-8.0.lib;vtknetcdf_c++.lib;vtkoggtheora-8.0.lib;vtkParallelCore-8.0.lib;vtkpng-8.0.lib;vtkproj4-8.0.lib;vtkRenderingAnnotation-8.0.lib;vtkRenderingContext2D-8.0.lib;vtkRenderingContextOpenGL2-8.0.lib;vtkRenderingCore-8.0.lib;vtkRenderingFreeType-8.0.lib;vtkRenderingGL2PSOpenGL2-8.0.lib;vtkRenderingImage-8.0.lib;vtkRenderingLabel-8.0.lib;vtkRenderingLOD-8.0.lib;vtkRenderingOpenGL2-8.0.lib;vtkRenderingQt-8.0.lib;vtkRenderingVolume-8.0.lib;vtkRenderingVolumeOpenGL2-8.0.lib;vtksqlite-8.0.lib;vtksys-8.0.lib;vtktiff-8.0.lib;vtkverdict-8.0.lib;vtkViewsContext2D-8.0.lib;vtkViewsCore-8.0.lib;vtkViewsInfovis-8.0.lib;vtkViewsQt-8.0.lib;vtkzlib-8.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>setupapi.lib;opencv_world420.lib;FlyCapture2_v140.lib;FlyCapture2GUI_v140.lib;qtmain.lib;shell32.lib;Qt5Widgets.lib;Qt5Gui.lib;Qt5Core.lib;pcl_common_release.lib;pcl_features_release.lib;pcl_filters_release.lib;pcl_io_ply_release.lib;pcl_io_release.lib;pcl_kdtree_release.lib;pcl_keypoints_release.lib;pcl_ml_release.lib;pcl_octree_release.lib;pcl_outofcore_release.lib;pcl_people_release.lib;pcl_recognition_release.lib;pcl_registration_release.lib;pcl_sample_consensus_release.lib;pcl_search_release.lib;pcl_segmentation_release.lib;pcl_stereo_release.lib;pcl_surface_release.lib;pcl_tracking_release.lib;pcl_visualization_release.lib;flann.lib;flann_cpp.lib;flann_cpp_s.lib;flann_s.lib;qhull_d.lib;qhullcpp_d.lib;qhullstatic_d.lib;qhullstatic_r_d.lib;qhull_p_d.lib;qhull_r_d.lib;vtkGUISupportQt-8.0.lib;vtkRenderingOpenGL2-8.0.lib;vtkglew-8.0.lib;vtkInteractionImage-8.0.lib;vtkInteractionWidgets-8.0.lib;vtkFiltersHybrid-8.0.lib;vtkFiltersModeling-8.0.lib;vtkImagingGeneral-8.0.lib;vtkImagingHybrid-8.0.lib;vtkRenderingAnnotation-8.0.lib;vtkRenderingFreeType-8.0.lib;vtkfreetype-8.0.lib;vtkRenderingVolume-8.0.lib;vtkIOXML-8.0.lib;vtkIOXMLParser-8.0.lib;vtkexpat-8.0.lib;vtkInteractionStyle-8.0.lib;vtkFiltersExtraction-8.0.lib;vtkFiltersStatistics-8.0.lib;vtkImagingFourier-8.0.lib;vtkalglib-8.0.lib;vtkImagingSources-8.0.lib;vtkIOImage-8.0.lib;vtkDICOMParser-8.0.lib;vtkmetaio-8.0.lib;vtkpng-8.0.lib;vtktiff-8.0.lib;vtkjpeg-8.0.lib;vtkImagingColor-8.0.lib;vtkImagingCore-8.0.lib;vtkRenderingCore-8.0.lib;vtkFiltersSources-8.0.lib;vtkFiltersGeneral-8.0.lib;vtkCommonComputationalGeometry-8.0.lib;vtkCommonColor-8.0.lib;vtkFiltersGeometry-8.0.lib;vtkFiltersCore-8.0.lib;vtkIOCore-8.0.lib;vtkCommonExecutionModel-8.0.lib;vtkCommonDataModel-8.0.lib;vtkCommonTransforms-8.0.lib;vtkCommonMisc-8.0.lib;vtkCommonMath-8.0.lib;vtkCommonSystem-8.0.lib;vtkCommonCore-8.0.lib;vtksys-8.0.lib</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
@@ -126,6 +126,7 @@
<ClCompile Include="Classes\gammaln.cpp" />
<ClCompile Include="Classes\Help.cpp" />
<ClCompile Include="Classes\hid.Win.c" />
<ClCompile Include="Classes\HisThread.cpp" />
<ClCompile Include="Classes\ifft.cpp" />
<ClCompile Include="Classes\Loading.cpp" />
<ClCompile Include="Classes\log2.cpp" />
@@ -157,8 +158,10 @@
<ClInclude Include="Classes\Camera.h" />
<ClInclude Include="Classes\CameraPointGrey.h" />
<ClInclude Include="Classes\CameraArguments.h" />
<ClInclude Include="Classes\HisThread.h" />
<ClInclude Include="Classes\PointCloudData.h" />
<ClInclude Include="Classes\YourThread.h" />
<ClInclude Include="resource1.h" />
<QtMoc Include="Classes\Loading.h" />
<QtMoc Include="Classes\DisplayPic.h" />
<ClInclude Include="Classes\Common.h" />
@@ -197,6 +200,13 @@
<ClInclude Include="Classes\usb.h" />
<ClInclude Include="Classes\wavCFandSD.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Reconstruction.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="icon1.ico" />
<Image Include="Resources\image\common\icon.ico" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">
<Import Project="$(QtMsBuild)\qt.targets" />

View File

@@ -62,6 +62,11 @@
<Filter Include="src\reconstruction\pointcloud">
<UniqueIdentifier>{cdf9f84f-4a3a-4fc8-b596-038eb3990675}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
<ParseFiles>true</ParseFiles>
</Filter>
</ItemGroup>
<ItemGroup>
<QtUic Include="UI\Reconstruction.ui">
@@ -147,9 +152,6 @@
<ClCompile Include="Classes\rt_nonfinite.cpp">
<Filter>src\reconstruction\cwt</Filter>
</ClCompile>
<ClCompile Include="Classes\MyThread.cpp">
<Filter>src\scene\resultscene</Filter>
</ClCompile>
<ClCompile Include="Classes\CalibrationData.cpp">
<Filter>src\reconstruction\calibrator</Filter>
</ClCompile>
@@ -204,6 +206,12 @@
<ClCompile Include="Classes\PointCloudData.cpp">
<Filter>src\reconstruction\pointcloud</Filter>
</ClCompile>
<ClCompile Include="Classes\MyThread.cpp">
<Filter>src\scene\resultscene</Filter>
</ClCompile>
<ClCompile Include="Classes\HisThread.cpp">
<Filter>src\scene\resultscene</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtMoc Include="Classes\Reconstruction.h">
@@ -354,5 +362,18 @@
<ClInclude Include="Classes\PointCloudData.h">
<Filter>src\reconstruction\pointcloud</Filter>
</ClInclude>
<ClInclude Include="Classes\HisThread.h">
<Filter>src\scene\resultscene</Filter>
</ClInclude>
<ClInclude Include="resource1.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="Reconstruction.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="icon1.ico" />
<Image Include="Resources\image\common\icon.ico" />
</ItemGroup>
</Project>

View File

@@ -21,6 +21,9 @@
<file>image/loading/label.png</file>
<file>image/loading/press.png</file>
<file>image/reconstruction/loading.png</file>
<file>image/reconstruction/surface.png</file>
<file>image/reconstruction/help2.png</file>
<file>image/common/icon.png</file>
</qresource>
<qresource prefix="/qss">
<file>qss/flat.qss</file>

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 818 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -69,7 +69,7 @@
<string notr="true"/>
</property>
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<widget class="QWidget" name="page">
<widget class="QLabel" name="label_2">
@@ -758,7 +758,7 @@
<x>700</x>
<y>50</y>
<width>281</width>
<height>311</height>
<height>291</height>
</rect>
</property>
<property name="font">
@@ -779,7 +779,7 @@
<x>10</x>
<y>20</y>
<width>261</width>
<height>281</height>
<height>261</height>
</rect>
</property>
<property name="font">
@@ -793,9 +793,9 @@
<property name="geometry">
<rect>
<x>710</x>
<y>380</y>
<y>350</y>
<width>261</width>
<height>251</height>
<height>281</height>
</rect>
</property>
<property name="font">
@@ -814,7 +814,7 @@
<property name="geometry">
<rect>
<x>70</x>
<y>20</y>
<y>80</y>
<width>120</width>
<height>51</height>
</rect>
@@ -838,7 +838,7 @@
<property name="geometry">
<rect>
<x>70</x>
<y>100</y>
<y>150</y>
<width>120</width>
<height>51</height>
</rect>
@@ -862,7 +862,7 @@
<property name="geometry">
<rect>
<x>70</x>
<y>180</y>
<y>220</y>
<width>120</width>
<height>51</height>
</rect>
@@ -882,6 +882,30 @@
<string>开始重建</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_19">
<property name="geometry">
<rect>
<x>70</x>
<y>10</y>
<width>120</width>
<height>51</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<family>黑体</family>
</font>
</property>
<property name="text">
<string>投影图案</string>
</property>
</widget>
</widget>
<zorder>groupBox_8</zorder>
<zorder>label_3</zorder>
@@ -895,10 +919,10 @@
<widget class="QGroupBox" name="groupBox_4">
<property name="geometry">
<rect>
<x>800</x>
<x>785</x>
<y>70</y>
<width>181</width>
<height>191</height>
<width>201</width>
<height>171</height>
</rect>
</property>
<property name="font">
@@ -915,36 +939,10 @@
<property name="flat">
<bool>false</bool>
</property>
<widget class="QSlider" name="horizontalSlider">
<property name="geometry">
<rect>
<x>90</x>
<y>90</y>
<width>81</width>
<height>22</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QLabel" name="label_13">
<property name="geometry">
<rect>
<x>10</x>
<y>90</y>
<width>61</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>点的大小</string>
</property>
</widget>
<widget class="QLabel" name="label_12">
<property name="geometry">
<rect>
<x>10</x>
<x>20</x>
<y>50</y>
<width>61</width>
<height>16</height>
@@ -958,9 +956,9 @@
<property name="geometry">
<rect>
<x>70</x>
<y>130</y>
<y>100</y>
<width>51</width>
<height>21</height>
<height>31</height>
</rect>
</property>
<property name="text">
@@ -970,10 +968,10 @@
<widget class="QPushButton" name="pushButton_12">
<property name="geometry">
<rect>
<x>130</x>
<y>130</y>
<x>140</x>
<y>100</y>
<width>51</width>
<height>21</height>
<height>31</height>
</rect>
</property>
<property name="text">
@@ -984,7 +982,7 @@
<property name="geometry">
<rect>
<x>10</x>
<y>130</y>
<y>110</y>
<width>51</width>
<height>16</height>
</rect>
@@ -996,7 +994,7 @@
<widget class="QPushButton" name="pushButton_16">
<property name="geometry">
<rect>
<x>90</x>
<x>100</x>
<y>40</y>
<width>51</width>
<height>31</height>
@@ -1010,8 +1008,8 @@
<widget class="QPushButton" name="pushButton_13">
<property name="geometry">
<rect>
<x>820</x>
<y>310</y>
<x>815</x>
<y>290</y>
<width>141</width>
<height>41</height>
</rect>
@@ -1028,8 +1026,8 @@
<widget class="QPushButton" name="pushButton_14">
<property name="geometry">
<rect>
<x>820</x>
<y>390</y>
<x>815</x>
<y>380</y>
<width>141</width>
<height>41</height>
</rect>
@@ -1046,7 +1044,7 @@
<widget class="QPushButton" name="pushButton_15">
<property name="geometry">
<rect>
<x>820</x>
<x>815</x>
<y>470</y>
<width>141</width>
<height>41</height>
@@ -1058,7 +1056,7 @@
</font>
</property>
<property name="text">
<string>保存截图</string>
<string>曲面重建</string>
</property>
</widget>
<widget class="QVTKWidget" name="qvtkWidget">
@@ -1096,8 +1094,8 @@
<widget class="QPushButton" name="pushButton_18">
<property name="geometry">
<rect>
<x>820</x>
<y>550</y>
<x>815</x>
<y>560</y>
<width>141</width>
<height>41</height>
</rect>
@@ -1108,7 +1106,7 @@
</font>
</property>
<property name="text">
<string>帮助</string>
<string>使用帮助</string>
</property>
</widget>
</widget>

BIN
icon1.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,42 +1,2 @@
Reconstruction.cpp
Unknown compiler version - please run the configure tests and report the results
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_math_defines.h(17,1): warning C4005: “M_E”: 宏重定义
D:\Qt\5.12.3\msvc2017_64\include\QtCore\qmath.h(155): message : 参见“M_E”的前一个定义
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_math_defines.h(18,1): warning C4005: “M_LOG2E”: 宏重定义
D:\Qt\5.12.3\msvc2017_64\include\QtCore\qmath.h(159): message : 参见“M_LOG2E”的前一个定义
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_math_defines.h(19,1): warning C4005: “M_LOG10E”: 宏重定义
D:\Qt\5.12.3\msvc2017_64\include\QtCore\qmath.h(163): message : 参见“M_LOG10E”的前一个定义
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_math_defines.h(20,1): warning C4005: “M_LN2”: 宏重定义
D:\Qt\5.12.3\msvc2017_64\include\QtCore\qmath.h(167): message : 参见“M_LN2”的前一个定义
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_math_defines.h(21,1): warning C4005: “M_LN10”: 宏重定义
D:\Qt\5.12.3\msvc2017_64\include\QtCore\qmath.h(171): message : 参见“M_LN10”的前一个定义
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_math_defines.h(22,1): warning C4005: “M_PI”: 宏重定义
D:\Qt\5.12.3\msvc2017_64\include\QtCore\qmath.h(175): message : 参见“M_PI”的前一个定义
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_math_defines.h(23,1): warning C4005: “M_PI_2”: 宏重定义
D:\Qt\5.12.3\msvc2017_64\include\QtCore\qmath.h(179): message : 参见“M_PI_2”的前一个定义
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_math_defines.h(24,1): warning C4005: “M_PI_4”: 宏重定义
D:\Qt\5.12.3\msvc2017_64\include\QtCore\qmath.h(183): message : 参见“M_PI_4”的前一个定义
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_math_defines.h(25,1): warning C4005: “M_1_PI”: 宏重定义
D:\Qt\5.12.3\msvc2017_64\include\QtCore\qmath.h(187): message : 参见“M_1_PI”的前一个定义
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_math_defines.h(26,1): warning C4005: “M_2_PI”: 宏重定义
D:\Qt\5.12.3\msvc2017_64\include\QtCore\qmath.h(191): message : 参见“M_2_PI”的前一个定义
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_math_defines.h(27,1): warning C4005: “M_2_SQRTPI”: 宏重定义
D:\Qt\5.12.3\msvc2017_64\include\QtCore\qmath.h(195): message : 参见“M_2_SQRTPI”的前一个定义
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_math_defines.h(28,1): warning C4005: “M_SQRT2”: 宏重定义
D:\Qt\5.12.3\msvc2017_64\include\QtCore\qmath.h(199): message : 参见“M_SQRT2”的前一个定义
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\corecrt_math_defines.h(29,1): warning C4005: “M_SQRT1_2”: 宏重定义
D:\Qt\5.12.3\msvc2017_64\include\QtCore\qmath.h(203): message : 参见“M_SQRT1_2”的前一个定义
D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\include\pcl-1.8\pcl\point_traits.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\include\pcl-1.8\pcl\visualization\interactor_style.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\BJTU\Reconstruction\Lib\PCL\PCL 1.8.1\include\pcl-1.8\pcl\visualization\pcl_visualizer.h(1585,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\BJTU\Reconstruction\Lib\FlyCapture2\include\FlyCapture2.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\BJTU\Reconstruction\Lib\FlyCapture2\include\Error.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\BJTU\Reconstruction\Lib\FlyCapture2\include\CameraBase.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\BJTU\Reconstruction\Lib\FlyCapture2\include\GigECamera.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\BJTU\Reconstruction\Lib\FlyCapture2\include\Image.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\BJTU\Reconstruction\Lib\FlyCapture2\include\Utilities.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\BJTU\Reconstruction\Lib\FlyCapture2\include\AVIRecorder.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\BJTU\Reconstruction\Lib\FlyCapture2\include\TopologyNode.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\BJTU\Reconstruction\Lib\FlyCapture2\include\ImageStatistics.h(1,1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\BJTU\Reconstruction\Classes\Reconstruction.cpp(150,43): warning C4806: “==”: 不安全操作: 从类型“bool”提升到类型“int”的值不能等于给定的常量
Reading Qt configuration (D:\Qt\5.12.3\msvc2017_64\bin\qmake.exe)
Reconstruction.vcxproj -> D:\BJTU\Reconstruction\x64\Debug\Reconstruction.exe

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -21,8 +21,8 @@ QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_Reconstruction_t {
QByteArrayData data[23];
char stringdata0[484];
QByteArrayData data[24];
char stringdata0[509];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
@@ -51,9 +51,10 @@ QT_MOC_LITERAL(16, 355, 24), // "on_pushButton_15_clicked"
QT_MOC_LITERAL(17, 380, 24), // "on_pushButton_16_clicked"
QT_MOC_LITERAL(18, 405, 24), // "on_pushButton_17_clicked"
QT_MOC_LITERAL(19, 430, 24), // "on_pushButton_18_clicked"
QT_MOC_LITERAL(20, 455, 12), // "setPicAction"
QT_MOC_LITERAL(21, 468, 6), // "action"
QT_MOC_LITERAL(22, 475, 8) // "setCloud"
QT_MOC_LITERAL(20, 455, 24), // "on_pushButton_19_clicked"
QT_MOC_LITERAL(21, 480, 12), // "setPicAction"
QT_MOC_LITERAL(22, 493, 6), // "action"
QT_MOC_LITERAL(23, 500, 8) // "setCloud"
},
"Reconstruction\0on_pushButton_clicked\0"
@@ -70,7 +71,8 @@ QT_MOC_LITERAL(22, 475, 8) // "setCloud"
"on_pushButton_15_clicked\0"
"on_pushButton_16_clicked\0"
"on_pushButton_17_clicked\0"
"on_pushButton_18_clicked\0setPicAction\0"
"on_pushButton_18_clicked\0"
"on_pushButton_19_clicked\0setPicAction\0"
"action\0setCloud"
};
#undef QT_MOC_LITERAL
@@ -81,7 +83,7 @@ static const uint qt_meta_data_Reconstruction[] = {
8, // revision
0, // classname
0, 0, // classinfo
20, 14, // methods
21, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
@@ -89,26 +91,27 @@ static const uint qt_meta_data_Reconstruction[] = {
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 114, 2, 0x08 /* Private */,
3, 0, 115, 2, 0x08 /* Private */,
4, 0, 116, 2, 0x08 /* Private */,
5, 0, 117, 2, 0x08 /* Private */,
6, 0, 118, 2, 0x08 /* Private */,
7, 0, 119, 2, 0x08 /* Private */,
8, 0, 120, 2, 0x08 /* Private */,
9, 0, 121, 2, 0x08 /* Private */,
10, 0, 122, 2, 0x08 /* Private */,
11, 0, 123, 2, 0x08 /* Private */,
12, 0, 124, 2, 0x08 /* Private */,
13, 0, 125, 2, 0x08 /* Private */,
14, 0, 126, 2, 0x08 /* Private */,
15, 0, 127, 2, 0x08 /* Private */,
16, 0, 128, 2, 0x08 /* Private */,
17, 0, 129, 2, 0x08 /* Private */,
18, 0, 130, 2, 0x08 /* Private */,
19, 0, 131, 2, 0x08 /* Private */,
20, 1, 132, 2, 0x08 /* Private */,
22, 0, 135, 2, 0x08 /* Private */,
1, 0, 119, 2, 0x08 /* Private */,
3, 0, 120, 2, 0x08 /* Private */,
4, 0, 121, 2, 0x08 /* Private */,
5, 0, 122, 2, 0x08 /* Private */,
6, 0, 123, 2, 0x08 /* Private */,
7, 0, 124, 2, 0x08 /* Private */,
8, 0, 125, 2, 0x08 /* Private */,
9, 0, 126, 2, 0x08 /* Private */,
10, 0, 127, 2, 0x08 /* Private */,
11, 0, 128, 2, 0x08 /* Private */,
12, 0, 129, 2, 0x08 /* Private */,
13, 0, 130, 2, 0x08 /* Private */,
14, 0, 131, 2, 0x08 /* Private */,
15, 0, 132, 2, 0x08 /* Private */,
16, 0, 133, 2, 0x08 /* Private */,
17, 0, 134, 2, 0x08 /* Private */,
18, 0, 135, 2, 0x08 /* Private */,
19, 0, 136, 2, 0x08 /* Private */,
20, 0, 137, 2, 0x08 /* Private */,
21, 1, 138, 2, 0x08 /* Private */,
23, 0, 141, 2, 0x08 /* Private */,
// slots: parameters
QMetaType::Void,
@@ -129,7 +132,8 @@ static const uint qt_meta_data_Reconstruction[] = {
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, 21,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, 22,
QMetaType::Void,
0 // eod
@@ -159,8 +163,9 @@ void Reconstruction::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _
case 15: _t->on_pushButton_16_clicked(); break;
case 16: _t->on_pushButton_17_clicked(); break;
case 17: _t->on_pushButton_18_clicked(); break;
case 18: _t->setPicAction((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 19: _t->setCloud(); break;
case 18: _t->on_pushButton_19_clicked(); break;
case 19: _t->setPicAction((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 20: _t->setCloud(); break;
default: ;
}
}
@@ -195,13 +200,13 @@ int Reconstruction::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 20)
if (_id < 21)
qt_static_metacall(this, _c, _id, _a);
_id -= 20;
_id -= 21;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 20)
if (_id < 21)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 20;
_id -= 21;
}
return _id;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -22,7 +22,6 @@
#include <QtWidgets/QMenu>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSlider>
#include <QtWidgets/QSpinBox>
#include <QtWidgets/QStackedWidget>
#include <QtWidgets/QStatusBar>
@@ -86,10 +85,9 @@ public:
QPushButton *pushButton_9;
QPushButton *pushButton_10;
QPushButton *pushButton_17;
QPushButton *pushButton_19;
QWidget *page_3;
QGroupBox *groupBox_4;
QSlider *horizontalSlider;
QLabel *label_13;
QLabel *label_12;
QPushButton *pushButton_11;
QPushButton *pushButton_12;
@@ -381,35 +379,40 @@ public:
label_18->setAlignment(Qt::AlignCenter);
groupBox_7 = new QGroupBox(page_2);
groupBox_7->setObjectName(QString::fromUtf8("groupBox_7"));
groupBox_7->setGeometry(QRect(700, 50, 281, 311));
groupBox_7->setGeometry(QRect(700, 50, 281, 291));
groupBox_7->setFont(font1);
groupBox_7->setAlignment(Qt::AlignCenter);
textBrowser_8 = new QTextBrowser(groupBox_7);
textBrowser_8->setObjectName(QString::fromUtf8("textBrowser_8"));
textBrowser_8->setGeometry(QRect(10, 20, 261, 281));
textBrowser_8->setGeometry(QRect(10, 20, 261, 261));
QFont font6;
font6.setPointSize(9);
textBrowser_8->setFont(font6);
groupBox_8 = new QGroupBox(page_2);
groupBox_8->setObjectName(QString::fromUtf8("groupBox_8"));
groupBox_8->setGeometry(QRect(710, 380, 261, 251));
groupBox_8->setGeometry(QRect(710, 350, 261, 281));
groupBox_8->setFont(font1);
groupBox_8->setAlignment(Qt::AlignCenter);
pushButton_9 = new QPushButton(groupBox_8);
pushButton_9->setObjectName(QString::fromUtf8("pushButton_9"));
pushButton_9->setGeometry(QRect(70, 20, 120, 51));
pushButton_9->setGeometry(QRect(70, 80, 120, 51));
pushButton_9->setMinimumSize(QSize(120, 0));
pushButton_9->setFont(font4);
pushButton_10 = new QPushButton(groupBox_8);
pushButton_10->setObjectName(QString::fromUtf8("pushButton_10"));
pushButton_10->setGeometry(QRect(70, 100, 120, 51));
pushButton_10->setGeometry(QRect(70, 150, 120, 51));
pushButton_10->setMinimumSize(QSize(120, 0));
pushButton_10->setFont(font4);
pushButton_17 = new QPushButton(groupBox_8);
pushButton_17->setObjectName(QString::fromUtf8("pushButton_17"));
pushButton_17->setGeometry(QRect(70, 180, 120, 51));
pushButton_17->setGeometry(QRect(70, 220, 120, 51));
pushButton_17->setMinimumSize(QSize(120, 0));
pushButton_17->setFont(font4);
pushButton_19 = new QPushButton(groupBox_8);
pushButton_19->setObjectName(QString::fromUtf8("pushButton_19"));
pushButton_19->setGeometry(QRect(70, 10, 120, 51));
pushButton_19->setMinimumSize(QSize(120, 0));
pushButton_19->setFont(font4);
stackedWidget->addWidget(page_2);
groupBox_8->raise();
label_3->raise();
@@ -422,43 +425,36 @@ public:
page_3->setObjectName(QString::fromUtf8("page_3"));
groupBox_4 = new QGroupBox(page_3);
groupBox_4->setObjectName(QString::fromUtf8("groupBox_4"));
groupBox_4->setGeometry(QRect(800, 70, 181, 191));
groupBox_4->setGeometry(QRect(785, 70, 201, 171));
groupBox_4->setFont(font4);
groupBox_4->setAlignment(Qt::AlignCenter);
groupBox_4->setFlat(false);
horizontalSlider = new QSlider(groupBox_4);
horizontalSlider->setObjectName(QString::fromUtf8("horizontalSlider"));
horizontalSlider->setGeometry(QRect(90, 90, 81, 22));
horizontalSlider->setOrientation(Qt::Horizontal);
label_13 = new QLabel(groupBox_4);
label_13->setObjectName(QString::fromUtf8("label_13"));
label_13->setGeometry(QRect(10, 90, 61, 16));
label_12 = new QLabel(groupBox_4);
label_12->setObjectName(QString::fromUtf8("label_12"));
label_12->setGeometry(QRect(10, 50, 61, 16));
label_12->setGeometry(QRect(20, 50, 61, 16));
pushButton_11 = new QPushButton(groupBox_4);
pushButton_11->setObjectName(QString::fromUtf8("pushButton_11"));
pushButton_11->setGeometry(QRect(70, 130, 51, 21));
pushButton_11->setGeometry(QRect(70, 100, 51, 31));
pushButton_12 = new QPushButton(groupBox_4);
pushButton_12->setObjectName(QString::fromUtf8("pushButton_12"));
pushButton_12->setGeometry(QRect(130, 130, 51, 21));
pushButton_12->setGeometry(QRect(140, 100, 51, 31));
label_14 = new QLabel(groupBox_4);
label_14->setObjectName(QString::fromUtf8("label_14"));
label_14->setGeometry(QRect(10, 130, 51, 16));
label_14->setGeometry(QRect(10, 110, 51, 16));
pushButton_16 = new QPushButton(groupBox_4);
pushButton_16->setObjectName(QString::fromUtf8("pushButton_16"));
pushButton_16->setGeometry(QRect(90, 40, 51, 31));
pushButton_16->setGeometry(QRect(100, 40, 51, 31));
pushButton_13 = new QPushButton(page_3);
pushButton_13->setObjectName(QString::fromUtf8("pushButton_13"));
pushButton_13->setGeometry(QRect(820, 310, 141, 41));
pushButton_13->setGeometry(QRect(815, 290, 141, 41));
pushButton_13->setFont(font4);
pushButton_14 = new QPushButton(page_3);
pushButton_14->setObjectName(QString::fromUtf8("pushButton_14"));
pushButton_14->setGeometry(QRect(820, 390, 141, 41));
pushButton_14->setGeometry(QRect(815, 380, 141, 41));
pushButton_14->setFont(font4);
pushButton_15 = new QPushButton(page_3);
pushButton_15->setObjectName(QString::fromUtf8("pushButton_15"));
pushButton_15->setGeometry(QRect(820, 470, 141, 41));
pushButton_15->setGeometry(QRect(815, 470, 141, 41));
pushButton_15->setFont(font4);
qvtkWidget = new QVTKWidget(page_3);
qvtkWidget->setObjectName(QString::fromUtf8("qvtkWidget"));
@@ -473,7 +469,7 @@ public:
label_9->setStyleSheet(QString::fromUtf8(""));
pushButton_18 = new QPushButton(page_3);
pushButton_18->setObjectName(QString::fromUtf8("pushButton_18"));
pushButton_18->setGeometry(QRect(820, 550, 141, 41));
pushButton_18->setGeometry(QRect(815, 560, 141, 41));
pushButton_18->setFont(font4);
stackedWidget->addWidget(page_3);
widget = new QWidget(centralWidget);
@@ -646,7 +642,7 @@ public:
retranslateUi(ReconstructionClass);
QObject::connect(spinBox, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));
stackedWidget->setCurrentIndex(0);
stackedWidget->setCurrentIndex(1);
QMetaObject::connectSlotsByName(ReconstructionClass);
@@ -684,8 +680,8 @@ public:
pushButton_9->setText(QApplication::translate("ReconstructionClass", "\347\233\270\346\234\272\346\213\215\347\205\247", nullptr));
pushButton_10->setText(QApplication::translate("ReconstructionClass", "\344\277\235\345\255\230\347\205\247\347\211\207", nullptr));
pushButton_17->setText(QApplication::translate("ReconstructionClass", "\345\274\200\345\247\213\351\207\215\345\273\272", nullptr));
pushButton_19->setText(QApplication::translate("ReconstructionClass", "\346\212\225\345\275\261\345\233\276\346\241\210", nullptr));
groupBox_4->setTitle(QApplication::translate("ReconstructionClass", "\350\256\276\347\275\256", nullptr));
label_13->setText(QApplication::translate("ReconstructionClass", "\347\202\271\347\232\204\345\244\247\345\260\217", nullptr));
label_12->setText(QApplication::translate("ReconstructionClass", "\351\242\234\350\211\262\351\200\211\346\213\251", nullptr));
pushButton_11->setText(QApplication::translate("ReconstructionClass", "\351\200\211\346\213\251", nullptr));
pushButton_12->setText(QApplication::translate("ReconstructionClass", "\345\211\224\351\231\244", nullptr));
@@ -693,9 +689,9 @@ public:
pushButton_16->setText(QString());
pushButton_13->setText(QApplication::translate("ReconstructionClass", "\345\257\274\345\205\245\347\202\271\344\272\221", nullptr));
pushButton_14->setText(QApplication::translate("ReconstructionClass", "\345\257\274\345\207\272\347\273\223\346\236\234", nullptr));
pushButton_15->setText(QApplication::translate("ReconstructionClass", "\344\277\235\345\255\230\346\210\252\345\233\276", nullptr));
pushButton_15->setText(QApplication::translate("ReconstructionClass", "\346\233\262\351\235\242\351\207\215\345\273\272", nullptr));
label_9->setText(QString());
pushButton_18->setText(QApplication::translate("ReconstructionClass", "\345\270\256\345\212\251", nullptr));
pushButton_18->setText(QApplication::translate("ReconstructionClass", "\344\275\277\347\224\250\345\270\256\345\212\251", nullptr));
label->setText(QApplication::translate("ReconstructionClass", "3D RECONSTRUCTION", nullptr));
label_4->setText(QApplication::translate("ReconstructionClass", "\345\212\237\350\203\275\351\200\211\346\213\251", nullptr));
pushButton->setText(QApplication::translate("ReconstructionClass", "\347\263\273\347\273\237\346\240\207\345\256\232", nullptr));

Binary file not shown.

Binary file not shown.

View File

@@ -4,6 +4,31 @@
<Qt_INCLUDEPATH_>D:\Qt\5.12.3\msvc2017_64\include;D:\Qt\5.12.3\msvc2017_64\include\QtWidgets;D:\Qt\5.12.3\msvc2017_64\include\QtGui;D:\Qt\5.12.3\msvc2017_64\include\QtANGLE;D:\Qt\5.12.3\msvc2017_64\include\QtCore;C:\VulkanSDK\1.0.51.0\include;D:\Qt\5.12.3\msvc2017_64\mkspecs\win32-msvc</Qt_INCLUDEPATH_>
<Qt_LIBS_>D:\Qt\5.12.3\msvc2017_64\lib\Qt5Widgets.lib;D:\Qt\5.12.3\msvc2017_64\lib\Qt5Gui.lib;D:\Qt\5.12.3\msvc2017_64\lib\Qt5Core.lib;D:\Qt\5.12.3\msvc2017_64\lib\qtmain.lib;shell32.lib</Qt_LIBS_>
<Qt_LIBPATH_>D:\Qt\5.12.3\msvc2017_64\lib;C:\openssl\lib;C:\Utils\my_sql\mysql-5.6.11-winx64\lib;C:\Utils\postgresql\pgsql\lib</Qt_LIBPATH_>
<QMake_QT_SYSROOT_></QMake_QT_SYSROOT_>
<QMake_QT_INSTALL_PREFIX_>D:/Qt/5.12.3/msvc2017_64</QMake_QT_INSTALL_PREFIX_>
<QMake_QT_INSTALL_ARCHDATA_>D:/Qt/5.12.3/msvc2017_64</QMake_QT_INSTALL_ARCHDATA_>
<QMake_QT_INSTALL_DATA_>D:/Qt/5.12.3/msvc2017_64</QMake_QT_INSTALL_DATA_>
<QMake_QT_INSTALL_DOCS_>D:/Qt/Docs/Qt-5.12.3</QMake_QT_INSTALL_DOCS_>
<QMake_QT_INSTALL_HEADERS_>D:/Qt/5.12.3/msvc2017_64/include</QMake_QT_INSTALL_HEADERS_>
<QMake_QT_INSTALL_LIBS_>D:/Qt/5.12.3/msvc2017_64/lib</QMake_QT_INSTALL_LIBS_>
<QMake_QT_INSTALL_LIBEXECS_>D:/Qt/5.12.3/msvc2017_64/bin</QMake_QT_INSTALL_LIBEXECS_>
<QMake_QT_INSTALL_BINS_>D:/Qt/5.12.3/msvc2017_64/bin</QMake_QT_INSTALL_BINS_>
<QMake_QT_INSTALL_TESTS_>D:/Qt/5.12.3/msvc2017_64/tests</QMake_QT_INSTALL_TESTS_>
<QMake_QT_INSTALL_PLUGINS_>D:/Qt/5.12.3/msvc2017_64/plugins</QMake_QT_INSTALL_PLUGINS_>
<QMake_QT_INSTALL_IMPORTS_>D:/Qt/5.12.3/msvc2017_64/imports</QMake_QT_INSTALL_IMPORTS_>
<QMake_QT_INSTALL_QML_>D:/Qt/5.12.3/msvc2017_64/qml</QMake_QT_INSTALL_QML_>
<QMake_QT_INSTALL_TRANSLATIONS_>D:/Qt/5.12.3/msvc2017_64/translations</QMake_QT_INSTALL_TRANSLATIONS_>
<QMake_QT_INSTALL_CONFIGURATION_></QMake_QT_INSTALL_CONFIGURATION_>
<QMake_QT_INSTALL_EXAMPLES_>D:/Qt/Examples/Qt-5.12.3</QMake_QT_INSTALL_EXAMPLES_>
<QMake_QT_INSTALL_DEMOS_>D:/Qt/Examples/Qt-5.12.3</QMake_QT_INSTALL_DEMOS_>
<QMake_QT_HOST_PREFIX_>D:/Qt/5.12.3/msvc2017_64</QMake_QT_HOST_PREFIX_>
<QMake_QT_HOST_DATA_>D:/Qt/5.12.3/msvc2017_64</QMake_QT_HOST_DATA_>
<QMake_QT_HOST_BINS_>D:/Qt/5.12.3/msvc2017_64/bin</QMake_QT_HOST_BINS_>
<QMake_QT_HOST_LIBS_>D:/Qt/5.12.3/msvc2017_64/lib</QMake_QT_HOST_LIBS_>
<QMake_QMAKE_SPEC_>win32-msvc</QMake_QMAKE_SPEC_>
<QMake_QMAKE_XSPEC_>win32-msvc</QMake_QMAKE_XSPEC_>
<QMake_QMAKE_VERSION_>3.1</QMake_QMAKE_VERSION_>
<QMake_QT_VERSION_>5.12.3</QMake_QT_VERSION_>
<Qt_INCLUDEPATH_
>$(Qt_INCLUDEPATH_);x64\Release\moc\Classes;x64\Release\uic\UI</Qt_INCLUDEPATH_>
<QtBkup_QtInstall
@@ -19,10 +44,14 @@
<QtBkup_QtLibrarySearchPath
></QtBkup_QtLibrarySearchPath>
<QtBkup_QtVars
>DEFINES=/-D(\w+)/$1/;INCLUDEPATH=INCPATH/-I(\x22[^\x22]+\x22|[^\s]+)/$1/;LIBS=/(?:\/LIBPATH:(?:\x22[^\x22]+\x22|[^\s]+))|(\x22[^\x22]+\x22|[^\s]+)/$1/;LIBPATH=LIBS/\/LIBPATH:(\x22[^\x22]+\x22|[^\s]+)/$1/</QtBkup_QtVars>
>DEFINES=/-D([^\s=]+(=(\x22(\\\\|\\\x22|[^\x22])*\x22|\S+))?)/$1/;INCLUDEPATH=INCPATH/-I(\x22[^\x22]+\x22|[^\s]+)/$1/;LIBS=/(?:\/LIBPATH:(?:\x22[^\x22]+\x22|[^\s]+))|(\x22[^\x22]+\x22|[^\s]+)/$1/;LIBPATH=LIBS/\/LIBPATH:(\x22[^\x22]+\x22|[^\s]+)/$1/</QtBkup_QtVars>
<QtBkup_QMakeCodeLines
></QtBkup_QMakeCodeLines>
<QtBkup_QtBuildConfig
>release</QtBkup_QtBuildConfig>
<QtVersion>5.12.3</QtVersion>
<QtVersionMajor>5</QtVersionMajor>
<QtVersionMinor>12</QtVersionMinor>
<QtVersionPatch>3</QtVersionPatch>
</PropertyGroup>
</Project>