Compare commits
11 Commits
add-licens
...
v1.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5faeff5be1 | ||
|
|
5c923ee2d4 | ||
|
|
dab2be5de2 | ||
|
|
bde3ce178e | ||
|
|
3a212d0b8e | ||
|
|
b060ed5f2b | ||
|
|
ba4ca7903d | ||
|
|
c0e7dedf77 | ||
|
|
830e5c5140 | ||
|
|
1b1d2308bc | ||
|
|
22ad0727c4 |
147
.gitignore
vendored
147
.gitignore
vendored
@@ -1,7 +1,10 @@
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
##
|
||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||
|
||||
# User-specific files
|
||||
*.rsuser
|
||||
*.suo
|
||||
*.user
|
||||
*.userosscache
|
||||
@@ -10,6 +13,9 @@
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
|
||||
# Mono auto generated files
|
||||
mono_crash.*
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Dd]ebugPublic/
|
||||
@@ -17,42 +23,62 @@
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
[Ww][Ii][Nn]32/
|
||||
[Aa][Rr][Mm]/
|
||||
[Aa][Rr][Mm]64/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Ll]og/
|
||||
[Ll]ogs/
|
||||
|
||||
# Visual Studio 2015 cache/options directory
|
||||
# Visual Studio 2015/2017 cache/options directory
|
||||
.vs/
|
||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||
#wwwroot/
|
||||
|
||||
# Visual Studio 2017 auto generated files
|
||||
Generated\ Files/
|
||||
|
||||
# MSTest test Results
|
||||
[Tt]est[Rr]esult*/
|
||||
[Bb]uild[Ll]og.*
|
||||
|
||||
# NUNIT
|
||||
# NUnit
|
||||
*.VisualState.xml
|
||||
TestResult.xml
|
||||
nunit-*.xml
|
||||
|
||||
# Build Results of an ATL Project
|
||||
[Dd]ebugPS/
|
||||
[Rr]eleasePS/
|
||||
dlldata.c
|
||||
|
||||
# DNX
|
||||
# Benchmark Results
|
||||
BenchmarkDotNet.Artifacts/
|
||||
|
||||
# .NET Core
|
||||
project.lock.json
|
||||
project.fragment.lock.json
|
||||
artifacts/
|
||||
|
||||
# ASP.NET Scaffolding
|
||||
ScaffoldingReadMe.txt
|
||||
|
||||
# StyleCop
|
||||
StyleCopReport.xml
|
||||
|
||||
# Files built by Visual Studio
|
||||
*_i.c
|
||||
*_p.c
|
||||
*_i.h
|
||||
*_h.h
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.iobj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.ipdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
@@ -62,6 +88,7 @@ artifacts/
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.tmp_proj
|
||||
*_wpftmp.csproj
|
||||
*.log
|
||||
*.vspscc
|
||||
*.vssscc
|
||||
@@ -90,6 +117,9 @@ ipch/
|
||||
*.vspx
|
||||
*.sap
|
||||
|
||||
# Visual Studio Trace Files
|
||||
*.e2e
|
||||
|
||||
# TFS 2012 Local Workspace
|
||||
$tf/
|
||||
|
||||
@@ -101,15 +131,23 @@ _ReSharper*/
|
||||
*.[Rr]e[Ss]harper
|
||||
*.DotSettings.user
|
||||
|
||||
# JustCode is a .NET coding add-in
|
||||
.JustCode
|
||||
|
||||
# TeamCity is a build add-in
|
||||
_TeamCity*
|
||||
|
||||
# DotCover is a Code Coverage Tool
|
||||
*.dotCover
|
||||
|
||||
# AxoCover is a Code Coverage Tool
|
||||
.axoCover/*
|
||||
!.axoCover/settings.json
|
||||
|
||||
# Coverlet is a free, cross platform Code Coverage Tool
|
||||
coverage*[.json, .xml, .info]
|
||||
|
||||
# Visual Studio code coverage results
|
||||
*.coverage
|
||||
*.coveragexml
|
||||
|
||||
# NCrunch
|
||||
_NCrunch_*
|
||||
.*crunch*.local.xml
|
||||
@@ -141,9 +179,9 @@ publish/
|
||||
# Publish Web Output
|
||||
*.[Pp]ublish.xml
|
||||
*.azurePubxml
|
||||
# TODO: Comment the next line if you want to checkin your web deploy settings
|
||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||
# but database connection strings (with potential passwords) will be unencrypted
|
||||
#*.pubxml
|
||||
*.pubxml
|
||||
*.publishproj
|
||||
|
||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||
@@ -153,13 +191,15 @@ PublishScripts/
|
||||
|
||||
# NuGet Packages
|
||||
*.nupkg
|
||||
# NuGet Symbol Packages
|
||||
*.snupkg
|
||||
# The packages folder can be ignored because of Package Restore
|
||||
**/packages/*
|
||||
**/[Pp]ackages/*
|
||||
# except build/, which is used as an MSBuild target.
|
||||
!**/packages/build/
|
||||
!**/[Pp]ackages/build/
|
||||
# Uncomment if necessary however generally it will be regenerated when needed
|
||||
#!**/packages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignoreable files
|
||||
#!**/[Pp]ackages/repositories.config
|
||||
# NuGet v3's project.json files produces more ignorable files
|
||||
*.nuget.props
|
||||
*.nuget.targets
|
||||
|
||||
@@ -176,12 +216,15 @@ AppPackages/
|
||||
BundleArtifacts/
|
||||
Package.StoreAssociation.xml
|
||||
_pkginfo.txt
|
||||
*.appx
|
||||
*.appxbundle
|
||||
*.appxupload
|
||||
|
||||
# Visual Studio cache files
|
||||
# files ending in .cache can be ignored
|
||||
*.[Cc]ache
|
||||
# but keep track of directories ending in .cache
|
||||
!*.[Cc]ache/
|
||||
!?*.[Cc]ache/
|
||||
|
||||
# Others
|
||||
ClientBin/
|
||||
@@ -192,9 +235,12 @@ ClientBin/
|
||||
*.jfm
|
||||
*.pfx
|
||||
*.publishsettings
|
||||
node_modules/
|
||||
orleans.codegen.cs
|
||||
|
||||
# Including strong name files can present a security risk
|
||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||
#*.snk
|
||||
|
||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||
#bower_components/
|
||||
@@ -209,15 +255,22 @@ _UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
UpgradeLog*.htm
|
||||
ServiceFabricBackup/
|
||||
*.rptproj.bak
|
||||
|
||||
# SQL Server files
|
||||
*.mdf
|
||||
*.ldf
|
||||
*.ndf
|
||||
|
||||
# Business Intelligence projects
|
||||
*.rdl.data
|
||||
*.bim.layout
|
||||
*.bim_*.settings
|
||||
*.rptproj.rsuser
|
||||
*- [Bb]ackup.rdl
|
||||
*- [Bb]ackup ([0-9]).rdl
|
||||
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||
|
||||
# Microsoft Fakes
|
||||
FakesAssemblies/
|
||||
@@ -227,6 +280,7 @@ FakesAssemblies/
|
||||
|
||||
# Node.js Tools for Visual Studio
|
||||
.ntvs_analysis.dat
|
||||
node_modules/
|
||||
|
||||
# Visual Studio 6 build log
|
||||
*.plg
|
||||
@@ -234,6 +288,9 @@ FakesAssemblies/
|
||||
# Visual Studio 6 workspace options file
|
||||
*.opt
|
||||
|
||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||
*.vbw
|
||||
|
||||
# Visual Studio LightSwitch build output
|
||||
**/*.HTMLClient/GeneratedArtifacts
|
||||
**/*.DesktopClient/GeneratedArtifacts
|
||||
@@ -249,13 +306,59 @@ paket-files/
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# JetBrains Rider
|
||||
.idea/
|
||||
*.sln.iml
|
||||
|
||||
# CodeRush
|
||||
.cr/
|
||||
# CodeRush personal settings
|
||||
.cr/personal
|
||||
|
||||
# Python Tools for Visual Studio (PTVS)
|
||||
__pycache__/
|
||||
*.pyc
|
||||
*.pyc
|
||||
|
||||
# Cake - Uncomment if you are using it
|
||||
# tools/**
|
||||
# !tools/packages.config
|
||||
|
||||
# Tabs Studio
|
||||
*.tss
|
||||
|
||||
# Telerik's JustMock configuration file
|
||||
*.jmconfig
|
||||
|
||||
# BizTalk build output
|
||||
*.btp.cs
|
||||
*.btm.cs
|
||||
*.odx.cs
|
||||
*.xsd.cs
|
||||
|
||||
# OpenCover UI analysis results
|
||||
OpenCover/
|
||||
|
||||
# Azure Stream Analytics local run output
|
||||
ASALocalRun/
|
||||
|
||||
# MSBuild Binary and Structured Log
|
||||
*.binlog
|
||||
|
||||
# NVidia Nsight GPU debugger configuration file
|
||||
*.nvuser
|
||||
|
||||
# MFractors (Xamarin productivity tool) working folder
|
||||
.mfractor/
|
||||
|
||||
# Local History for Visual Studio
|
||||
.localhistory/
|
||||
|
||||
# BeatPulse healthcheck temp database
|
||||
healthchecksdb
|
||||
|
||||
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||
MigrationBackup/
|
||||
|
||||
# Ionide (cross platform F# VS Code tools) working folder
|
||||
.ionide/
|
||||
|
||||
# Fody - auto-generated XML schema
|
||||
FodyWeavers.xsd
|
||||
|
||||
# 忽略指定文件夹
|
||||
.vs/
|
||||
Lib/
|
||||
@@ -16,11 +16,11 @@ Calibrator::~Calibrator()
|
||||
|
||||
}
|
||||
|
||||
void Calibrator::addFrameSequence(std::vector<cv::Mat> &frameSeq)
|
||||
void Calibrator::addFrameSequence(std::vector<Mat> &frameSeq)
|
||||
{
|
||||
int n = frameSeqs.size();
|
||||
frameSeqs.resize(n+1);
|
||||
std::vector<cv::Mat> &frame = frameSeqs[n];
|
||||
std::vector<Mat> &frame = frameSeqs[n];
|
||||
for(int i = 0; i < frameSeq.size(); i++)
|
||||
{
|
||||
frame.push_back(frameSeq[i]);
|
||||
@@ -38,17 +38,17 @@ void Calibrator::reset()
|
||||
|
||||
void Calibrator::setBoardRows(int rows) {
|
||||
board_rows = rows;
|
||||
board_size = cv::Size(board_rows, board_cols);
|
||||
board_size = Size(board_rows, board_cols);
|
||||
}
|
||||
|
||||
void Calibrator::setBoardCols(int cols) {
|
||||
board_cols = cols;
|
||||
board_size = cv::Size(board_rows, board_cols);
|
||||
board_size = Size(board_rows, board_cols);
|
||||
}
|
||||
|
||||
void Calibrator::setCornerSize(double cornerSize) {
|
||||
dot_dis = cornerSize;
|
||||
corner_size = cv::Size2f(cornerSize, cornerSize);
|
||||
corner_size = Size2f(cornerSize, cornerSize);
|
||||
}
|
||||
|
||||
void Calibrator::setDotDiameter(double dotDiameter) {
|
||||
@@ -66,7 +66,7 @@ CalibrationData* Calibrator::calibrate()
|
||||
// detect corners ////////////////////////////////////
|
||||
for(int i = 0; i < frameSeqs.size(); i++)
|
||||
{
|
||||
std::vector<cv::Point2f> corners = extract_board_corners( frameSeqs[i][0] );
|
||||
std::vector<Point2f> corners = extract_board_corners( frameSeqs[i][0] );
|
||||
board_corners.push_back(corners);
|
||||
// std::cout<<i<<" corners: "<<corners.size()<<std::endl;
|
||||
// for(int j = 0; j < corners.size(); j++) {
|
||||
@@ -75,12 +75,12 @@ CalibrationData* Calibrator::calibrate()
|
||||
}
|
||||
|
||||
// collect projector correspondences
|
||||
std::vector<cv::Point2f> pcorners;
|
||||
std::vector<Point2f> pcorners;
|
||||
for(int i = 0; i < frameSeqs.size(); i++)
|
||||
{
|
||||
std::vector<cv::Point2f> const& corners = board_corners[i];
|
||||
cv::Mat pattern_image;
|
||||
cv::Mat min_max_image;
|
||||
std::vector<Point2f> const& corners = board_corners[i];
|
||||
Mat pattern_image;
|
||||
Mat min_max_image;
|
||||
if(corners.size()==0)
|
||||
{
|
||||
projector_corners.push_back(pcorners);
|
||||
@@ -95,25 +95,25 @@ CalibrationData* Calibrator::calibrate()
|
||||
}
|
||||
|
||||
pattern_list.push_back(pattern_image);
|
||||
for (std::vector<cv::Point2f>::const_iterator iter=corners.begin(); iter!=corners.end(); iter++)
|
||||
for (std::vector<Point2f>::const_iterator iter=corners.begin(); iter!=corners.end(); iter++)
|
||||
{
|
||||
const cv::Point2f & p = *iter;
|
||||
cv::Point2f q;
|
||||
const Point2f & p = *iter;
|
||||
Point2f q;
|
||||
//find an homography around p
|
||||
unsigned WINDOW_SIZE = 30;
|
||||
std::vector<cv::Point2f> img_points , proj_points;
|
||||
std::vector<Point2f> img_points , proj_points;
|
||||
if (p.x>WINDOW_SIZE && p.y>WINDOW_SIZE && p.x+WINDOW_SIZE<pattern_image.cols && p.y+WINDOW_SIZE<pattern_image.rows)
|
||||
{
|
||||
for (unsigned h=p.y-WINDOW_SIZE; h<p.y+WINDOW_SIZE; h++)
|
||||
{
|
||||
register const cv::Vec2f * row = pattern_image.ptr<cv::Vec2f>(h);
|
||||
register const cv::Vec2b * min_max_row = min_max_image.ptr<cv::Vec2b>(h);
|
||||
//cv::Vec2f * out_row = out_pattern_image.ptr<cv::Vec2f>(h);
|
||||
register const Vec2f * row = pattern_image.ptr<Vec2f>(h);
|
||||
register const Vec2b * min_max_row = min_max_image.ptr<Vec2b>(h);
|
||||
//Vec2f * out_row = out_pattern_image.ptr<Vec2f>(h);
|
||||
for (unsigned w=p.x-WINDOW_SIZE; w<p.x+WINDOW_SIZE; w++)
|
||||
{
|
||||
const cv::Vec2f & pattern = row[w];
|
||||
const cv::Vec2b & min_max = min_max_row[w];
|
||||
//cv::Vec2f & out_pattern = out_row[w];
|
||||
const Vec2f & pattern = row[w];
|
||||
const Vec2b & min_max = min_max_row[w];
|
||||
//Vec2f & out_pattern = out_row[w];
|
||||
if (std::isnan(pattern[0])>0 || std::isnan(pattern[1])>0)
|
||||
{
|
||||
continue;
|
||||
@@ -123,16 +123,16 @@ CalibrationData* Calibrator::calibrate()
|
||||
continue;
|
||||
}
|
||||
|
||||
img_points.push_back(cv::Point2f(w, h));
|
||||
proj_points.push_back(cv::Point2f(pattern));
|
||||
img_points.push_back(Point2f(w, h));
|
||||
proj_points.push_back(Point2f(pattern));
|
||||
|
||||
//out_pattern = pattern;
|
||||
}
|
||||
}
|
||||
cv::Mat H = cv::findHomography(img_points , proj_points, cv::RANSAC);
|
||||
Mat H = findHomography(img_points , proj_points, RANSAC);
|
||||
// std::cout << " H:\n" << H << std::endl;
|
||||
cv::Point3d Q = cv::Point3d(cv::Mat(H*cv::Mat(cv::Point3d(p.x , p.y , 1.0))));
|
||||
q = cv::Point2f(Q.x/Q.z ,Q.y/Q.z);
|
||||
Point3d Q = Point3d(Mat(H*Mat(Point3d(p.x , p.y , 1.0))));
|
||||
q = Point2f(Q.x/Q.z ,Q.y/Q.z);
|
||||
// jiuzheng
|
||||
// q.y += 118;
|
||||
pcorners.push_back(q);
|
||||
@@ -159,15 +159,15 @@ CalibrationData* Calibrator::calibrate()
|
||||
count++;
|
||||
}
|
||||
}
|
||||
std::vector<cv::Point3f> world_corners;
|
||||
std::vector<Point3f> world_corners;
|
||||
for (int h=0; h<board_size.height; h++)
|
||||
{
|
||||
for (int w=0; w<board_size.width; w++)
|
||||
{
|
||||
world_corners.push_back(cv::Point3f(corner_size.width * w, corner_size.height * h , 0.f));
|
||||
world_corners.push_back(Point3f(corner_size.width * w, corner_size.height * h , 0.f));
|
||||
}
|
||||
}
|
||||
std::vector<std::vector<cv::Point3f> > objectPoints;
|
||||
std::vector<std::vector<Point3f> > objectPoints;
|
||||
objectPoints.reserve(count);
|
||||
for (unsigned i=0; i<count; i++)
|
||||
{
|
||||
@@ -175,16 +175,16 @@ CalibrationData* Calibrator::calibrate()
|
||||
}
|
||||
|
||||
//generate world object coordinates
|
||||
std::vector<cv::Point3f> world_corners_p;
|
||||
std::vector<Point3f> world_corners_p;
|
||||
for (int h=0; h<board_size.height; h++)
|
||||
{
|
||||
for (int w=0; w<board_size.width; w++)
|
||||
{
|
||||
world_corners_p.push_back(cv::Point3f(corner_size.width * w , corner_size.height * h ,0.f));
|
||||
world_corners_p.push_back(Point3f(corner_size.width * w , corner_size.height * h ,0.f));
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<std::vector<cv::Point3f> > objectPoints_p;
|
||||
std::vector<std::vector<Point3f> > objectPoints_p;
|
||||
objectPoints_p.reserve(count);
|
||||
for (unsigned i=0; i<count; i++)
|
||||
{
|
||||
@@ -196,48 +196,48 @@ CalibrationData* Calibrator::calibrate()
|
||||
pattern_list.resize(count);
|
||||
|
||||
int cal_flags = 0
|
||||
//+ cv::CALIB_FIX_K1
|
||||
//+ cv::CALIB_FIX_K2
|
||||
//+ cv::CALIB_ZERO_TANGENT_DIST
|
||||
+ cv::CALIB_FIX_K3
|
||||
//+ CALIB_FIX_K1
|
||||
//+ CALIB_FIX_K2
|
||||
//+ CALIB_ZERO_TANGENT_DIST
|
||||
+ CALIB_FIX_K3
|
||||
;
|
||||
//calibrate the camera ////////////////////////////////////
|
||||
std::vector<cv::Mat> cam_rvecs , cam_tvecs;
|
||||
std::vector<Mat> cam_rvecs , cam_tvecs;
|
||||
int cam_flags = cal_flags;
|
||||
cv::Size imageSize = frameSeqs[0][0].size();
|
||||
res->cam_error = cv::calibrateCamera(objectPoints , board_corners , imageSize , res->Kc , res->kc ,cam_rvecs , cam_tvecs);
|
||||
Size imageSize = frameSeqs[0][0].size();
|
||||
res->cam_error = calibrateCamera(objectPoints , board_corners , imageSize , res->Kc , res->kc ,cam_rvecs , cam_tvecs);
|
||||
std::cout<<"calibrate the camera !"<<std::endl;
|
||||
|
||||
//calibrate the projector ////////////////////////////////////
|
||||
std::vector<cv::Mat> proj_rvecs , proj_tvecs;
|
||||
std::vector<Mat> proj_rvecs , proj_tvecs;
|
||||
int proj_flags = cal_flags;
|
||||
cv::Size projector_size(912, 1140);
|
||||
res->proj_error = cv::calibrateCamera(objectPoints_p , projector_corners, projector_size , res->Kp , res->kp , proj_rvecs , proj_tvecs);
|
||||
Size projector_size(912, 1140);
|
||||
res->proj_error = calibrateCamera(objectPoints_p , projector_corners, projector_size , res->Kp , res->kp , proj_rvecs , proj_tvecs);
|
||||
|
||||
std::cout<<"calibrate the projector !"<<std::endl;
|
||||
//stereo calibration
|
||||
cv::Mat E, F;
|
||||
res->stereo_error = cv::stereoCalibrate(objectPoints , board_corners , projector_corners ,
|
||||
Mat E, F;
|
||||
res->stereo_error = stereoCalibrate(objectPoints , board_corners , projector_corners ,
|
||||
res->Kc , res->kc , res->Kp ,res->kp ,imageSize /*ignored*/ ,
|
||||
res->Rp , res->Tp , E , F );
|
||||
// res->stereo_error = cv::stereoCalibrate(objectPoints , board_corners , projector_corners , res->Kc , res->kc , res->Kp ,res->kp ,imageSize /*ignored*/ , res->Rp , res->Tp , E , F ,
|
||||
// cv::TermCriteria(cv::TermCriteria::COUNT + cv::TermCriteria::EPS ,50 ,DBL_EPSILON) ,
|
||||
// cv::CALIB_FIX_INTRINSIC /*cv::CALIB_USE_INTRINSIC_GUESS + cal_flags*/);
|
||||
// res->stereo_error = stereoCalibrate(objectPoints , board_corners , projector_corners , res->Kc , res->kc , res->Kp ,res->kp ,imageSize /*ignored*/ , res->Rp , res->Tp , E , F ,
|
||||
// TermCriteria(TermCriteria::COUNT + TermCriteria::EPS ,50 ,DBL_EPSILON) ,
|
||||
// CALIB_FIX_INTRINSIC /*CALIB_USE_INTRINSIC_GUESS + cal_flags*/);
|
||||
std::cout<<"stereo calibration !"<<std::endl;
|
||||
|
||||
|
||||
cv::FileStorage fsc("rtc.xml", cv::FileStorage::WRITE);
|
||||
cv::FileStorage fsp("rtp.xml", cv::FileStorage::WRITE);
|
||||
FileStorage fsc("rtc.xml", FileStorage::WRITE);
|
||||
FileStorage fsp("rtp.xml", FileStorage::WRITE);
|
||||
|
||||
// objectPoints projector_corners board_corners
|
||||
std::ofstream opout("objectPoints.txt");
|
||||
std::ofstream pcout("projector_corners.txt");
|
||||
std::ofstream ccout("board_corners.txt");
|
||||
for (int i = 0; i < objectPoints.size(); i++) {
|
||||
fsc << "R" + std::to_string(i) << cv::Mat(cam_rvecs[i]);
|
||||
fsc << "T" + std::to_string(i) << cv::Mat(cam_tvecs[i]);
|
||||
fsp << "R" + std::to_string(i) << cv::Mat(proj_rvecs[i]);
|
||||
fsp << "T" + std::to_string(i) << cv::Mat(proj_tvecs[i]);
|
||||
fsc << "R" + std::to_string(i) << Mat(cam_rvecs[i]);
|
||||
fsc << "T" + std::to_string(i) << Mat(cam_tvecs[i]);
|
||||
fsp << "R" + std::to_string(i) << Mat(proj_rvecs[i]);
|
||||
fsp << "T" + std::to_string(i) << Mat(proj_tvecs[i]);
|
||||
for (int j = 0; j < objectPoints[i].size(); j++) {
|
||||
opout << objectPoints[i][j] << std::endl;
|
||||
pcout << projector_corners[i][j] << std::endl;
|
||||
@@ -254,24 +254,24 @@ CalibrationData* Calibrator::calibrate()
|
||||
|
||||
}
|
||||
|
||||
std::vector<cv::Point2f> Calibrator::extract_board_corners(cv::Mat &gray_image)
|
||||
std::vector<Point2f> Calibrator::extract_board_corners(Mat &gray_image)
|
||||
{
|
||||
std::vector<cv::Point2f> corners;
|
||||
std::vector<Point2f> corners;
|
||||
int image_scale = 1;
|
||||
if (gray_image.rows<1)
|
||||
{
|
||||
return corners;
|
||||
}
|
||||
cv::Size imageSize = gray_image.size();
|
||||
Size imageSize = gray_image.size();
|
||||
if (imageSize.width>1024)
|
||||
{
|
||||
image_scale = imageSize.width/1024;
|
||||
}
|
||||
|
||||
cv::Mat small_img;
|
||||
Mat small_img;
|
||||
if (image_scale>1)
|
||||
{
|
||||
cv::resize(gray_image , small_img , cv::Size(gray_image.cols/image_scale , gray_image.rows/image_scale));
|
||||
resize(gray_image , small_img , Size(gray_image.cols/image_scale , gray_image.rows/image_scale));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -279,27 +279,27 @@ std::vector<cv::Point2f> Calibrator::extract_board_corners(cv::Mat &gray_image)
|
||||
}
|
||||
|
||||
if(board_type == Chessboard) {
|
||||
cv::findChessboardCorners(small_img, board_size, corners);
|
||||
findChessboardCorners(small_img, board_size, corners);
|
||||
}
|
||||
else if(board_type == Circular) {
|
||||
cv::findCirclesGrid(small_img, board_size, corners);
|
||||
findCirclesGrid(small_img, board_size, corners);
|
||||
}
|
||||
|
||||
if (corners.size())
|
||||
{
|
||||
for (std::vector<cv::Point2f>::iterator iter=corners.begin(); iter!=corners.end(); iter++)
|
||||
for (std::vector<Point2f>::iterator iter=corners.begin(); iter!=corners.end(); iter++)
|
||||
{
|
||||
*iter = image_scale*(*iter);
|
||||
}
|
||||
cv::cornerSubPix(gray_image , corners , cv::Size(11 , 11) , cv::Size(-1 , -1) ,
|
||||
cv::TermCriteria(cv::TermCriteria::EPS + cv::TermCriteria::MAX_ITER, 30 , 0.1));
|
||||
cornerSubPix(gray_image , corners , Size(11 , 11) , Size(-1 , -1) ,
|
||||
TermCriteria(TermCriteria::EPS + TermCriteria::MAX_ITER, 30 , 0.1));
|
||||
}
|
||||
|
||||
return corners;
|
||||
}
|
||||
|
||||
|
||||
bool Calibrator::decode_gray_set(int ind , cv::Mat & pattern_image, cv::Mat & min_max_image)
|
||||
bool Calibrator::decode_gray_set(int ind , Mat & pattern_image, Mat & min_max_image)
|
||||
{
|
||||
if (ind >= frameSeqs.size())
|
||||
{ //out of bounds
|
||||
@@ -308,7 +308,7 @@ bool Calibrator::decode_gray_set(int ind , cv::Mat & pattern_image, cv::Mat & m
|
||||
|
||||
//estimate direct component
|
||||
//b = config.value("robust_estimation/b" DEFAULT_B).toFloat();
|
||||
std::vector<cv::Mat> images;
|
||||
std::vector<Mat> images;
|
||||
// QList<unsigned> direct_component_images(QList<unsigned>() << 15 << 16 << 17 << 18 << 35 << 36 << 37 << 38);
|
||||
int total_images = frameSeqs[ind].size();
|
||||
int total_patterns = total_images/2 - 1;
|
||||
@@ -326,12 +326,12 @@ bool Calibrator::decode_gray_set(int ind , cv::Mat & pattern_image, cv::Mat & m
|
||||
{
|
||||
images.push_back(frameSeqs[ind][i]);
|
||||
}
|
||||
cv::Mat direct_light = sl::estimate_direct_light(images, b);
|
||||
Mat direct_light = sl::estimate_direct_light(images, b);
|
||||
|
||||
//m = config.value("robust_estimation/m" DEFAULT_M).toUInt();
|
||||
// return sl::decode_pattern(frameSeqs[ind] , pattern_image , min_max_image , sl::RobustDecode|sl::GrayPatternDecode , direct_light, m);
|
||||
|
||||
cv::Size projector_size(912, 1140);
|
||||
Size projector_size(912, 1140);
|
||||
bool rv = sl::decode_pattern(frameSeqs[ind], pattern_image, min_max_image, projector_size, sl::RobustDecode|sl::GrayPatternDecode, direct_light, m);
|
||||
return rv;
|
||||
}
|
||||
|
||||
@@ -510,3 +510,8 @@ void CoreAlgorithm::saveCoordinate()
|
||||
}
|
||||
destFile.close();
|
||||
}
|
||||
|
||||
vector<Mat> CoreAlgorithm::getCoordinates()
|
||||
{
|
||||
return coordinate;
|
||||
}
|
||||
|
||||
@@ -53,4 +53,6 @@ public:
|
||||
void run();
|
||||
|
||||
void saveCoordinate();
|
||||
|
||||
vector<Mat> getCoordinates();
|
||||
};
|
||||
|
||||
53
Classes/HisThread.cpp
Normal file
53
Classes/HisThread.cpp
Normal 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
32
Classes/HisThread.h
Normal 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();
|
||||
};
|
||||
@@ -10,9 +10,15 @@ 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;
|
||||
}
|
||||
|
||||
auto pclData = PointCloudData::getInstance(cloud);
|
||||
pclData->setCloud(cloud);
|
||||
|
||||
|
||||
}
|
||||
@@ -26,7 +32,3 @@ PointCloud<PointXYZRGB> MyThread::getCloud()
|
||||
{
|
||||
return cloud;
|
||||
}
|
||||
|
||||
MyThread::~MyThread()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <qthread.h>
|
||||
#include <pcl/point_types.h>
|
||||
#include <pcl/io/vtk_lib_io.h>
|
||||
#include "PointCloudData.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace pcl;
|
||||
@@ -12,7 +13,7 @@ class MyThread :
|
||||
{
|
||||
public:
|
||||
MyThread();
|
||||
~MyThread();
|
||||
~MyThread(){};
|
||||
void setPcd(QString str);
|
||||
PointCloud<PointXYZRGB> getCloud();
|
||||
|
||||
|
||||
70
Classes/PointCloudData.cpp
Normal file
70
Classes/PointCloudData.cpp
Normal file
@@ -0,0 +1,70 @@
|
||||
#include "PointCloudData.h"
|
||||
|
||||
PointCloudData* PointCloudData::instance = nullptr;
|
||||
|
||||
PointCloudData::PointCloudData(PointCloud<PointXYZRGB> cloudArg)
|
||||
{
|
||||
cloud = cloudArg;
|
||||
num = 0;
|
||||
}
|
||||
|
||||
PointCloudData* PointCloudData::getInstance(PointCloud<PointXYZRGB> cloudArg)
|
||||
{
|
||||
if (instance == nullptr) instance = new PointCloudData(cloudArg);
|
||||
return instance;
|
||||
}
|
||||
|
||||
PointCloudData* PointCloudData::getInstance()
|
||||
{
|
||||
return instance;
|
||||
}
|
||||
|
||||
PointCloud<PointXYZRGB> PointCloudData::getCloud() const{
|
||||
return cloud;
|
||||
}
|
||||
|
||||
void PointCloudData::setCloud(PointCloud<PointXYZRGB> cloudArg){
|
||||
cloud= cloudArg;
|
||||
}
|
||||
|
||||
boost::shared_ptr<visualization::PCLVisualizer> PointCloudData::getViewer()
|
||||
{
|
||||
return viewer;
|
||||
}
|
||||
|
||||
|
||||
void PointCloudData::setViewer(boost::shared_ptr<visualization::PCLVisualizer> viewerArg)
|
||||
{
|
||||
viewer = viewerArg;
|
||||
}
|
||||
|
||||
std::vector<int> PointCloudData::getIndices()
|
||||
{
|
||||
return indices;
|
||||
}
|
||||
|
||||
void PointCloudData::setIndices(std::vector<int> indicesArg)
|
||||
{
|
||||
indices = indicesArg;
|
||||
}
|
||||
|
||||
Ui::ReconstructionClass PointCloudData::getUI()
|
||||
{
|
||||
return ui;
|
||||
}
|
||||
|
||||
void PointCloudData::setUI(Ui::ReconstructionClass uiArg)
|
||||
{
|
||||
ui = uiArg;
|
||||
}
|
||||
|
||||
int PointCloudData::getNum()
|
||||
{
|
||||
return num;
|
||||
}
|
||||
|
||||
void PointCloudData::setNum()
|
||||
{
|
||||
num++;
|
||||
}
|
||||
|
||||
36
Classes/PointCloudData.h
Normal file
36
Classes/PointCloudData.h
Normal file
@@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
#include <pcl/point_types.h>
|
||||
#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;
|
||||
|
||||
class PointCloudData
|
||||
{
|
||||
private:
|
||||
PointCloudData(PointCloud<PointXYZRGB> cloudArg);
|
||||
~PointCloudData(){};
|
||||
PointCloud<PointXYZRGB> cloud;
|
||||
boost::shared_ptr<visualization::PCLVisualizer> viewer;
|
||||
std::vector<int> indices;
|
||||
Ui::ReconstructionClass ui;
|
||||
int num;// 用于框选删除点云的名称
|
||||
|
||||
public:
|
||||
static PointCloudData* getInstance();
|
||||
static PointCloudData* getInstance(PointCloud<PointXYZRGB> cloudArg);
|
||||
static PointCloudData* instance ;
|
||||
PointCloud<PointXYZRGB> getCloud() const;
|
||||
void setCloud(PointCloud<PointXYZRGB> cloudArg);
|
||||
boost::shared_ptr<visualization::PCLVisualizer> getViewer();
|
||||
void setViewer(boost::shared_ptr<visualization::PCLVisualizer> viewerArg);
|
||||
std::vector<int> getIndices();
|
||||
void setIndices(std::vector<int> indicesArg);
|
||||
Ui::ReconstructionClass getUI();
|
||||
void setUI(Ui::ReconstructionClass uiArg);
|
||||
int getNum();
|
||||
void setNum();
|
||||
};
|
||||
@@ -1,14 +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();
|
||||
}
|
||||
@@ -16,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);
|
||||
@@ -63,6 +79,9 @@ void Reconstruction::setPicStyle()
|
||||
ui.pushButton_6->setEnabled(false);
|
||||
ui.pushButton_7->setEnabled(false);
|
||||
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"));
|
||||
@@ -93,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
|
||||
|
||||
@@ -111,6 +131,10 @@ void Reconstruction::on_pushButton_clicked()
|
||||
|
||||
void Reconstruction::on_pushButton_2_clicked()
|
||||
{
|
||||
if (device->getHasCamera())
|
||||
{
|
||||
liveViewTimer = startTimer(100);
|
||||
}
|
||||
ui.stackedWidget->setCurrentIndex(1);
|
||||
}
|
||||
|
||||
@@ -118,7 +142,7 @@ void Reconstruction::on_pushButton_3_clicked()
|
||||
{
|
||||
ui.stackedWidget->setCurrentIndex(2);
|
||||
updateQVTK(cloud, color);
|
||||
if (loadingStatus)
|
||||
if (loadingStatus || reconstructStatus)
|
||||
{
|
||||
ui.label_9->setVisible(true);
|
||||
}
|
||||
@@ -130,30 +154,114 @@ void Reconstruction::on_pushButton_3_clicked()
|
||||
#pragma endregion
|
||||
|
||||
#pragma region 多线程
|
||||
// 点云框选回调函数
|
||||
void pp_callback(const visualization::AreaPickingEvent& event, void* args)
|
||||
{
|
||||
auto pclData = PointCloudData::getInstance();
|
||||
PointCloud<PointXYZRGB>::Ptr cloudPtr(new PointCloud<PointXYZRGB>);
|
||||
cloudPtr = pclData->getCloud().makeShared();
|
||||
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>);
|
||||
if(indices.size()>0){
|
||||
for (auto i = 0; i < indices.size(); ++i)
|
||||
{
|
||||
clicked_points_3d->points.push_back(cloudPtr->points.at(indices[i]));
|
||||
}
|
||||
visualization::PointCloudColorHandlerCustom<PointXYZRGB> red(clicked_points_3d, 255, 0, 0);
|
||||
std::stringstream ss;
|
||||
std::string cloudName;
|
||||
pclData->setNum();
|
||||
ss << num++;
|
||||
ss >> cloudName;
|
||||
cloudName += "_cloudName";
|
||||
|
||||
pclData->getViewer()->addPointCloud(clicked_points_3d, red, cloudName);
|
||||
pclData->getViewer()->
|
||||
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);
|
||||
loadingStatus = false;
|
||||
cloud = t->getCloud();
|
||||
updateQVTK(cloud, color);
|
||||
|
||||
if(possionStatus)
|
||||
{
|
||||
auto pclData = PointCloudData::getInstance(cloud);
|
||||
pclData->getViewer()->removeAllPointClouds();
|
||||
pclData->getViewer()->addPolygonMesh(mesh, "my");
|
||||
possionStatus = false;
|
||||
}else
|
||||
{
|
||||
if (loadingStatus)
|
||||
{
|
||||
cloud = t->getCloud();
|
||||
loadingStatus = false;
|
||||
}
|
||||
|
||||
if (reconstructStatus)
|
||||
{
|
||||
reconstructStatus = false;
|
||||
}
|
||||
cout << cloud[0].r;
|
||||
|
||||
updateQVTK(cloud, color);
|
||||
}
|
||||
}
|
||||
|
||||
void Reconstruction::updateQVTK(PointCloud<PointXYZRGB> cloud, QColor color)
|
||||
{
|
||||
boost::shared_ptr<visualization::PCLVisualizer> viewer(new visualization::PCLVisualizer("3D Viewer"));
|
||||
viewer->setBackgroundColor(0.458, 0.529, 0.844);
|
||||
viewer->setPointCloudRenderingProperties(visualization::PCL_VISUALIZER_POINT_SIZE, 1, "cloud");
|
||||
boost::shared_ptr<visualization::PCLVisualizer> viewer;
|
||||
visualization::Camera camera;
|
||||
if (PointCloudData::getInstance() != nullptr)
|
||||
{
|
||||
auto pclData = PointCloudData::getInstance();
|
||||
pclData->setCloud(cloud);
|
||||
pclData->getViewer()->getCameraParameters(camera);
|
||||
cout << camera.pos[0] << "," << camera.pos[1] << "," << camera.pos[2] << "," << camera.
|
||||
view[0] <<
|
||||
"," << camera.view[1] << "," << camera.view[2] << "\n";
|
||||
viewer = pclData->getViewer();
|
||||
}
|
||||
else
|
||||
{
|
||||
boost::shared_ptr<visualization::PCLVisualizer> viewerArg(new visualization::PCLVisualizer("3D Viewer"));
|
||||
viewer = viewerArg;
|
||||
viewer->setBackgroundColor(0.458, 0.529, 0.844);
|
||||
viewer->initCameraParameters();
|
||||
viewer->getCameraParameters(camera);
|
||||
cout << camera.pos[0] << "," << camera.pos[1] << "," << camera.pos[2] << "," << camera.
|
||||
view[0] <<"," << camera.view[1] << "," << camera.view[2] << "\n";
|
||||
// viewer->setCameraPosition(50, -50, 1500,50,-50,1490,0, 1, 0, 0);
|
||||
auto pclData = PointCloudData::getInstance(cloud);
|
||||
pclData->setViewer(viewer);
|
||||
pclData->setUI(ui);
|
||||
}
|
||||
double size = 1;
|
||||
viewer->getPointCloudRenderingProperties(visualization::PCL_VISUALIZER_POINT_SIZE, size, "cloud");
|
||||
viewer->removeAllPointClouds();
|
||||
// viewer->setPointCloudRenderingProperties(visualization::PCL_VISUALIZER_POINT_SIZE, 1, "cloud");
|
||||
if (cloud.size() != 0)
|
||||
{
|
||||
PointCloud<PointXYZRGB>::Ptr cloudPtr(new PointCloud<PointXYZRGB>);
|
||||
cloudPtr = cloud.makeShared();
|
||||
|
||||
int x = int(color.redF() * 255);
|
||||
int y = int(color.greenF() * 255);
|
||||
int z = int(color.blueF() * 255);
|
||||
visualization::PointCloudColorHandlerCustom<PointXYZRGB> cloud_color(cloudPtr, x, y, z);// 统一处理点云颜色
|
||||
auto x = int(color.redF() * 255);
|
||||
auto y = int(color.greenF() * 255);
|
||||
auto z = int(color.blueF() * 255);
|
||||
visualization::PointCloudColorHandlerCustom<PointXYZRGB> cloud_color(cloudPtr, x, y, z); // 统一处理点云颜色
|
||||
viewer->addPointCloud(cloudPtr, cloud_color, "cloud");
|
||||
viewer->setPointCloudRenderingProperties(visualization::PCL_VISUALIZER_POINT_SIZE, 1, "cloud");
|
||||
viewer->setPointCloudRenderingProperties(visualization::PCL_VISUALIZER_POINT_SIZE, size, "cloud");
|
||||
// viewer->setCameraPosition(camera.pos[0], camera.pos[1], camera.pos[2], camera.view[0], camera.view[1], camera.view[2],0,0,1);
|
||||
viewer->registerAreaPickingCallback(pp_callback, (void*)&cloud);
|
||||
}
|
||||
ui.qvtkWidget->SetRenderWindow(viewer->getRenderWindow());
|
||||
ui.qvtkWidget->update();
|
||||
@@ -195,19 +303,19 @@ void Reconstruction::on_pushButton_6_clicked()
|
||||
fstools::mkDir(tr("./config/calib"), tr(path));
|
||||
|
||||
device->getProjector()->displayPattern(0);
|
||||
//QTest::qSleep(500);
|
||||
Sleep(500);
|
||||
for (unsigned int i = 0; i < 44; i++)
|
||||
{
|
||||
// Project pattern
|
||||
device->getProjector()->displayPattern(i);
|
||||
//QTest::qSleep(200);
|
||||
Sleep(200);
|
||||
// Effectuate sleep (necessary with some camera implementations)
|
||||
QApplication::processEvents();
|
||||
|
||||
// Aquire frame
|
||||
auto frame = device->getCamera()->getFrame();
|
||||
auto frameCV = cvtools::camFrame2Mat(frame);
|
||||
cvtColor(frameCV, frameCV, cv::COLOR_BGR2GRAY);
|
||||
cvtColor(frameCV, frameCV, COLOR_BGR2GRAY);
|
||||
//parameter
|
||||
std::cout << cv::format("./config/calib/calib%.2d/%.2d.bmp", imgCount, i) << std::endl;
|
||||
imwrite(cv::format("./config/calib/calib%.2d/%.2d.bmp", imgCount, i), frameCV);
|
||||
@@ -338,9 +446,13 @@ void Reconstruction::timerEvent(QTimerEvent* event)
|
||||
// correct size only if label has no borders/frame!
|
||||
auto w = ui.label_11->width();
|
||||
auto h = ui.label_11->height();
|
||||
|
||||
auto pixmap = QPixmap::fromImage(qimage);
|
||||
ui.label_11->setPixmap(pixmap.scaled(w, h, Qt::KeepAspectRatio));
|
||||
|
||||
w = ui.label_21->width();
|
||||
h = ui.label_21->height();
|
||||
pixmap = QPixmap::fromImage(qimage);
|
||||
ui.label_21->setPixmap(pixmap.scaled(w, h, Qt::KeepAspectRatio));
|
||||
}
|
||||
|
||||
void Reconstruction::setDirModel(const QString& dirname)
|
||||
@@ -377,7 +489,7 @@ void Reconstruction::setDirModel(const QString& dirname)
|
||||
continue;
|
||||
}
|
||||
|
||||
// add the childrens
|
||||
// add the childrens
|
||||
auto parent = dirModel->index(row, 0);
|
||||
dirModel->setData(parent, item, Qt::DisplayRole);
|
||||
|
||||
@@ -483,19 +595,45 @@ void Reconstruction::on_pushButton_4_clicked()
|
||||
}
|
||||
|
||||
ui.lineEdit->setText(fileName);
|
||||
|
||||
td->setPath(fileName.toStdString());
|
||||
// 投影结构光图案
|
||||
// device->getProjector()->displayPattern(44);
|
||||
// todo 接着进行投影操作
|
||||
}
|
||||
|
||||
// 投影图案
|
||||
void Reconstruction::on_pushButton_19_clicked()
|
||||
{
|
||||
device->getProjector()->displayPattern(44);
|
||||
}
|
||||
|
||||
// 相机拍照
|
||||
void Reconstruction::on_pushButton_9_clicked()
|
||||
{
|
||||
// todo 相机拍照
|
||||
picPath = "Resources/image/test.png"; // 该行仅做测试使用
|
||||
DisplayPic* picDlg = new DisplayPic();
|
||||
picDlg->setPicPath(picPath);
|
||||
connect(picDlg, SIGNAL(getPicAction(QString)), this, SLOT(setPicAction(QString)));
|
||||
picDlg->show();
|
||||
killTimer(liveViewTimer);
|
||||
auto frame = device->getCamera()->getFrame();
|
||||
auto frameCV = cvtools::camFrame2Mat(frame);
|
||||
// cvtColor(frameCV, frameCV, cv::COLOR_BGR2GRAY);
|
||||
if (frameCV.rows == 0 || frameCV.cols == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
frameCV = frameCV.clone();
|
||||
auto qimage = cvtools::cvMat2qImage(frameCV);
|
||||
|
||||
// correct size only if label has no borders/frame!
|
||||
auto w = ui.label_21->width();
|
||||
auto h = ui.label_21->height();
|
||||
|
||||
auto pixmap = QPixmap::fromImage(qimage);
|
||||
ui.label_21->setPixmap(pixmap.scaled(w, h, Qt::KeepAspectRatio));
|
||||
// picPath = "Resources/image/test.png"; // 该行仅做测试使用
|
||||
// DisplayPic* picDlg = new DisplayPic();
|
||||
// picDlg->setPicPath(picPath);
|
||||
// connect(picDlg, SIGNAL(getPicAction(QString)), this, SLOT(setPicAction(QString)));
|
||||
// picDlg->show();
|
||||
}
|
||||
|
||||
void Reconstruction::setPicAction(QString action)
|
||||
@@ -525,18 +663,23 @@ void Reconstruction::on_pushButton_10_clicked()
|
||||
|
||||
if (!fileName.isNull())
|
||||
{
|
||||
QImage iim(picPath); //创建一个图片对象,存储源图片
|
||||
QPainter painter(&iim); //设置绘画设备
|
||||
QFile file(fileName); //创建一个文件对象,存储用户选择的文件
|
||||
if (!file.open(QIODevice::ReadWrite))
|
||||
{
|
||||
return;
|
||||
}
|
||||
QByteArray ba;
|
||||
QBuffer buffer(&ba);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
iim.save(&buffer, "JPG"); //把图片以流方式写入文件缓存流中
|
||||
file.write(ba); //将流中的图片写入文件对象当中
|
||||
QScreen* screen = QGuiApplication::primaryScreen();
|
||||
|
||||
screen->grabWindow(ui.label_21->winId()).save(fileName);
|
||||
|
||||
|
||||
// QImage iim(picPath); //创建一个图片对象,存储源图片
|
||||
// QPainter painter(&iim); //设置绘画设备
|
||||
// QFile file(fileName); //创建一个文件对象,存储用户选择的文件
|
||||
// if (!file.open(QIODevice::ReadWrite))
|
||||
// {
|
||||
// return;
|
||||
// }
|
||||
// QByteArray ba;
|
||||
// QBuffer buffer(&ba);
|
||||
// buffer.open(QIODevice::WriteOnly);
|
||||
// iim.save(&buffer, "JPG"); //把图片以流方式写入文件缓存流中
|
||||
// file.write(ba); //将流中的图片写入文件对象当中
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -550,49 +693,11 @@ void Reconstruction::on_pushButton_10_clicked()
|
||||
void Reconstruction::on_pushButton_17_clicked()
|
||||
{
|
||||
// todo 开始重建
|
||||
// auto cArg = CameraArguments::getInstance();
|
||||
Mat r(3, 3, CV_32F);
|
||||
double m0[3][3] = {
|
||||
{9.7004457782050868e-001, 1.3447278830863673e-002, 2.4255450466457243e-001},
|
||||
{-8.7082927494022376e-003, 9.9974988338843274e-001, -2.0599424802792338e-002},
|
||||
{-2.4277084396282392e-001, 1.7870124701864658e-002, 9.6991905639837694e-001}
|
||||
};
|
||||
for (auto i = 0; i < r.rows; i++)
|
||||
for (auto j = 0; j < r.cols; j++)
|
||||
r.at<float>(i, j) = m0[i][j];
|
||||
|
||||
Mat t(1, 3, CV_32F);
|
||||
double m1[1][3] = {
|
||||
{-1.9511179496234658e+002, 1.2627509817628756e+001, -5.9345885017522171e+001}
|
||||
};
|
||||
|
||||
for (auto i = 0; i < t.rows; i++)
|
||||
for (auto j = 0; j < t.cols; j++)
|
||||
t.at<float>(i, j) = m1[i][j];
|
||||
|
||||
Mat kc(3, 3, CV_32F);
|
||||
double m2[3][3] = {
|
||||
{2.1536653255083029e+003, 0., 6.1886776197116581e+002},
|
||||
{0., 2.1484363899666910e+003, 5.0694898820460787e+002},
|
||||
{0., 0., 1.}
|
||||
};
|
||||
for (auto i = 0; i < kc.rows; i++)
|
||||
for (auto j = 0; j < kc.cols; j++)
|
||||
kc.at<float>(i, j) = m2[i][j];
|
||||
|
||||
Mat kp(3, 3, CV_32F);
|
||||
double m3[3][3] = {
|
||||
{1.7235093158297350e+003, 0., 4.4128195628736904e+002},
|
||||
{0., 3.4533404000869359e+003, 5.7316457428558715e+002},
|
||||
{0., 0., 1.}
|
||||
};
|
||||
for (auto i = 0; i < kp.rows; i++)
|
||||
for (auto j = 0; j < kp.cols; j++)
|
||||
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);
|
||||
testCase.run();
|
||||
reconstructStatus = true;
|
||||
on_pushButton_3_clicked();
|
||||
ui.label_9->setVisible(true);
|
||||
QCoreApplication::processEvents();
|
||||
td->start();
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
@@ -602,28 +707,46 @@ 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!");
|
||||
|
||||
}
|
||||
|
||||
// 异常点剔除
|
||||
void Reconstruction::on_pushButton_12_clicked()
|
||||
{
|
||||
// todo 异常点剔除
|
||||
auto pclData = PointCloudData::getInstance();
|
||||
// cloud = pclData->getCloud();
|
||||
auto indices = pclData->getIndices();
|
||||
for (auto i = 0; i < indices.size(); ++i)
|
||||
{
|
||||
// cout << "i:" << i << " indices:" << indices[i] << " diff:" << indices[i]-i << "\n";
|
||||
auto index = cloud.begin() + (indices[i] - i);
|
||||
// cout << "size:" << cloudPtr->size() << ",index:" << indices[i] - i<<"\n" ;
|
||||
if (indices[i] - i >= cloud.size())break;
|
||||
cloud.erase(index);
|
||||
}
|
||||
indices.clear();
|
||||
pclData->setIndices(indices);
|
||||
pclData->setCloud(cloud);
|
||||
updateQVTK(cloud, color);
|
||||
// pclData->getViewer()->updatePointCloud();
|
||||
}
|
||||
|
||||
// 导入点云
|
||||
void Reconstruction::on_pushButton_13_clicked()
|
||||
{
|
||||
if (loadingStatus)
|
||||
if (loadingStatus || reconstructStatus)
|
||||
{
|
||||
QMessageBox mesg;
|
||||
mesg.warning(this, "WARNING", "正在加载… ");
|
||||
mesg.warning(this, "WARNING", "There is a Point Cloud Loading.");
|
||||
return;
|
||||
}
|
||||
|
||||
QString fileName = QFileDialog::getOpenFileName(
|
||||
this, tr("open multiple image file"),
|
||||
"./", tr("PCD files(*.pcd);;All files (*.*)")); // todo 文件类型待确认
|
||||
"./", tr("PCD files(*.pcd);;PLY files(*.ply);;All files (*.*)")); // todo 文件类型待确认
|
||||
|
||||
if (fileName.isEmpty())
|
||||
{
|
||||
@@ -631,43 +754,53 @@ void Reconstruction::on_pushButton_13_clicked()
|
||||
mesg.warning(this, "WARNING", "Failed to open file");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
boost::shared_ptr<visualization::PCLVisualizer> viewer(new visualization::PCLVisualizer("3D Viewer"));
|
||||
viewer->setBackgroundColor(0.458, 0.529, 0.844);
|
||||
viewer->initCameraParameters();
|
||||
// viewer->setCameraPosition(0, -10, -25, 0, 1, 0, 0, 1, 0, 0);
|
||||
// viewer->setPosition(0, 0);
|
||||
ui.qvtkWidget->SetRenderWindow(viewer->getRenderWindow());
|
||||
auto pclData = PointCloudData::getInstance(cloud);
|
||||
pclData->setViewer(viewer);
|
||||
ui.label_9->setVisible(true);
|
||||
QCoreApplication::processEvents();
|
||||
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()
|
||||
{
|
||||
QColor colortmp = QColorDialog::getColor(Qt::black);
|
||||
if (colortmp.isValid()) {
|
||||
if (colortmp.isValid())
|
||||
{
|
||||
color = colortmp;
|
||||
updateQVTK(cloud, color);
|
||||
}
|
||||
@@ -679,4 +812,5 @@ void Reconstruction::on_pushButton_18_clicked()
|
||||
Help* help = new Help();
|
||||
help->show();
|
||||
}
|
||||
#pragma endregion
|
||||
|
||||
#pragma endregion
|
||||
@@ -7,13 +7,25 @@
|
||||
#include <QBuffer>
|
||||
#include <QTextStream>
|
||||
#include <QStyleFactory>
|
||||
#include <QScreen>
|
||||
#include <QtTest/QtTest>
|
||||
#include "DisplayPic.h"
|
||||
#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"
|
||||
@@ -23,15 +35,19 @@
|
||||
#include "Calibrator.h"
|
||||
#include "CalibrationData.h"
|
||||
#include "Device.h"
|
||||
#include "HisThread.h"
|
||||
#include "CoreAlgorithm.h"
|
||||
#include "MyThread.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
|
||||
@@ -50,17 +66,25 @@ private:
|
||||
QString picPath = "Result/result.png"; // 三维重建:拍摄照片的存储路径
|
||||
PointCloud<PointXYZRGB> cloud;
|
||||
bool confirmPic = false; // 三维重建:确定是否用所拍照片进行重建
|
||||
QColor color = Qt::black; // 点云渲染:颜色
|
||||
QColor color = Qt::yellow; // 点云渲染:颜色
|
||||
|
||||
// 标定相关变量
|
||||
int liveViewTimer;
|
||||
TreeModel* dirModel;
|
||||
CalibrationData* calibData;
|
||||
Calibrator* calibrator;
|
||||
int imgCount;
|
||||
|
||||
// 多线程
|
||||
MyThread* t;
|
||||
// 重建多线程
|
||||
YourThread *td;
|
||||
bool reconstructStatus = false; // 点云渲染
|
||||
|
||||
// 点云多线程
|
||||
MyThread *t;
|
||||
HisThread* htd;
|
||||
PolygonMesh mesh;
|
||||
bool loadingStatus = false; // 点云渲染
|
||||
bool possionStatus = false;
|
||||
void setStyle();
|
||||
void setPicStyle();
|
||||
void setButtonStyle();
|
||||
@@ -85,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();
|
||||
};
|
||||
74
Classes/YourThread.cpp
Normal file
74
Classes/YourThread.cpp
Normal file
@@ -0,0 +1,74 @@
|
||||
#include "YourThread.h"
|
||||
|
||||
YourThread::YourThread(PointCloud<PointXYZRGB> *cloudRef)
|
||||
{
|
||||
cloud = cloudRef;
|
||||
}
|
||||
|
||||
void YourThread::run()
|
||||
{
|
||||
// auto cArg = CameraArguments::getInstance();
|
||||
Mat r(3, 3, CV_32F);
|
||||
double m0[3][3] = {
|
||||
{9.7004457782050868e-001, 1.3447278830863673e-002, 2.4255450466457243e-001},
|
||||
{-8.7082927494022376e-003, 9.9974988338843274e-001, -2.0599424802792338e-002},
|
||||
{-2.4277084396282392e-001, 1.7870124701864658e-002, 9.6991905639837694e-001}
|
||||
};
|
||||
for (auto i = 0; i < r.rows; i++)
|
||||
for (auto j = 0; j < r.cols; j++)
|
||||
r.at<float>(i, j) = m0[i][j];
|
||||
|
||||
Mat t(1, 3, CV_32F);
|
||||
double m1[1][3] = {
|
||||
{-1.9511179496234658e+002, 1.2627509817628756e+001, -5.9345885017522171e+001}
|
||||
};
|
||||
|
||||
for (auto i = 0; i < t.rows; i++)
|
||||
for (auto j = 0; j < t.cols; j++)
|
||||
t.at<float>(i, j) = m1[i][j];
|
||||
|
||||
Mat kc(3, 3, CV_32F);
|
||||
double m2[3][3] = {
|
||||
{2.1536653255083029e+003, 0., 6.1886776197116581e+002},
|
||||
{0., 2.1484363899666910e+003, 5.0694898820460787e+002},
|
||||
{0., 0., 1.}
|
||||
};
|
||||
for (auto i = 0; i < kc.rows; i++)
|
||||
for (auto j = 0; j < kc.cols; j++)
|
||||
kc.at<float>(i, j) = m2[i][j];
|
||||
|
||||
Mat kp(3, 3, CV_32F);
|
||||
double m3[3][3] = {
|
||||
{1.7235093158297350e+003, 0., 4.4128195628736904e+002},
|
||||
{0., 3.4533404000869359e+003, 5.7316457428558715e+002},
|
||||
{0., 0., 1.}
|
||||
};
|
||||
for (auto i = 0; i < kp.rows; i++)
|
||||
for (auto j = 0; j < kp.cols; j++)
|
||||
kp.at<float>(i, j) = m3[i][j];
|
||||
|
||||
auto cArg = CameraArguments::getInstance(r, t, kc, kp);
|
||||
CoreAlgorithm testCase = CoreAlgorithm(path, cArg);
|
||||
testCase.run();
|
||||
vector<Mat> coordinates=testCase.getCoordinates();
|
||||
cloud->width = coordinates.size();
|
||||
cloud->height = 1;
|
||||
cloud->is_dense = false;
|
||||
cloud->points.resize(cloud->width * cloud->height);
|
||||
auto index = 0;
|
||||
for (size_t i = 0; i < cloud->points.size(); ++i)
|
||||
{
|
||||
cloud->points[i].x = coordinates[index].at<float>(0, 0);
|
||||
cloud->points[i].y = coordinates[index].at<float>(0, 1);
|
||||
cloud->points[i].z = coordinates[index].at<float>(0, 2);
|
||||
index++;
|
||||
}
|
||||
|
||||
auto pclData = PointCloudData::getInstance(*cloud);
|
||||
pclData->setCloud(*cloud);
|
||||
}
|
||||
|
||||
void YourThread::setPath(string pathArg)
|
||||
{
|
||||
path = pathArg;
|
||||
}
|
||||
25
Classes/YourThread.h
Normal file
25
Classes/YourThread.h
Normal file
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
#include <qthread.h>
|
||||
#include <pcl/point_types.h>
|
||||
#include <pcl/io/vtk_lib_io.h>
|
||||
#include "PointCloudData.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace pcl;
|
||||
|
||||
class YourThread :
|
||||
public QThread
|
||||
{
|
||||
public:
|
||||
YourThread(PointCloud<PointXYZRGB> *cloud);
|
||||
~YourThread(){}
|
||||
void setPath(string pathArg);
|
||||
|
||||
|
||||
private:
|
||||
PointCloud<PointXYZRGB> *cloud;
|
||||
string path;
|
||||
protected:
|
||||
void run();
|
||||
};
|
||||
@@ -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();
|
||||
|
||||
3071
Data/result/1.pcd
Normal file
3071
Data/result/1.pcd
Normal file
File diff suppressed because it is too large
Load Diff
176786
Data/result/ball.pcd
Normal file
176786
Data/result/ball.pcd
Normal file
File diff suppressed because it is too large
Load Diff
35958
Data/result/bunny.pcd
Normal file
35958
Data/result/bunny.pcd
Normal file
File diff suppressed because it is too large
Load Diff
100011
Data/result/rail.pcd
Normal file
100011
Data/result/rail.pcd
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Data/result/result.ply
Normal file
BIN
Data/result/result.ply
Normal file
Binary file not shown.
BIN
Data/result/table_scene_lms400.pcd
Normal file
BIN
Data/result/table_scene_lms400.pcd
Normal file
Binary file not shown.
201
LICENSE
Normal file
201
LICENSE
Normal file
@@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
12
Readme.md
12
Readme.md
@@ -2,7 +2,7 @@
|
||||
|
||||
高铁列车运行速度快,轮轨表面相对光滑且无明显特征点,使得特征不易提取,点云重建精度较差,给三维重建带来了很大的困难。
|
||||
|
||||
<div class="imgs" align="center" ><img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/00.gif" alt="01" width="45%" height="45%" /> </div>
|
||||
<div class="imgs" align="center" ><img src="http://static.zybuluo.com/TangWill/83s2b1jh93zumwaeavyhn0w2/00.gif" alt="01" width="45%" height="45%"/></div>
|
||||
|
||||
针对高铁列车速度快的特点,可以通过采用非接触的测量方法 —— 计算机视觉。物体表面的点云三维重建在机器视觉领域已经成为一个很重要的研究方向。点云即物体表面特征点的集合,这些点包含了物体表面的三维坐标以及颜色等信息。点云的重建方法包括基于结构光的三维重建技术、光照模型、基于单目视觉或双目视觉的重建方法等。
|
||||
|
||||
@@ -12,24 +12,24 @@
|
||||
|
||||
项目前期,对项目研究内容进行深入了解,根据研究内容查阅相关文献资料,了解了目前各项技术研究现状,能够明白经典方法的原理并能够将其实现。在学习并理解了研究内容及相关原理的基础上,对空间编码中的基于 De Bruijn 序列编码和基于伪随机矩阵编码两种方式的有关理论及其相关论文进行了学习,部分论文如下所示。
|
||||
|
||||
<div class="imgs" align="center" ><img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/02.png" alt="03" width="30%" height="30%" /> <img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/03.png" alt="04" width="30%" height="30%" /> <img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/04.png" alt="05" width="30%" height="30%" /></div>
|
||||
<div class="imgs" align="center" ><img src="http://static.zybuluo.com/TangWill/epo24nprhgogp1g0s38hiwy7/02.png" alt="03" width="30%" height="30%" /> <img src="http://static.zybuluo.com/TangWill/6q8x3x920nxdyluimu43gut1/03.png" alt="04" width="30%" height="30%" /> <img src="http://static.zybuluo.com/TangWill/z6giu9sqibq08fc1crweplxa/04.png" alt="05" width="30%" height="30%" /></div>
|
||||
|
||||
项目中期,对前期所阅读的文献和经典算法的实现进行研究、归纳、整理。参照本项目的研究内容拟选出适用的相关算法与技术,提出实验思路,制定实验方案。
|
||||
|
||||
伪随机序列具有良好的窗口特性,即通过一个较小的窗口在编码图案上面移动时,每个窗口内的编码组合是唯一的,根据窗口的这个特性可以唯一地辨识编码图案上的特征点。复现论文的本原多项式采用 h(x)=2𝑥^6+2𝑥^5+𝑥^4+3𝑥^3+2𝑥^2+2𝑥+1,菱形作为结构光编码图案的基本元素,红、蓝、绿、黑四种颜色作为标记菱形代表的不同数值,窗口大小为$2\times 3$,同时以菱形角点作为特征点,可以有效提高特征点提取的精度。根据论文提出的结构光解码方法,可有效提取物体表面特征点,但由于角点数量较少,不能达到稠密点云的效果,未来可以通过改善相机分辨率,减小菱形面积,增加特征点等方式以提高特征点的密度。部分参考论文和实验结果如下。
|
||||
|
||||
<div class="imgs" align="center" ><img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/04.png" alt="06" width="22%" height="22%" /> <img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/05.png" alt="07" width="22%" height="22%" /> <img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/06.png" alt="08" width="22%" height="22%" /><img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/07.png" alt="09" width="22%" height="22%" /></div>
|
||||
<div class="imgs" align="center" ><img src="http://static.zybuluo.com/TangWill/z6giu9sqibq08fc1crweplxa/04.png" alt="06" width="22%" height="22%" /> <img src="http://static.zybuluo.com/TangWill/9jljaktk7e3qso61by60pohf/05.png" alt="07" width="22%" height="22%" /> <img src="http://static.zybuluo.com/TangWill/1wqxgxn4iwdicq1v9rs04e1x/06.png" alt="08" width="22%" height="22%" /><img src="http://static.zybuluo.com/TangWill/s3gah640whmsbfxoxzg2pqib/07.png" alt="09" width="22%" height="22%" /></div>
|
||||
|
||||
De Bruijn 序列由n种不同元素构成,任意长度为m的连续子序列只出现一次。复现的论文以 B(3,4) 序列进行编码,条纹作为结构光编码图案的基本元素,红、蓝、绿三种颜色作为标记条纹代表的不同数值,窗口大小为 4*1,以条纹中心点作为特征点。同时在 HSV 颜色空间模型中,以余弦函数对条纹的 V 通道进行编码。在结构光解码时,除了提取条纹中心点作为特征点,同时对拍摄到的图像的 V 通道进行加窗傅里叶变换分析,通过分析得到的相位进而增加特征点的密度。根据论文的基本思路,可在提高提取点云进度的同时增加点云的稠密度,实验效果较好。根据项目内容和有关研究的进展,在研究论文和实验的基础上,对复现论文的算法进行改进,提出适合项目场景的算法流程。部分论文如下。
|
||||
|
||||
<div class="imgs" align="center" ><img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/08.png" alt="10" width="22%" height="22%" /> <img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/09.png" alt="11" width="22%" height="22%" /> <img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/10.png" alt="12" width="22%" height="22%" /><img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/11.png" alt="13" width="22%" height="22%" /></div>
|
||||
<div class="imgs" align="center" ><img src="http://static.zybuluo.com/TangWill/i9bvx3xay0c8v4040hjzulcv/08.png" alt="10" width="22%" height="22%" /> <img src="http://static.zybuluo.com/TangWill/wspx83923ujobnjysj4y2l3h/09.png" alt="11" width="22%" height="22%" /> <img src="http://static.zybuluo.com/TangWill/pflvpf9yzwkfw8csn0at2trl/10.png" alt="12" width="22%" height="22%" /><img src="http://static.zybuluo.com/TangWill/v0cdilgqhy1k4oqaw2dhdpgh/11.png" alt="13" width="22%" height="22%" /></div>
|
||||
|
||||
基于改进的算法对球体表面进行重建,得到约 17W 条点云数据,在 Meshlab 中对点云数据进行渲染,实验结果如下。
|
||||
<div class="imgs" align="center" ><img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/13.png" alt="14" /></div>
|
||||
<div class="imgs" align="center" ><img src="http://static.zybuluo.com/TangWill/etw2k42uqvbb63zyvbry0ki6/13.png" alt="14" /></div>
|
||||
|
||||
改用以 B(4,3) 序列进行编码,条纹作为结构光编码图案的基本元素,红、蓝、绿、白四种颜色作为标记条纹代表的不同数值,窗口大小为 3*1,以条纹中心点作为特征点。同样对球体表面进行重建,得到约 20W 条点云数据,在 Meshlab 中对点云数据进行渲染,实验结果如下。
|
||||
|
||||
<div class="imgs" align="center" ><img src="https://5618.oss-cn-beijing.aliyuncs.com/wordpress/image/00/14.png" alt="15" /></div>
|
||||
<div class="imgs" align="center" ><img src="http://static.zybuluo.com/TangWill/8z4qxmk5467d6r7rpr1brpkg/14.png" alt="15" /></div>
|
||||
|
||||
---
|
||||
|
||||
|
||||
73
Reconstruction.rc
Normal file
73
Reconstruction.rc
Normal 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
|
||||
|
||||
@@ -39,8 +39,12 @@
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<IncludePath>D:\BJTU\Reconstruction\Lib\FlyCapture2\include;D:\BJTU\Reconstruction\Lib\FlyCapture2\include\C;D:\BJTU\Reconstruction\Lib\opencv\build\include;D:\BJTU\Reconstruction\Lib\opencv\build\include\opencv2;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>D:\BJTU\Reconstruction\Lib\FlyCapture2\lib64;D:\BJTU\Reconstruction\Lib\FlyCapture2\lib64\vs2015;D:\BJTU\Reconstruction\Lib\opencv\build\x64\vc15\lib;$(LibraryPath)</LibraryPath>
|
||||
<IncludePath>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;D:\BJTU\Reconstruction\Lib\FlyCapture2\include;D:\BJTU\Reconstruction\Lib\FlyCapture2\include\C;D:\BJTU\Reconstruction\Lib\opencv\build\include;D:\BJTU\Reconstruction\Lib\opencv\build\include\opencv2;$(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;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\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" />
|
||||
@@ -63,12 +67,14 @@
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<AdditionalDependencies>setupapi.lib;opencv_world420d.lib;FlyCapture2d_v140.lib;FlyCapture2GUId_v140.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>setupapi.lib;opencv_world420d.lib;FlyCapture2d_v140.lib;FlyCapture2GUId_v140.lib;pcl_common_debug.lib;pcl_features_debug.lib;pcl_filters_debug.lib;pcl_io_debug.lib;pcl_io_ply_debug.lib;pcl_kdtree_debug.lib;pcl_keypoints_debug.lib;pcl_ml_debug.lib;pcl_octree_debug.lib;pcl_outofcore_debug.lib;pcl_people_debug.lib;pcl_recognition_debug.lib;pcl_registration_debug.lib;pcl_sample_consensus_debug.lib;pcl_search_debug.lib;pcl_segmentation_debug.lib;pcl_stereo_debug.lib;pcl_surface_debug.lib;pcl_tracking_debug.lib;pcl_visualization_debug.lib;vtkalglib-8.0-gd.lib;vtkChartsCore-8.0-gd.lib;vtkCommonColor-8.0-gd.lib;vtkCommonComputationalGeometry-8.0-gd.lib;vtkCommonCore-8.0-gd.lib;vtkCommonDataModel-8.0-gd.lib;vtkCommonExecutionModel-8.0-gd.lib;vtkCommonMath-8.0-gd.lib;vtkCommonMisc-8.0-gd.lib;vtkCommonSystem-8.0-gd.lib;vtkCommonTransforms-8.0-gd.lib;vtkDICOMParser-8.0-gd.lib;vtkDomainsChemistry-8.0-gd.lib;vtkDomainsChemistryOpenGL2-8.0-gd.lib;vtkexoIIc-8.0-gd.lib;vtkexpat-8.0-gd.lib;vtkFiltersAMR-8.0-gd.lib;vtkFiltersCore-8.0-gd.lib;vtkFiltersExtraction-8.0-gd.lib;vtkFiltersFlowPaths-8.0-gd.lib;vtkFiltersGeneral-8.0-gd.lib;vtkFiltersGeneric-8.0-gd.lib;vtkFiltersGeometry-8.0-gd.lib;vtkFiltersHybrid-8.0-gd.lib;vtkFiltersHyperTree-8.0-gd.lib;vtkFiltersImaging-8.0-gd.lib;vtkFiltersModeling-8.0-gd.lib;vtkFiltersParallel-8.0-gd.lib;vtkFiltersParallelImaging-8.0-gd.lib;vtkFiltersPoints-8.0-gd.lib;vtkFiltersProgrammable-8.0-gd.lib;vtkFiltersSelection-8.0-gd.lib;vtkFiltersSMP-8.0-gd.lib;vtkFiltersSources-8.0-gd.lib;vtkFiltersStatistics-8.0-gd.lib;vtkFiltersTexture-8.0-gd.lib;vtkFiltersTopology-8.0-gd.lib;vtkFiltersVerdict-8.0-gd.lib;vtkfreetype-8.0-gd.lib;vtkGeovisCore-8.0-gd.lib;vtkgl2ps-8.0-gd.lib;vtkglew-8.0-gd.lib;vtkGUISupportQt-8.0-gd.lib;vtkGUISupportQtSQL-8.0-gd.lib;vtkhdf5-8.0-gd.lib;vtkhdf5_hl-8.0-gd.lib;vtkImagingColor-8.0-gd.lib;vtkImagingCore-8.0-gd.lib;vtkImagingFourier-8.0-gd.lib;vtkImagingGeneral-8.0-gd.lib;vtkImagingHybrid-8.0-gd.lib;vtkImagingMath-8.0-gd.lib;vtkImagingMorphological-8.0-gd.lib;vtkImagingSources-8.0-gd.lib;vtkImagingStatistics-8.0-gd.lib;vtkImagingStencil-8.0-gd.lib;vtkInfovisCore-8.0-gd.lib;vtkInfovisLayout-8.0-gd.lib;vtkInteractionImage-8.0-gd.lib;vtkInteractionStyle-8.0-gd.lib;vtkInteractionWidgets-8.0-gd.lib;vtkIOAMR-8.0-gd.lib;vtkIOCore-8.0-gd.lib;vtkIOEnSight-8.0-gd.lib;vtkIOExodus-8.0-gd.lib;vtkIOExport-8.0-gd.lib;vtkIOExportOpenGL2-8.0-gd.lib;vtkIOGeometry-8.0-gd.lib;vtkIOImage-8.0-gd.lib;vtkIOImport-8.0-gd.lib;vtkIOInfovis-8.0-gd.lib;vtkIOLegacy-8.0-gd.lib;vtkIOLSDyna-8.0-gd.lib;vtkIOMINC-8.0-gd.lib;vtkIOMovie-8.0-gd.lib;vtkIONetCDF-8.0-gd.lib;vtkIOParallel-8.0-gd.lib;vtkIOParallelXML-8.0-gd.lib;vtkIOPLY-8.0-gd.lib;vtkIOSQL-8.0-gd.lib;vtkIOTecplotTable-8.0-gd.lib;vtkIOVideo-8.0-gd.lib;vtkIOXML-8.0-gd.lib;vtkIOXMLParser-8.0-gd.lib;vtkjpeg-8.0-gd.lib;vtkjsoncpp-8.0-gd.lib;vtklibharu-8.0-gd.lib;vtklibxml2-8.0-gd.lib;vtklz4-8.0-gd.lib;vtkmetaio-8.0-gd.lib;vtkNetCDF-8.0-gd.lib;vtknetcdf_c++-gd.lib;vtkoggtheora-8.0-gd.lib;vtkParallelCore-8.0-gd.lib;vtkpng-8.0-gd.lib;vtkproj4-8.0-gd.lib;vtkRenderingAnnotation-8.0-gd.lib;vtkRenderingContext2D-8.0-gd.lib;vtkRenderingContextOpenGL2-8.0-gd.lib;vtkRenderingCore-8.0-gd.lib;vtkRenderingFreeType-8.0-gd.lib;vtkRenderingGL2PSOpenGL2-8.0-gd.lib;vtkRenderingImage-8.0-gd.lib;vtkRenderingLabel-8.0-gd.lib;vtkRenderingLOD-8.0-gd.lib;vtkRenderingOpenGL2-8.0-gd.lib;vtkRenderingQt-8.0-gd.lib;vtkRenderingVolume-8.0-gd.lib;vtkRenderingVolumeOpenGL2-8.0-gd.lib;vtksqlite-8.0-gd.lib;vtksys-8.0-gd.lib;vtktiff-8.0-gd.lib;vtkverdict-8.0-gd.lib;vtkViewsContext2D-8.0-gd.lib;vtkViewsCore-8.0-gd.lib;vtkViewsInfovis-8.0-gd.lib;vtkViewsQt-8.0-gd.lib;vtkzlib-8.0-gd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
@@ -77,29 +83,66 @@
|
||||
<DebugInformationFormat />
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
|
||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_SILENCE_FPOS_SEEKPOS_DEPRECATION_WARNING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<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>
|
||||
<QtUic Include="UI\DisplayPic.ui" />
|
||||
<QtUic Include="UI\Help.ui" />
|
||||
<QtUic Include="UI\Loading.ui" />
|
||||
<QtUic Include="UI\Reconstruction.ui" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Classes\CoreAlgorithm.cpp" />
|
||||
<ClCompile Include="Classes\API.cpp" />
|
||||
<ClCompile Include="Classes\bsxfun.cpp" />
|
||||
<ClCompile Include="Classes\CalibrationData.cpp" />
|
||||
<ClCompile Include="Classes\Calibrator.cpp" />
|
||||
<ClCompile Include="Classes\Camera.cpp" />
|
||||
<ClCompile Include="Classes\CameraPointGrey.cpp" />
|
||||
<ClCompile Include="Classes\CameraArguments.cpp" />
|
||||
<ClCompile Include="Classes\CoreAlgorithm.cpp" />
|
||||
<ClCompile Include="Classes\cvtools.cpp" />
|
||||
<ClCompile Include="Classes\cwt.cpp" />
|
||||
<ClCompile Include="Classes\cwtfilterbank.cpp" />
|
||||
<ClCompile Include="Classes\cwtfreqlimits.cpp" />
|
||||
<ClCompile Include="Classes\cwt_data.cpp" />
|
||||
<ClCompile Include="Classes\cwt_emxAPI.cpp" />
|
||||
<ClCompile Include="Classes\cwt_emxutil.cpp" />
|
||||
<ClCompile Include="Classes\cwt_initialize.cpp" />
|
||||
<ClCompile Include="Classes\cwt_rtwutil.cpp" />
|
||||
<ClCompile Include="Classes\cwt_terminate.cpp" />
|
||||
<ClCompile Include="Classes\Device.cpp" />
|
||||
<ClCompile Include="Classes\DisplayPic.cpp" />
|
||||
<ClCompile Include="Classes\fft.cpp" />
|
||||
<ClCompile Include="Classes\fft1.cpp" />
|
||||
<ClCompile Include="Classes\fstools.cpp" />
|
||||
<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" />
|
||||
<ClCompile Include="Classes\main.cpp" />
|
||||
<ClCompile Include="Classes\MyThread.cpp" />
|
||||
<ClCompile Include="Classes\PointCloudData.cpp" />
|
||||
<ClCompile Include="Classes\ProjectorLC4500.cpp" />
|
||||
<ClCompile Include="Classes\Reconstruction.cpp" />
|
||||
<ClCompile Include="Lib\projector\LC4500API\API.cpp" />
|
||||
<ClCompile Include="Lib\projector\LC4500API\hid.Win.c" />
|
||||
<ClCompile Include="Lib\projector\LC4500API\usb.cpp" />
|
||||
<ClCompile Include="Lib\projector\ProjectorLC4500.cpp" />
|
||||
<ClCompile Include="Classes\rtGetInf.cpp" />
|
||||
<ClCompile Include="Classes\rtGetNaN.cpp" />
|
||||
<ClCompile Include="Classes\rt_nonfinite.cpp" />
|
||||
<ClCompile Include="Classes\structured_light.cpp" />
|
||||
<ClCompile Include="Classes\TreeModel.cpp" />
|
||||
<ClCompile Include="Classes\usb.cpp" />
|
||||
<ClCompile Include="Classes\wavCFandSD.cpp" />
|
||||
<ClCompile Include="Classes\YourThread.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtMoc Include="Classes\Reconstruction.h" />
|
||||
@@ -108,16 +151,61 @@
|
||||
<QtRcc Include="Resources\Reconstruction.qrc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Classes\CoreAlgorithm.h" />
|
||||
<ClInclude Include="Classes\API.h" />
|
||||
<ClInclude Include="Classes\bsxfun.h" />
|
||||
<ClInclude Include="Classes\CalibrationData.h" />
|
||||
<ClInclude Include="Classes\Calibrator.h" />
|
||||
<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="Lib\projector\LC4500API\API.h" />
|
||||
<ClInclude Include="Lib\projector\LC4500API\Common.h" />
|
||||
<ClInclude Include="Lib\projector\LC4500API\hidapi.h" />
|
||||
<ClInclude Include="Lib\projector\LC4500API\usb.h" />
|
||||
<ClInclude Include="Lib\projector\Projector.h" />
|
||||
<ClInclude Include="Lib\projector\ProjectorLC4500.h" />
|
||||
<ClInclude Include="Classes\Common.h" />
|
||||
<ClInclude Include="Classes\CoreAlgorithm.h" />
|
||||
<ClInclude Include="Classes\cvtools.h" />
|
||||
<ClInclude Include="Classes\cwt.h" />
|
||||
<ClInclude Include="Classes\cwtfilterbank.h" />
|
||||
<ClInclude Include="Classes\cwtfreqlimits.h" />
|
||||
<ClInclude Include="Classes\cwt_data.h" />
|
||||
<ClInclude Include="Classes\cwt_emxAPI.h" />
|
||||
<ClInclude Include="Classes\cwt_emxutil.h" />
|
||||
<ClInclude Include="Classes\cwt_initialize.h" />
|
||||
<ClInclude Include="Classes\cwt_rtwutil.h" />
|
||||
<ClInclude Include="Classes\cwt_terminate.h" />
|
||||
<ClInclude Include="Classes\cwt_types.h" />
|
||||
<ClInclude Include="Classes\Device.h" />
|
||||
<ClInclude Include="Classes\fft.h" />
|
||||
<ClInclude Include="Classes\fft1.h" />
|
||||
<ClInclude Include="Classes\fstools.h" />
|
||||
<ClInclude Include="Classes\gammaln.h" />
|
||||
<QtMoc Include="Classes\Help.h" />
|
||||
<ClInclude Include="Classes\hidapi.h" />
|
||||
<ClInclude Include="Classes\ifft.h" />
|
||||
<ClInclude Include="Classes\log2.h" />
|
||||
<ClInclude Include="Classes\MyThread.h" />
|
||||
<ClInclude Include="Classes\Projector.h" />
|
||||
<ClInclude Include="Classes\ProjectorLC4500.h" />
|
||||
<ClInclude Include="Classes\rtGetInf.h" />
|
||||
<ClInclude Include="Classes\rtGetNaN.h" />
|
||||
<ClInclude Include="Classes\rtwtypes.h" />
|
||||
<ClInclude Include="Classes\rt_defines.h" />
|
||||
<ClInclude Include="Classes\rt_nonfinite.h" />
|
||||
<ClInclude Include="Classes\structured_light.h" />
|
||||
<ClInclude Include="Classes\tmwtypes.h" />
|
||||
<ClInclude Include="Classes\TreeModel.h" />
|
||||
<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')">
|
||||
|
||||
@@ -17,12 +17,6 @@
|
||||
<Filter Include="lib">
|
||||
<UniqueIdentifier>{bfb1e724-306d-436f-9c4b-61bcfde16fb2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="lib\projector">
|
||||
<UniqueIdentifier>{0a72a89e-fc22-42c6-9293-1cf2d411e663}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="lib\projector\LC4500API">
|
||||
<UniqueIdentifier>{b0d62f9b-d43c-4971-9e7c-a0cc53e4140f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\scene">
|
||||
<UniqueIdentifier>{2ae873f3-9729-42ac-8918-28ee9ea3c253}</UniqueIdentifier>
|
||||
</Filter>
|
||||
@@ -50,6 +44,29 @@
|
||||
<Filter Include="resource\font">
|
||||
<UniqueIdentifier>{ec183521-b5e0-408b-9e24-aa9910874ed3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\reconstruction\cwt">
|
||||
<UniqueIdentifier>{67a013bf-9fd9-4fa2-a2a7-e8d6817bcc7a}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\reconstruction\tool">
|
||||
<UniqueIdentifier>{defd3eaf-903c-49c5-a2d6-2edbeb2f02b3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\reconstruction\calibrator">
|
||||
<UniqueIdentifier>{3a7d9bd9-24e9-4558-9564-4ef98bd12ea3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\reconstruction\camera">
|
||||
<UniqueIdentifier>{288ad6dd-dd7c-43f3-abd5-8998c2a01d04}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="src\reconstruction\projector">
|
||||
<UniqueIdentifier>{762af5a3-10df-4dc7-8ce8-ed2501d9eb12}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<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">
|
||||
@@ -61,6 +78,9 @@
|
||||
<QtUic Include="UI\Loading.ui">
|
||||
<Filter>ui</Filter>
|
||||
</QtUic>
|
||||
<QtUic Include="UI\Help.ui">
|
||||
<Filter>ui</Filter>
|
||||
</QtUic>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Classes\main.cpp">
|
||||
@@ -69,30 +89,129 @@
|
||||
<ClCompile Include="Classes\Reconstruction.cpp">
|
||||
<Filter>src</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Lib\projector\LC4500API\API.cpp">
|
||||
<Filter>lib\projector\LC4500API</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Lib\projector\LC4500API\hid.Win.c">
|
||||
<Filter>lib\projector\LC4500API</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Lib\projector\LC4500API\usb.cpp">
|
||||
<Filter>lib\projector\LC4500API</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Lib\projector\ProjectorLC4500.cpp">
|
||||
<Filter>lib\projector</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\CameraArguments.cpp">
|
||||
<Filter>src\reconstruction</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\Loading.cpp">
|
||||
<Filter>src\scene\loadingscene</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\DisplayPic.cpp">
|
||||
<Filter>src\scene\resultscene</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\cwt_emxAPI.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\cwt_emxutil.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\ifft.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\fft1.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\fft.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\bsxfun.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\gammaln.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\wavCFandSD.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\cwtfreqlimits.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\log2.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\cwtfilterbank.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\cwt.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\cwt_terminate.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\cwt_initialize.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\cwt_data.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\cwt_rtwutil.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\rtGetInf.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\rtGetNaN.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\rt_nonfinite.cpp">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\CalibrationData.cpp">
|
||||
<Filter>src\reconstruction\calibrator</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\cvtools.cpp">
|
||||
<Filter>src\reconstruction\tool</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\Camera.cpp">
|
||||
<Filter>src\reconstruction\camera</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\CameraPointGrey.cpp">
|
||||
<Filter>src\reconstruction\camera</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\Calibrator.cpp">
|
||||
<Filter>src\reconstruction\calibrator</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\structured_light.cpp">
|
||||
<Filter>src\reconstruction\tool</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\ProjectorLC4500.cpp">
|
||||
<Filter>src\reconstruction\projector</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\API.cpp">
|
||||
<Filter>src\reconstruction\projector</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\usb.cpp">
|
||||
<Filter>src\reconstruction\projector</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\CoreAlgorithm.cpp">
|
||||
<Filter>src\reconstruction</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\Help.cpp">
|
||||
<Filter>src\scene\resultscene</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\Device.cpp">
|
||||
<Filter>src\reconstruction\tool</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\TreeModel.cpp">
|
||||
<Filter>src\reconstruction\tool</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\fstools.cpp">
|
||||
<Filter>src\reconstruction\tool</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\hid.Win.c">
|
||||
<Filter>src\reconstruction\projector</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\YourThread.cpp">
|
||||
<Filter>src\scene\mainscene</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Classes\CameraArguments.cpp">
|
||||
<Filter>src\reconstruction\calibrator</Filter>
|
||||
</ClCompile>
|
||||
<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">
|
||||
@@ -104,6 +223,9 @@
|
||||
<QtMoc Include="Classes\DisplayPic.h">
|
||||
<Filter>src\scene\resultscene</Filter>
|
||||
</QtMoc>
|
||||
<QtMoc Include="Classes\Help.h">
|
||||
<Filter>src\scene\resultscene</Filter>
|
||||
</QtMoc>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtRcc Include="Resources\Reconstruction.qrc">
|
||||
@@ -111,29 +233,147 @@
|
||||
</QtRcc>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Lib\projector\LC4500API\API.h">
|
||||
<Filter>lib\projector\LC4500API</Filter>
|
||||
<ClInclude Include="Classes\cwt_emxAPI.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Lib\projector\LC4500API\Common.h">
|
||||
<Filter>lib\projector\LC4500API</Filter>
|
||||
<ClInclude Include="Classes\cwt_emxutil.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Lib\projector\LC4500API\hidapi.h">
|
||||
<Filter>lib\projector\LC4500API</Filter>
|
||||
<ClInclude Include="Classes\ifft.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Lib\projector\LC4500API\usb.h">
|
||||
<Filter>lib\projector\LC4500API</Filter>
|
||||
<ClInclude Include="Classes\fft1.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Lib\projector\Projector.h">
|
||||
<Filter>lib\projector</Filter>
|
||||
<ClInclude Include="Classes\fft.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Lib\projector\ProjectorLC4500.h">
|
||||
<Filter>lib\projector</Filter>
|
||||
<ClInclude Include="Classes\bsxfun.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\CameraArguments.h">
|
||||
<Filter>src\reconstruction</Filter>
|
||||
<ClInclude Include="Classes\gammaln.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\wavCFandSD.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\cwtfreqlimits.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\log2.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\cwtfilterbank.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\cwt.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\cwt_terminate.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\cwt_initialize.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\cwt_data.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\cwt_types.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\cwt_rtwutil.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\rt_defines.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\rtGetInf.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\rtGetNaN.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\rt_nonfinite.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\rtwtypes.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\tmwtypes.h">
|
||||
<Filter>src\reconstruction\cwt</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\MyThread.h">
|
||||
<Filter>src\scene\resultscene</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\CalibrationData.h">
|
||||
<Filter>src\reconstruction\calibrator</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\cvtools.h">
|
||||
<Filter>src\reconstruction\tool</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\Camera.h">
|
||||
<Filter>src\reconstruction\camera</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\CameraPointGrey.h">
|
||||
<Filter>src\reconstruction\camera</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\Calibrator.h">
|
||||
<Filter>src\reconstruction\calibrator</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\structured_light.h">
|
||||
<Filter>src\reconstruction\tool</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\Projector.h">
|
||||
<Filter>src\reconstruction\projector</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\ProjectorLC4500.h">
|
||||
<Filter>src\reconstruction\projector</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\API.h">
|
||||
<Filter>src\reconstruction\projector</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\Common.h">
|
||||
<Filter>src\reconstruction\projector</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\hidapi.h">
|
||||
<Filter>src\reconstruction\projector</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\usb.h">
|
||||
<Filter>src\reconstruction\projector</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\CoreAlgorithm.h">
|
||||
<Filter>src\reconstruction</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\Device.h">
|
||||
<Filter>src\reconstruction\tool</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\TreeModel.h">
|
||||
<Filter>src\reconstruction\tool</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\fstools.h">
|
||||
<Filter>src\reconstruction\tool</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\YourThread.h">
|
||||
<Filter>src\scene\mainscene</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Classes\CameraArguments.h">
|
||||
<Filter>src\reconstruction\calibrator</Filter>
|
||||
</ClInclude>
|
||||
<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>
|
||||
@@ -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>
|
||||
|
||||
BIN
Resources/image/common/icon.ico
Normal file
BIN
Resources/image/common/icon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
BIN
Resources/image/common/icon.png
Normal file
BIN
Resources/image/common/icon.png
Normal file
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 |
BIN
Resources/image/reconstruction/help2.png
Normal file
BIN
Resources/image/reconstruction/help2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 818 B |
BIN
Resources/image/reconstruction/surface.png
Normal file
BIN
Resources/image/reconstruction/surface.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
@@ -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>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,2 @@
|
||||
Reading Qt configuration (D:\Qt\5.12.3\msvc2017_64\bin\qmake.exe)
|
||||
CoreAlgorithm.cpp
|
||||
正在创建库 D:\BJTU\Reconstruction\x64\Debug\Reconstruction.lib 和对象 D:\BJTU\Reconstruction\x64\Debug\Reconstruction.exp
|
||||
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.
Binary file not shown.
@@ -1,2 +1,2 @@
|
||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v142:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0
|
||||
PlatformToolSet=v142:VCToolArchitecture=Native32Bit:VCToolsVersion=14.25.28610:TargetPlatformVersion=10.0.18362.0:
|
||||
Debug|x64|D:\BJTU\Reconstruction\|
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -21,8 +21,8 @@ QT_BEGIN_MOC_NAMESPACE
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_DEPRECATED
|
||||
struct qt_meta_stringdata_Reconstruction_t {
|
||||
QByteArrayData data[20];
|
||||
char stringdata0[425];
|
||||
QByteArrayData data[24];
|
||||
char stringdata0[509];
|
||||
};
|
||||
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||
@@ -49,8 +49,12 @@ QT_MOC_LITERAL(14, 305, 24), // "on_pushButton_13_clicked"
|
||||
QT_MOC_LITERAL(15, 330, 24), // "on_pushButton_14_clicked"
|
||||
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, 12), // "setPicAction"
|
||||
QT_MOC_LITERAL(19, 418, 6) // "action"
|
||||
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, 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"
|
||||
@@ -65,8 +69,11 @@ QT_MOC_LITERAL(19, 418, 6) // "action"
|
||||
"on_pushButton_13_clicked\0"
|
||||
"on_pushButton_14_clicked\0"
|
||||
"on_pushButton_15_clicked\0"
|
||||
"on_pushButton_16_clicked\0setPicAction\0"
|
||||
"action"
|
||||
"on_pushButton_16_clicked\0"
|
||||
"on_pushButton_17_clicked\0"
|
||||
"on_pushButton_18_clicked\0"
|
||||
"on_pushButton_19_clicked\0setPicAction\0"
|
||||
"action\0setCloud"
|
||||
};
|
||||
#undef QT_MOC_LITERAL
|
||||
|
||||
@@ -76,7 +83,7 @@ static const uint qt_meta_data_Reconstruction[] = {
|
||||
8, // revision
|
||||
0, // classname
|
||||
0, 0, // classinfo
|
||||
17, 14, // methods
|
||||
21, 14, // methods
|
||||
0, 0, // properties
|
||||
0, 0, // enums/sets
|
||||
0, 0, // constructors
|
||||
@@ -84,23 +91,27 @@ static const uint qt_meta_data_Reconstruction[] = {
|
||||
0, // signalCount
|
||||
|
||||
// slots: name, argc, parameters, tag, flags
|
||||
1, 0, 99, 2, 0x08 /* Private */,
|
||||
3, 0, 100, 2, 0x08 /* Private */,
|
||||
4, 0, 101, 2, 0x08 /* Private */,
|
||||
5, 0, 102, 2, 0x08 /* Private */,
|
||||
6, 0, 103, 2, 0x08 /* Private */,
|
||||
7, 0, 104, 2, 0x08 /* Private */,
|
||||
8, 0, 105, 2, 0x08 /* Private */,
|
||||
9, 0, 106, 2, 0x08 /* Private */,
|
||||
10, 0, 107, 2, 0x08 /* Private */,
|
||||
11, 0, 108, 2, 0x08 /* Private */,
|
||||
12, 0, 109, 2, 0x08 /* Private */,
|
||||
13, 0, 110, 2, 0x08 /* Private */,
|
||||
14, 0, 111, 2, 0x08 /* Private */,
|
||||
15, 0, 112, 2, 0x08 /* Private */,
|
||||
16, 0, 113, 2, 0x08 /* Private */,
|
||||
17, 0, 114, 2, 0x08 /* Private */,
|
||||
18, 1, 115, 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,
|
||||
@@ -119,7 +130,11 @@ static const uint qt_meta_data_Reconstruction[] = {
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void, QMetaType::QString, 19,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void,
|
||||
QMetaType::Void, QMetaType::QString, 22,
|
||||
QMetaType::Void,
|
||||
|
||||
0 // eod
|
||||
};
|
||||
@@ -146,7 +161,11 @@ void Reconstruction::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _
|
||||
case 13: _t->on_pushButton_14_clicked(); break;
|
||||
case 14: _t->on_pushButton_15_clicked(); break;
|
||||
case 15: _t->on_pushButton_16_clicked(); break;
|
||||
case 16: _t->setPicAction((*reinterpret_cast< QString(*)>(_a[1]))); break;
|
||||
case 16: _t->on_pushButton_17_clicked(); break;
|
||||
case 17: _t->on_pushButton_18_clicked(); 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: ;
|
||||
}
|
||||
}
|
||||
@@ -181,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 < 17)
|
||||
if (_id < 21)
|
||||
qt_static_metacall(this, _c, _id, _a);
|
||||
_id -= 17;
|
||||
_id -= 21;
|
||||
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
|
||||
if (_id < 17)
|
||||
if (_id < 21)
|
||||
*reinterpret_cast<int*>(_a[0]) = -1;
|
||||
_id -= 17;
|
||||
_id -= 21;
|
||||
}
|
||||
return _id;
|
||||
}
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
/****************************************************************************
|
||||
** Meta object code from reading C++ file 'Reconstruction.h'
|
||||
**
|
||||
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.3)
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost!
|
||||
*****************************************************************************/
|
||||
|
||||
#include "../../../Reconstruction.h"
|
||||
#include <QtCore/qbytearray.h>
|
||||
#include <QtCore/qmetatype.h>
|
||||
#if !defined(Q_MOC_OUTPUT_REVISION)
|
||||
#error "The header file 'Reconstruction.h' doesn't include <QObject>."
|
||||
#elif Q_MOC_OUTPUT_REVISION != 67
|
||||
#error "This file was generated using the moc from 5.12.3. It"
|
||||
#error "cannot be used with the include files from this version of Qt."
|
||||
#error "(The moc has changed too much.)"
|
||||
#endif
|
||||
|
||||
QT_BEGIN_MOC_NAMESPACE
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_DEPRECATED
|
||||
struct qt_meta_stringdata_Reconstruction_t {
|
||||
QByteArrayData data[1];
|
||||
char stringdata0[15];
|
||||
};
|
||||
#define QT_MOC_LITERAL(idx, ofs, len) \
|
||||
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
|
||||
qptrdiff(offsetof(qt_meta_stringdata_Reconstruction_t, stringdata0) + ofs \
|
||||
- idx * sizeof(QByteArrayData)) \
|
||||
)
|
||||
static const qt_meta_stringdata_Reconstruction_t qt_meta_stringdata_Reconstruction = {
|
||||
{
|
||||
QT_MOC_LITERAL(0, 0, 14) // "Reconstruction"
|
||||
|
||||
},
|
||||
"Reconstruction"
|
||||
};
|
||||
#undef QT_MOC_LITERAL
|
||||
|
||||
static const uint qt_meta_data_Reconstruction[] = {
|
||||
|
||||
// content:
|
||||
8, // revision
|
||||
0, // classname
|
||||
0, 0, // classinfo
|
||||
0, 0, // methods
|
||||
0, 0, // properties
|
||||
0, 0, // enums/sets
|
||||
0, 0, // constructors
|
||||
0, // flags
|
||||
0, // signalCount
|
||||
|
||||
0 // eod
|
||||
};
|
||||
|
||||
void Reconstruction::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
Q_UNUSED(_o);
|
||||
Q_UNUSED(_id);
|
||||
Q_UNUSED(_c);
|
||||
Q_UNUSED(_a);
|
||||
}
|
||||
|
||||
QT_INIT_METAOBJECT const QMetaObject Reconstruction::staticMetaObject = { {
|
||||
&QMainWindow::staticMetaObject,
|
||||
qt_meta_stringdata_Reconstruction.data,
|
||||
qt_meta_data_Reconstruction,
|
||||
qt_static_metacall,
|
||||
nullptr,
|
||||
nullptr
|
||||
} };
|
||||
|
||||
|
||||
const QMetaObject *Reconstruction::metaObject() const
|
||||
{
|
||||
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
|
||||
}
|
||||
|
||||
void *Reconstruction::qt_metacast(const char *_clname)
|
||||
{
|
||||
if (!_clname) return nullptr;
|
||||
if (!strcmp(_clname, qt_meta_stringdata_Reconstruction.stringdata0))
|
||||
return static_cast<void*>(this);
|
||||
return QMainWindow::qt_metacast(_clname);
|
||||
}
|
||||
|
||||
int Reconstruction::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
|
||||
{
|
||||
_id = QMainWindow::qt_metacall(_c, _id, _a);
|
||||
return _id;
|
||||
}
|
||||
QT_WARNING_POP
|
||||
QT_END_MOC_NAMESPACE
|
||||
Binary file not shown.
@@ -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\Qt5Widgetsd.lib;D:\Qt\5.12.3\msvc2017_64\lib\Qt5Guid.lib;D:\Qt\5.12.3\msvc2017_64\lib\Qt5Cored.lib;D:\Qt\5.12.3\msvc2017_64\lib\qtmaind.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\Debug\moc\Classes;x64\Debug\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
|
||||
>debug</QtBkup_QtBuildConfig>
|
||||
<QtVersion>5.12.3</QtVersion>
|
||||
<QtVersionMajor>5</QtVersionMajor>
|
||||
<QtVersionMinor>12</QtVersionMinor>
|
||||
<QtVersionPatch>3</QtVersionPatch>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,46 +0,0 @@
|
||||
/****************************************************************************
|
||||
** Resource object code
|
||||
**
|
||||
** Created by: The Resource Compiler for Qt version 5.12.3
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost!
|
||||
*****************************************************************************/
|
||||
|
||||
#ifdef QT_NAMESPACE
|
||||
# define QT_RCC_PREPEND_NAMESPACE(name) ::QT_NAMESPACE::name
|
||||
# define QT_RCC_MANGLE_NAMESPACE0(x) x
|
||||
# define QT_RCC_MANGLE_NAMESPACE1(a, b) a##_##b
|
||||
# define QT_RCC_MANGLE_NAMESPACE2(a, b) QT_RCC_MANGLE_NAMESPACE1(a,b)
|
||||
# define QT_RCC_MANGLE_NAMESPACE(name) QT_RCC_MANGLE_NAMESPACE2( \
|
||||
QT_RCC_MANGLE_NAMESPACE0(name), QT_RCC_MANGLE_NAMESPACE0(QT_NAMESPACE))
|
||||
#else
|
||||
# define QT_RCC_PREPEND_NAMESPACE(name) name
|
||||
# define QT_RCC_MANGLE_NAMESPACE(name) name
|
||||
#endif
|
||||
|
||||
#ifdef QT_NAMESPACE
|
||||
namespace QT_NAMESPACE {
|
||||
#endif
|
||||
|
||||
#ifdef QT_NAMESPACE
|
||||
}
|
||||
#endif
|
||||
|
||||
int QT_RCC_MANGLE_NAMESPACE(qInitResources_Reconstruction)();
|
||||
int QT_RCC_MANGLE_NAMESPACE(qInitResources_Reconstruction)()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
int QT_RCC_MANGLE_NAMESPACE(qCleanupResources_Reconstruction)();
|
||||
int QT_RCC_MANGLE_NAMESPACE(qCleanupResources_Reconstruction)()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
namespace {
|
||||
struct initializer {
|
||||
initializer() { QT_RCC_MANGLE_NAMESPACE(qInitResources_Reconstruction)(); }
|
||||
~initializer() { QT_RCC_MANGLE_NAMESPACE(qCleanupResources_Reconstruction)(); }
|
||||
} dummy;
|
||||
}
|
||||
@@ -10,120 +10,141 @@
|
||||
#define UI_RECONSTRUCTION_H
|
||||
|
||||
#include <QtCore/QVariant>
|
||||
#include <QtWidgets/QAction>
|
||||
#include <QtWidgets/QApplication>
|
||||
#include <QtWidgets/QFrame>
|
||||
#include <QtWidgets/QGraphicsView>
|
||||
#include <QtWidgets/QGridLayout>
|
||||
#include <QtWidgets/QGroupBox>
|
||||
#include <QtWidgets/QHeaderView>
|
||||
#include <QtWidgets/QLabel>
|
||||
#include <QtWidgets/QLineEdit>
|
||||
#include <QtWidgets/QMainWindow>
|
||||
#include <QtWidgets/QMenu>
|
||||
#include <QtWidgets/QMenuBar>
|
||||
#include <QtWidgets/QPushButton>
|
||||
#include <QtWidgets/QSlider>
|
||||
#include <QtWidgets/QSpinBox>
|
||||
#include <QtWidgets/QStackedWidget>
|
||||
#include <QtWidgets/QStatusBar>
|
||||
#include <QtWidgets/QTextBrowser>
|
||||
#include <QtWidgets/QToolBar>
|
||||
#include <QtWidgets/QTreeView>
|
||||
#include <QtWidgets/QVBoxLayout>
|
||||
#include <QtWidgets/QWidget>
|
||||
#include "QVTKWidget.h"
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class Ui_ReconstructionClass
|
||||
{
|
||||
public:
|
||||
QAction *actioncamera;
|
||||
QAction *actionstyle;
|
||||
QWidget *centralWidget;
|
||||
QFrame *line;
|
||||
QStackedWidget *stackedWidget;
|
||||
QWidget *page;
|
||||
QLabel *label_2;
|
||||
QGroupBox *groupBox;
|
||||
QWidget *gridLayoutWidget_2;
|
||||
QGridLayout *gridLayout_2;
|
||||
QTextBrowser *textBrowser;
|
||||
QLabel *label_7;
|
||||
QLabel *label_6;
|
||||
QLabel *label_5;
|
||||
QTextBrowser *textBrowser_3;
|
||||
QLabel *label_7;
|
||||
QTextBrowser *textBrowser;
|
||||
QLabel *label_10;
|
||||
QTextBrowser *textBrowser_2;
|
||||
QLabel *label_8;
|
||||
QLabel *label_9;
|
||||
QTextBrowser *textBrowser_6;
|
||||
QTextBrowser *textBrowser_5;
|
||||
QTextBrowser *textBrowser_3;
|
||||
QTextBrowser *textBrowser_2;
|
||||
QTextBrowser *textBrowser_4;
|
||||
QGroupBox *groupBox_2;
|
||||
QWidget *gridLayoutWidget_6;
|
||||
QGridLayout *gridLayout_6;
|
||||
QLabel *label_22;
|
||||
QLabel *label_15;
|
||||
QSpinBox *spinBox;
|
||||
QSpinBox *spinBox_2;
|
||||
QLabel *label_15;
|
||||
QLabel *label_22;
|
||||
QSpinBox *spinBox_3;
|
||||
QLabel *label_16;
|
||||
QGroupBox *groupBox_5;
|
||||
QLabel *label_11;
|
||||
QGraphicsView *graphicsView_3;
|
||||
QPushButton *pushButton_5;
|
||||
QPushButton *pushButton_6;
|
||||
QPushButton *pushButton_7;
|
||||
QPushButton *pushButton_8;
|
||||
QGroupBox *groupBox_3;
|
||||
QTextBrowser *textBrowser_7;
|
||||
QTreeView *treeView;
|
||||
QWidget *page_2;
|
||||
QLabel *label_3;
|
||||
QGroupBox *groupBox_6;
|
||||
QLabel *label_21;
|
||||
QPushButton *pushButton_9;
|
||||
QPushButton *pushButton_10;
|
||||
QGraphicsView *graphicsView_2;
|
||||
QPushButton *pushButton_4;
|
||||
QLineEdit *lineEdit;
|
||||
QLabel *label_18;
|
||||
QGroupBox *groupBox_7;
|
||||
QTextBrowser *textBrowser_8;
|
||||
QGroupBox *groupBox_8;
|
||||
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;
|
||||
QLabel *label_14;
|
||||
QPushButton *pushButton_16;
|
||||
QGraphicsView *graphicsView;
|
||||
QPushButton *pushButton_13;
|
||||
QPushButton *pushButton_14;
|
||||
QPushButton *pushButton_15;
|
||||
QVTKWidget *qvtkWidget;
|
||||
QLabel *label_9;
|
||||
QPushButton *pushButton_18;
|
||||
QWidget *widget;
|
||||
QLabel *label;
|
||||
QLabel *label_4;
|
||||
QWidget *layoutWidget;
|
||||
QVBoxLayout *verticalLayout;
|
||||
QPushButton *pushButton;
|
||||
QPushButton *pushButton_2;
|
||||
QPushButton *pushButton_3;
|
||||
QLabel *label_4;
|
||||
QLabel *label;
|
||||
QMenuBar *menuBar;
|
||||
QToolBar *mainToolBar;
|
||||
QMenu *menusettings;
|
||||
QMenu *menuabout;
|
||||
QStatusBar *statusBar;
|
||||
|
||||
void setupUi(QMainWindow *ReconstructionClass)
|
||||
{
|
||||
if (ReconstructionClass->objectName().isEmpty())
|
||||
ReconstructionClass->setObjectName(QString::fromUtf8("ReconstructionClass"));
|
||||
ReconstructionClass->resize(1111, 601);
|
||||
ReconstructionClass->resize(1240, 680);
|
||||
ReconstructionClass->setMinimumSize(QSize(1240, 680));
|
||||
ReconstructionClass->setMaximumSize(QSize(1240, 680));
|
||||
actioncamera = new QAction(ReconstructionClass);
|
||||
actioncamera->setObjectName(QString::fromUtf8("actioncamera"));
|
||||
actionstyle = new QAction(ReconstructionClass);
|
||||
actionstyle->setObjectName(QString::fromUtf8("actionstyle"));
|
||||
centralWidget = new QWidget(ReconstructionClass);
|
||||
centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
|
||||
line = new QFrame(centralWidget);
|
||||
line->setObjectName(QString::fromUtf8("line"));
|
||||
line->setGeometry(QRect(230, 0, 20, 571));
|
||||
line->setFrameShape(QFrame::VLine);
|
||||
line->setFrameShadow(QFrame::Sunken);
|
||||
centralWidget->setEnabled(true);
|
||||
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
|
||||
sizePolicy.setHorizontalStretch(0);
|
||||
sizePolicy.setVerticalStretch(0);
|
||||
sizePolicy.setHeightForWidth(centralWidget->sizePolicy().hasHeightForWidth());
|
||||
centralWidget->setSizePolicy(sizePolicy);
|
||||
centralWidget->setMinimumSize(QSize(1240, 680));
|
||||
centralWidget->setMaximumSize(QSize(1240, 680));
|
||||
centralWidget->setAutoFillBackground(false);
|
||||
centralWidget->setStyleSheet(QString::fromUtf8(""));
|
||||
stackedWidget = new QStackedWidget(centralWidget);
|
||||
stackedWidget->setObjectName(QString::fromUtf8("stackedWidget"));
|
||||
stackedWidget->setGeometry(QRect(249, -1, 851, 531));
|
||||
stackedWidget->setGeometry(QRect(239, -4, 1001, 651));
|
||||
stackedWidget->setAutoFillBackground(true);
|
||||
stackedWidget->setStyleSheet(QString::fromUtf8(""));
|
||||
page = new QWidget();
|
||||
page->setObjectName(QString::fromUtf8("page"));
|
||||
label_2 = new QLabel(page);
|
||||
label_2->setObjectName(QString::fromUtf8("label_2"));
|
||||
label_2->setGeometry(QRect(220, 20, 81, 16));
|
||||
label_2->setGeometry(QRect(310, 20, 81, 16));
|
||||
QFont font;
|
||||
font.setFamily(QString::fromUtf8("Adobe Devanagari"));
|
||||
font.setPointSize(11);
|
||||
@@ -132,15 +153,16 @@ public:
|
||||
label_2->setFont(font);
|
||||
groupBox = new QGroupBox(page);
|
||||
groupBox->setObjectName(QString::fromUtf8("groupBox"));
|
||||
groupBox->setGeometry(QRect(520, 260, 321, 271));
|
||||
groupBox->setGeometry(QRect(690, 430, 291, 201));
|
||||
QFont font1;
|
||||
font1.setFamily(QString::fromUtf8("\351\273\221\344\275\223"));
|
||||
font1.setPointSize(10);
|
||||
groupBox->setFont(font1);
|
||||
groupBox->setAlignment(Qt::AlignCenter);
|
||||
groupBox->setFlat(false);
|
||||
gridLayoutWidget_2 = new QWidget(groupBox);
|
||||
gridLayoutWidget_2->setObjectName(QString::fromUtf8("gridLayoutWidget_2"));
|
||||
gridLayoutWidget_2->setGeometry(QRect(0, 20, 321, 251));
|
||||
gridLayoutWidget_2->setGeometry(QRect(10, 20, 281, 181));
|
||||
gridLayout_2 = new QGridLayout(gridLayoutWidget_2);
|
||||
gridLayout_2->setSpacing(6);
|
||||
gridLayout_2->setContentsMargins(11, 11, 11, 11);
|
||||
@@ -148,11 +170,27 @@ public:
|
||||
gridLayout_2->setSizeConstraint(QLayout::SetMinAndMaxSize);
|
||||
gridLayout_2->setHorizontalSpacing(7);
|
||||
gridLayout_2->setContentsMargins(10, 10, 10, 10);
|
||||
label_6 = new QLabel(gridLayoutWidget_2);
|
||||
label_6->setObjectName(QString::fromUtf8("label_6"));
|
||||
textBrowser = new QTextBrowser(gridLayoutWidget_2);
|
||||
textBrowser->setObjectName(QString::fromUtf8("textBrowser"));
|
||||
textBrowser->setMaximumSize(QSize(250, 31));
|
||||
QFont font2;
|
||||
font2.setFamily(QString::fromUtf8("Adobe Devanagari"));
|
||||
font2.setPointSize(10);
|
||||
textBrowser->setFont(font2);
|
||||
textBrowser->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
textBrowser->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
|
||||
gridLayout_2->addWidget(textBrowser, 0, 1, 1, 1);
|
||||
|
||||
label_7 = new QLabel(gridLayoutWidget_2);
|
||||
label_7->setObjectName(QString::fromUtf8("label_7"));
|
||||
label_7->setFont(font2);
|
||||
label_7->setAlignment(Qt::AlignCenter);
|
||||
|
||||
gridLayout_2->addWidget(label_7, 2, 0, 1, 1);
|
||||
|
||||
label_6 = new QLabel(gridLayoutWidget_2);
|
||||
label_6->setObjectName(QString::fromUtf8("label_6"));
|
||||
label_6->setFont(font2);
|
||||
label_6->setAlignment(Qt::AlignCenter);
|
||||
|
||||
@@ -165,41 +203,6 @@ public:
|
||||
|
||||
gridLayout_2->addWidget(label_5, 0, 0, 1, 1);
|
||||
|
||||
textBrowser_3 = new QTextBrowser(gridLayoutWidget_2);
|
||||
textBrowser_3->setObjectName(QString::fromUtf8("textBrowser_3"));
|
||||
textBrowser_3->setMaximumSize(QSize(250, 31));
|
||||
textBrowser_3->setFont(font2);
|
||||
|
||||
gridLayout_2->addWidget(textBrowser_3, 2, 1, 1, 1);
|
||||
|
||||
label_7 = new QLabel(gridLayoutWidget_2);
|
||||
label_7->setObjectName(QString::fromUtf8("label_7"));
|
||||
label_7->setFont(font2);
|
||||
label_7->setAlignment(Qt::AlignCenter);
|
||||
|
||||
gridLayout_2->addWidget(label_7, 2, 0, 1, 1);
|
||||
|
||||
textBrowser = new QTextBrowser(gridLayoutWidget_2);
|
||||
textBrowser->setObjectName(QString::fromUtf8("textBrowser"));
|
||||
textBrowser->setMaximumSize(QSize(250, 31));
|
||||
textBrowser->setFont(font2);
|
||||
|
||||
gridLayout_2->addWidget(textBrowser, 0, 1, 1, 1);
|
||||
|
||||
label_10 = new QLabel(gridLayoutWidget_2);
|
||||
label_10->setObjectName(QString::fromUtf8("label_10"));
|
||||
label_10->setFont(font2);
|
||||
label_10->setAlignment(Qt::AlignCenter);
|
||||
|
||||
gridLayout_2->addWidget(label_10, 5, 0, 1, 1);
|
||||
|
||||
textBrowser_2 = new QTextBrowser(gridLayoutWidget_2);
|
||||
textBrowser_2->setObjectName(QString::fromUtf8("textBrowser_2"));
|
||||
textBrowser_2->setMaximumSize(QSize(250, 31));
|
||||
textBrowser_2->setFont(font2);
|
||||
|
||||
gridLayout_2->addWidget(textBrowser_2, 1, 1, 1, 1);
|
||||
|
||||
label_8 = new QLabel(gridLayoutWidget_2);
|
||||
label_8->setObjectName(QString::fromUtf8("label_8"));
|
||||
label_8->setFont(font2);
|
||||
@@ -207,42 +210,41 @@ public:
|
||||
|
||||
gridLayout_2->addWidget(label_8, 3, 0, 1, 1);
|
||||
|
||||
label_9 = new QLabel(gridLayoutWidget_2);
|
||||
label_9->setObjectName(QString::fromUtf8("label_9"));
|
||||
label_9->setFont(font2);
|
||||
label_9->setAlignment(Qt::AlignCenter);
|
||||
textBrowser_3 = new QTextBrowser(gridLayoutWidget_2);
|
||||
textBrowser_3->setObjectName(QString::fromUtf8("textBrowser_3"));
|
||||
textBrowser_3->setMaximumSize(QSize(250, 31));
|
||||
textBrowser_3->setFont(font2);
|
||||
textBrowser_3->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
textBrowser_3->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
|
||||
gridLayout_2->addWidget(label_9, 4, 0, 1, 1);
|
||||
gridLayout_2->addWidget(textBrowser_3, 2, 1, 1, 1);
|
||||
|
||||
textBrowser_6 = new QTextBrowser(gridLayoutWidget_2);
|
||||
textBrowser_6->setObjectName(QString::fromUtf8("textBrowser_6"));
|
||||
textBrowser_6->setMaximumSize(QSize(250, 31));
|
||||
textBrowser_6->setFont(font2);
|
||||
textBrowser_2 = new QTextBrowser(gridLayoutWidget_2);
|
||||
textBrowser_2->setObjectName(QString::fromUtf8("textBrowser_2"));
|
||||
textBrowser_2->setMaximumSize(QSize(250, 31));
|
||||
textBrowser_2->setFont(font2);
|
||||
textBrowser_2->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
textBrowser_2->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
|
||||
gridLayout_2->addWidget(textBrowser_6, 5, 1, 1, 1);
|
||||
|
||||
textBrowser_5 = new QTextBrowser(gridLayoutWidget_2);
|
||||
textBrowser_5->setObjectName(QString::fromUtf8("textBrowser_5"));
|
||||
textBrowser_5->setMaximumSize(QSize(250, 31));
|
||||
textBrowser_5->setFont(font2);
|
||||
|
||||
gridLayout_2->addWidget(textBrowser_5, 4, 1, 1, 1);
|
||||
gridLayout_2->addWidget(textBrowser_2, 1, 1, 1, 1);
|
||||
|
||||
textBrowser_4 = new QTextBrowser(gridLayoutWidget_2);
|
||||
textBrowser_4->setObjectName(QString::fromUtf8("textBrowser_4"));
|
||||
textBrowser_4->setMaximumSize(QSize(250, 31));
|
||||
textBrowser_4->setFont(font2);
|
||||
textBrowser_4->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
textBrowser_4->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
|
||||
gridLayout_2->addWidget(textBrowser_4, 3, 1, 1, 1);
|
||||
|
||||
groupBox_2 = new QGroupBox(page);
|
||||
groupBox_2->setObjectName(QString::fromUtf8("groupBox_2"));
|
||||
groupBox_2->setGeometry(QRect(10, 360, 251, 171));
|
||||
groupBox_2->setGeometry(QRect(690, 30, 291, 151));
|
||||
groupBox_2->setFont(font1);
|
||||
groupBox_2->setAlignment(Qt::AlignCenter);
|
||||
gridLayoutWidget_6 = new QWidget(groupBox_2);
|
||||
gridLayoutWidget_6->setObjectName(QString::fromUtf8("gridLayoutWidget_6"));
|
||||
gridLayoutWidget_6->setGeometry(QRect(20, 30, 211, 131));
|
||||
gridLayoutWidget_6->setGeometry(QRect(30, 20, 231, 121));
|
||||
gridLayout_6 = new QGridLayout(gridLayoutWidget_6);
|
||||
gridLayout_6->setSpacing(6);
|
||||
gridLayout_6->setContentsMargins(11, 11, 11, 11);
|
||||
@@ -250,25 +252,6 @@ public:
|
||||
gridLayout_6->setSizeConstraint(QLayout::SetMinAndMaxSize);
|
||||
gridLayout_6->setHorizontalSpacing(7);
|
||||
gridLayout_6->setContentsMargins(10, 10, 10, 10);
|
||||
label_22 = new QLabel(gridLayoutWidget_6);
|
||||
label_22->setObjectName(QString::fromUtf8("label_22"));
|
||||
QFont font3;
|
||||
font3.setPointSize(9);
|
||||
label_22->setFont(font3);
|
||||
label_22->setAlignment(Qt::AlignCenter);
|
||||
|
||||
gridLayout_6->addWidget(label_22, 0, 0, 1, 1);
|
||||
|
||||
label_15 = new QLabel(gridLayoutWidget_6);
|
||||
label_15->setObjectName(QString::fromUtf8("label_15"));
|
||||
QFont font4;
|
||||
font4.setFamily(QString::fromUtf8("\351\273\221\344\275\223"));
|
||||
font4.setPointSize(9);
|
||||
label_15->setFont(font4);
|
||||
label_15->setAlignment(Qt::AlignCenter);
|
||||
|
||||
gridLayout_6->addWidget(label_15, 1, 0, 1, 1);
|
||||
|
||||
spinBox = new QSpinBox(gridLayoutWidget_6);
|
||||
spinBox->setObjectName(QString::fromUtf8("spinBox"));
|
||||
|
||||
@@ -279,6 +262,25 @@ public:
|
||||
|
||||
gridLayout_6->addWidget(spinBox_2, 1, 2, 1, 1);
|
||||
|
||||
label_15 = new QLabel(gridLayoutWidget_6);
|
||||
label_15->setObjectName(QString::fromUtf8("label_15"));
|
||||
QFont font3;
|
||||
font3.setFamily(QString::fromUtf8("\351\273\221\344\275\223"));
|
||||
font3.setPointSize(9);
|
||||
label_15->setFont(font3);
|
||||
label_15->setAlignment(Qt::AlignCenter);
|
||||
|
||||
gridLayout_6->addWidget(label_15, 1, 0, 1, 1);
|
||||
|
||||
label_22 = new QLabel(gridLayoutWidget_6);
|
||||
label_22->setObjectName(QString::fromUtf8("label_22"));
|
||||
QFont font4;
|
||||
font4.setFamily(QString::fromUtf8("\351\273\221\344\275\223"));
|
||||
label_22->setFont(font4);
|
||||
label_22->setAlignment(Qt::AlignCenter);
|
||||
|
||||
gridLayout_6->addWidget(label_22, 0, 0, 1, 1);
|
||||
|
||||
spinBox_3 = new QSpinBox(gridLayoutWidget_6);
|
||||
spinBox_3->setObjectName(QString::fromUtf8("spinBox_3"));
|
||||
|
||||
@@ -286,188 +288,361 @@ public:
|
||||
|
||||
label_16 = new QLabel(gridLayoutWidget_6);
|
||||
label_16->setObjectName(QString::fromUtf8("label_16"));
|
||||
label_16->setFont(font4);
|
||||
label_16->setFont(font3);
|
||||
label_16->setAlignment(Qt::AlignCenter);
|
||||
|
||||
gridLayout_6->addWidget(label_16, 2, 0, 1, 1);
|
||||
|
||||
groupBox_5 = new QGroupBox(page);
|
||||
groupBox_5->setObjectName(QString::fromUtf8("groupBox_5"));
|
||||
groupBox_5->setGeometry(QRect(10, 40, 491, 291));
|
||||
groupBox_5->setGeometry(QRect(30, 40, 640, 512));
|
||||
groupBox_5->setFlat(false);
|
||||
label_11 = new QLabel(groupBox_5);
|
||||
label_11->setObjectName(QString::fromUtf8("label_11"));
|
||||
label_11->setGeometry(QRect(190, 120, 121, 31));
|
||||
label_11->setGeometry(QRect(0, 0, 640, 512));
|
||||
QFont font5;
|
||||
font5.setFamily(QString::fromUtf8("Adobe Devanagari"));
|
||||
font5.setPointSize(16);
|
||||
label_11->setFont(font5);
|
||||
label_11->setAlignment(Qt::AlignCenter);
|
||||
graphicsView_3 = new QGraphicsView(groupBox_5);
|
||||
graphicsView_3->setObjectName(QString::fromUtf8("graphicsView_3"));
|
||||
graphicsView_3->setGeometry(QRect(0, 0, 640, 512));
|
||||
graphicsView_3->raise();
|
||||
label_11->raise();
|
||||
pushButton_5 = new QPushButton(page);
|
||||
pushButton_5->setObjectName(QString::fromUtf8("pushButton_5"));
|
||||
pushButton_5->setGeometry(QRect(280, 390, 100, 28));
|
||||
pushButton_5->setMaximumSize(QSize(100, 16777215));
|
||||
pushButton_5->setFont(font4);
|
||||
pushButton_5->setGeometry(QRect(50, 580, 120, 51));
|
||||
pushButton_5->setMinimumSize(QSize(120, 0));
|
||||
pushButton_5->setMaximumSize(QSize(110, 16777215));
|
||||
pushButton_5->setFont(font3);
|
||||
pushButton_6 = new QPushButton(page);
|
||||
pushButton_6->setObjectName(QString::fromUtf8("pushButton_6"));
|
||||
pushButton_6->setGeometry(QRect(400, 390, 100, 28));
|
||||
pushButton_6->setMaximumSize(QSize(100, 16777215));
|
||||
pushButton_6->setFont(font4);
|
||||
pushButton_6->setGeometry(QRect(210, 580, 120, 51));
|
||||
pushButton_6->setMinimumSize(QSize(120, 0));
|
||||
pushButton_6->setMaximumSize(QSize(110, 16777215));
|
||||
pushButton_6->setFont(font3);
|
||||
pushButton_7 = new QPushButton(page);
|
||||
pushButton_7->setObjectName(QString::fromUtf8("pushButton_7"));
|
||||
pushButton_7->setGeometry(QRect(280, 470, 100, 28));
|
||||
pushButton_7->setMaximumSize(QSize(100, 16777215));
|
||||
pushButton_7->setFont(font4);
|
||||
pushButton_7->setGeometry(QRect(370, 580, 120, 51));
|
||||
pushButton_7->setMinimumSize(QSize(120, 0));
|
||||
pushButton_7->setMaximumSize(QSize(110, 16777215));
|
||||
pushButton_7->setFont(font3);
|
||||
pushButton_8 = new QPushButton(page);
|
||||
pushButton_8->setObjectName(QString::fromUtf8("pushButton_8"));
|
||||
pushButton_8->setGeometry(QRect(400, 470, 100, 28));
|
||||
pushButton_8->setMaximumSize(QSize(100, 16777215));
|
||||
pushButton_8->setFont(font4);
|
||||
pushButton_8->setGeometry(QRect(530, 580, 120, 51));
|
||||
pushButton_8->setMinimumSize(QSize(120, 0));
|
||||
pushButton_8->setMaximumSize(QSize(120, 16777215));
|
||||
pushButton_8->setFont(font3);
|
||||
groupBox_3 = new QGroupBox(page);
|
||||
groupBox_3->setObjectName(QString::fromUtf8("groupBox_3"));
|
||||
groupBox_3->setGeometry(QRect(520, 30, 321, 211));
|
||||
groupBox_3->setGeometry(QRect(690, 200, 291, 211));
|
||||
groupBox_3->setFont(font1);
|
||||
groupBox_3->setAlignment(Qt::AlignCenter);
|
||||
textBrowser_7 = new QTextBrowser(groupBox_3);
|
||||
textBrowser_7->setObjectName(QString::fromUtf8("textBrowser_7"));
|
||||
textBrowser_7->setGeometry(QRect(10, 20, 301, 181));
|
||||
treeView = new QTreeView(groupBox_3);
|
||||
treeView->setObjectName(QString::fromUtf8("treeView"));
|
||||
treeView->setGeometry(QRect(10, 20, 271, 181));
|
||||
stackedWidget->addWidget(page);
|
||||
page_2 = new QWidget();
|
||||
page_2->setObjectName(QString::fromUtf8("page_2"));
|
||||
label_3 = new QLabel(page_2);
|
||||
label_3->setObjectName(QString::fromUtf8("label_3"));
|
||||
label_3->setGeometry(QRect(390, 20, 81, 16));
|
||||
label_3->setGeometry(QRect(310, 30, 81, 16));
|
||||
label_3->setFont(font);
|
||||
groupBox_6 = new QGroupBox(page_2);
|
||||
groupBox_6->setObjectName(QString::fromUtf8("groupBox_6"));
|
||||
groupBox_6->setGeometry(QRect(80, 40, 701, 401));
|
||||
groupBox_6->setGeometry(QRect(30, 60, 640, 512));
|
||||
label_21 = new QLabel(groupBox_6);
|
||||
label_21->setObjectName(QString::fromUtf8("label_21"));
|
||||
label_21->setGeometry(QRect(280, 170, 121, 31));
|
||||
label_21->setGeometry(QRect(0, 0, 640, 512));
|
||||
label_21->setFont(font5);
|
||||
pushButton_9 = new QPushButton(page_2);
|
||||
pushButton_9->setObjectName(QString::fromUtf8("pushButton_9"));
|
||||
pushButton_9->setGeometry(QRect(620, 470, 93, 31));
|
||||
QFont font6;
|
||||
font6.setFamily(QString::fromUtf8("\351\273\221\344\275\223"));
|
||||
pushButton_9->setFont(font6);
|
||||
pushButton_10 = new QPushButton(page_2);
|
||||
pushButton_10->setObjectName(QString::fromUtf8("pushButton_10"));
|
||||
pushButton_10->setGeometry(QRect(730, 470, 93, 31));
|
||||
pushButton_10->setFont(font6);
|
||||
label_21->setAlignment(Qt::AlignCenter);
|
||||
graphicsView_2 = new QGraphicsView(groupBox_6);
|
||||
graphicsView_2->setObjectName(QString::fromUtf8("graphicsView_2"));
|
||||
graphicsView_2->setGeometry(QRect(0, 0, 640, 512));
|
||||
graphicsView_2->raise();
|
||||
label_21->raise();
|
||||
pushButton_4 = new QPushButton(page_2);
|
||||
pushButton_4->setObjectName(QString::fromUtf8("pushButton_4"));
|
||||
pushButton_4->setGeometry(QRect(470, 470, 81, 31));
|
||||
pushButton_4->setFont(font6);
|
||||
pushButton_4->setGeometry(QRect(550, 590, 120, 41));
|
||||
pushButton_4->setMinimumSize(QSize(120, 0));
|
||||
pushButton_4->setFont(font4);
|
||||
lineEdit = new QLineEdit(page_2);
|
||||
lineEdit->setObjectName(QString::fromUtf8("lineEdit"));
|
||||
lineEdit->setGeometry(QRect(160, 470, 294, 31));
|
||||
lineEdit->setGeometry(QRect(150, 590, 381, 41));
|
||||
label_18 = new QLabel(page_2);
|
||||
label_18->setObjectName(QString::fromUtf8("label_18"));
|
||||
label_18->setGeometry(QRect(40, 470, 111, 30));
|
||||
label_18->setMaximumSize(QSize(16777215, 30));
|
||||
label_18->setFont(font4);
|
||||
label_18->setGeometry(QRect(30, 590, 111, 40));
|
||||
label_18->setMinimumSize(QSize(0, 40));
|
||||
label_18->setMaximumSize(QSize(16777215, 40));
|
||||
label_18->setFont(font3);
|
||||
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, 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, 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, 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, 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, 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, 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();
|
||||
groupBox_6->raise();
|
||||
pushButton_4->raise();
|
||||
lineEdit->raise();
|
||||
label_18->raise();
|
||||
groupBox_7->raise();
|
||||
page_3 = new QWidget();
|
||||
page_3->setObjectName(QString::fromUtf8("page_3"));
|
||||
groupBox_4 = new QGroupBox(page_3);
|
||||
groupBox_4->setObjectName(QString::fromUtf8("groupBox_4"));
|
||||
groupBox_4->setGeometry(QRect(650, 60, 191, 171));
|
||||
groupBox_4->setFont(font6);
|
||||
groupBox_4->setGeometry(QRect(785, 70, 201, 171));
|
||||
groupBox_4->setFont(font4);
|
||||
groupBox_4->setAlignment(Qt::AlignCenter);
|
||||
horizontalSlider = new QSlider(groupBox_4);
|
||||
horizontalSlider->setObjectName(QString::fromUtf8("horizontalSlider"));
|
||||
horizontalSlider->setGeometry(QRect(90, 80, 91, 22));
|
||||
horizontalSlider->setOrientation(Qt::Horizontal);
|
||||
label_13 = new QLabel(groupBox_4);
|
||||
label_13->setObjectName(QString::fromUtf8("label_13"));
|
||||
label_13->setGeometry(QRect(10, 80, 72, 15));
|
||||
groupBox_4->setFlat(false);
|
||||
label_12 = new QLabel(groupBox_4);
|
||||
label_12->setObjectName(QString::fromUtf8("label_12"));
|
||||
label_12->setGeometry(QRect(10, 50, 72, 15));
|
||||
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, 117, 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, 117, 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, 120, 72, 15));
|
||||
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(100, 47, 51, 21));
|
||||
graphicsView = new QGraphicsView(page_3);
|
||||
graphicsView->setObjectName(QString::fromUtf8("graphicsView"));
|
||||
graphicsView->setGeometry(QRect(0, 10, 641, 521));
|
||||
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(700, 310, 93, 28));
|
||||
pushButton_13->setFont(font6);
|
||||
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(700, 380, 93, 28));
|
||||
pushButton_14->setFont(font6);
|
||||
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(700, 450, 93, 28));
|
||||
pushButton_15->setFont(font6);
|
||||
pushButton_15->setGeometry(QRect(815, 470, 141, 41));
|
||||
pushButton_15->setFont(font4);
|
||||
qvtkWidget = new QVTKWidget(page_3);
|
||||
qvtkWidget->setObjectName(QString::fromUtf8("qvtkWidget"));
|
||||
qvtkWidget->setGeometry(QRect(30, 20, 741, 621));
|
||||
label_9 = new QLabel(page_3);
|
||||
label_9->setObjectName(QString::fromUtf8("label_9"));
|
||||
label_9->setGeometry(QRect(30, 20, 741, 611));
|
||||
QFont font7;
|
||||
font7.setFamily(QString::fromUtf8("\351\273\221\344\275\223"));
|
||||
font7.setPointSize(18);
|
||||
label_9->setFont(font7);
|
||||
label_9->setStyleSheet(QString::fromUtf8(""));
|
||||
pushButton_18 = new QPushButton(page_3);
|
||||
pushButton_18->setObjectName(QString::fromUtf8("pushButton_18"));
|
||||
pushButton_18->setGeometry(QRect(815, 560, 141, 41));
|
||||
pushButton_18->setFont(font4);
|
||||
stackedWidget->addWidget(page_3);
|
||||
layoutWidget = new QWidget(centralWidget);
|
||||
widget = new QWidget(centralWidget);
|
||||
widget->setObjectName(QString::fromUtf8("widget"));
|
||||
widget->setGeometry(QRect(0, -10, 241, 671));
|
||||
QPalette palette;
|
||||
QBrush brush(QColor(0, 0, 0, 255));
|
||||
brush.setStyle(Qt::SolidPattern);
|
||||
palette.setBrush(QPalette::Active, QPalette::WindowText, brush);
|
||||
QBrush brush1(QColor(44, 46, 70, 255));
|
||||
brush1.setStyle(Qt::SolidPattern);
|
||||
palette.setBrush(QPalette::Active, QPalette::Button, brush1);
|
||||
QBrush brush2(QColor(255, 0, 0, 255));
|
||||
brush2.setStyle(Qt::SolidPattern);
|
||||
palette.setBrush(QPalette::Active, QPalette::Light, brush2);
|
||||
QBrush brush3(QColor(212, 0, 0, 255));
|
||||
brush3.setStyle(Qt::SolidPattern);
|
||||
palette.setBrush(QPalette::Active, QPalette::Midlight, brush3);
|
||||
QBrush brush4(QColor(85, 0, 0, 255));
|
||||
brush4.setStyle(Qt::SolidPattern);
|
||||
palette.setBrush(QPalette::Active, QPalette::Dark, brush4);
|
||||
QBrush brush5(QColor(113, 0, 0, 255));
|
||||
brush5.setStyle(Qt::SolidPattern);
|
||||
palette.setBrush(QPalette::Active, QPalette::Mid, brush5);
|
||||
palette.setBrush(QPalette::Active, QPalette::Text, brush);
|
||||
QBrush brush6(QColor(255, 255, 255, 255));
|
||||
brush6.setStyle(Qt::SolidPattern);
|
||||
palette.setBrush(QPalette::Active, QPalette::BrightText, brush6);
|
||||
palette.setBrush(QPalette::Active, QPalette::ButtonText, brush);
|
||||
palette.setBrush(QPalette::Active, QPalette::Base, brush1);
|
||||
palette.setBrush(QPalette::Active, QPalette::Window, brush1);
|
||||
palette.setBrush(QPalette::Active, QPalette::Shadow, brush);
|
||||
QBrush brush7(QColor(212, 127, 127, 255));
|
||||
brush7.setStyle(Qt::SolidPattern);
|
||||
palette.setBrush(QPalette::Active, QPalette::AlternateBase, brush7);
|
||||
QBrush brush8(QColor(255, 255, 220, 255));
|
||||
brush8.setStyle(Qt::SolidPattern);
|
||||
palette.setBrush(QPalette::Active, QPalette::ToolTipBase, brush8);
|
||||
palette.setBrush(QPalette::Active, QPalette::ToolTipText, brush);
|
||||
QBrush brush9(QColor(0, 0, 0, 128));
|
||||
brush9.setStyle(Qt::NoBrush);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0)
|
||||
palette.setBrush(QPalette::Active, QPalette::PlaceholderText, brush9);
|
||||
#endif
|
||||
palette.setBrush(QPalette::Inactive, QPalette::WindowText, brush);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::Button, brush1);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::Light, brush2);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::Midlight, brush3);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::Dark, brush4);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::Mid, brush5);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::Text, brush);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::BrightText, brush6);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::ButtonText, brush);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::Base, brush1);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::Window, brush1);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::Shadow, brush);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::AlternateBase, brush7);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::ToolTipBase, brush8);
|
||||
palette.setBrush(QPalette::Inactive, QPalette::ToolTipText, brush);
|
||||
QBrush brush10(QColor(0, 0, 0, 128));
|
||||
brush10.setStyle(Qt::NoBrush);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0)
|
||||
palette.setBrush(QPalette::Inactive, QPalette::PlaceholderText, brush10);
|
||||
#endif
|
||||
palette.setBrush(QPalette::Disabled, QPalette::WindowText, brush4);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::Button, brush1);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::Light, brush2);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::Midlight, brush3);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::Dark, brush4);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::Mid, brush5);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::Text, brush4);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::BrightText, brush6);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::ButtonText, brush4);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::Base, brush1);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::Window, brush1);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::Shadow, brush);
|
||||
QBrush brush11(QColor(170, 0, 0, 255));
|
||||
brush11.setStyle(Qt::SolidPattern);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::AlternateBase, brush11);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::ToolTipBase, brush8);
|
||||
palette.setBrush(QPalette::Disabled, QPalette::ToolTipText, brush);
|
||||
QBrush brush12(QColor(0, 0, 0, 128));
|
||||
brush12.setStyle(Qt::NoBrush);
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 12, 0)
|
||||
palette.setBrush(QPalette::Disabled, QPalette::PlaceholderText, brush12);
|
||||
#endif
|
||||
widget->setPalette(palette);
|
||||
widget->setAutoFillBackground(true);
|
||||
widget->setStyleSheet(QString::fromUtf8(""));
|
||||
label = new QLabel(widget);
|
||||
label->setObjectName(QString::fromUtf8("label"));
|
||||
label->setGeometry(QRect(10, 10, 221, 151));
|
||||
label->setMaximumSize(QSize(16777215, 400));
|
||||
QFont font8;
|
||||
font8.setFamily(QString::fromUtf8("Adobe Devanagari"));
|
||||
font8.setPointSize(13);
|
||||
font8.setBold(true);
|
||||
font8.setWeight(75);
|
||||
label->setFont(font8);
|
||||
label->setStyleSheet(QString::fromUtf8("color: rgb(255, 255, 255);"));
|
||||
label->setAlignment(Qt::AlignCenter);
|
||||
label_4 = new QLabel(widget);
|
||||
label_4->setObjectName(QString::fromUtf8("label_4"));
|
||||
label_4->setGeometry(QRect(20, 290, 201, 91));
|
||||
QFont font9;
|
||||
font9.setFamily(QString::fromUtf8("\347\255\211\347\272\277"));
|
||||
font9.setPointSize(9);
|
||||
label_4->setFont(font9);
|
||||
label_4->setStyleSheet(QString::fromUtf8("color: rgb(255, 255, 255);"));
|
||||
label_4->setAlignment(Qt::AlignCenter);
|
||||
layoutWidget = new QWidget(widget);
|
||||
layoutWidget->setObjectName(QString::fromUtf8("layoutWidget"));
|
||||
layoutWidget->setGeometry(QRect(10, 260, 219, 241));
|
||||
layoutWidget->setGeometry(QRect(10, 390, 221, 241));
|
||||
verticalLayout = new QVBoxLayout(layoutWidget);
|
||||
verticalLayout->setSpacing(6);
|
||||
verticalLayout->setSpacing(40);
|
||||
verticalLayout->setContentsMargins(11, 11, 11, 11);
|
||||
verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
|
||||
verticalLayout->setContentsMargins(0, 0, 0, 0);
|
||||
pushButton = new QPushButton(layoutWidget);
|
||||
pushButton->setObjectName(QString::fromUtf8("pushButton"));
|
||||
pushButton->setFont(font6);
|
||||
QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Minimum);
|
||||
sizePolicy1.setHorizontalStretch(0);
|
||||
sizePolicy1.setVerticalStretch(0);
|
||||
sizePolicy1.setHeightForWidth(pushButton->sizePolicy().hasHeightForWidth());
|
||||
pushButton->setSizePolicy(sizePolicy1);
|
||||
pushButton->setFont(font1);
|
||||
pushButton->setStyleSheet(QString::fromUtf8(""));
|
||||
|
||||
verticalLayout->addWidget(pushButton);
|
||||
|
||||
pushButton_2 = new QPushButton(layoutWidget);
|
||||
pushButton_2->setObjectName(QString::fromUtf8("pushButton_2"));
|
||||
pushButton_2->setFont(font6);
|
||||
sizePolicy1.setHeightForWidth(pushButton_2->sizePolicy().hasHeightForWidth());
|
||||
pushButton_2->setSizePolicy(sizePolicy1);
|
||||
pushButton_2->setFont(font1);
|
||||
pushButton_2->setStyleSheet(QString::fromUtf8(""));
|
||||
|
||||
verticalLayout->addWidget(pushButton_2);
|
||||
|
||||
pushButton_3 = new QPushButton(layoutWidget);
|
||||
pushButton_3->setObjectName(QString::fromUtf8("pushButton_3"));
|
||||
pushButton_3->setFont(font6);
|
||||
sizePolicy1.setHeightForWidth(pushButton_3->sizePolicy().hasHeightForWidth());
|
||||
pushButton_3->setSizePolicy(sizePolicy1);
|
||||
pushButton_3->setFont(font1);
|
||||
pushButton_3->setStyleSheet(QString::fromUtf8(""));
|
||||
|
||||
verticalLayout->addWidget(pushButton_3);
|
||||
|
||||
label_4 = new QLabel(centralWidget);
|
||||
label_4->setObjectName(QString::fromUtf8("label_4"));
|
||||
label_4->setGeometry(QRect(10, 180, 219, 91));
|
||||
label_4->setFont(font1);
|
||||
label_4->setAlignment(Qt::AlignCenter);
|
||||
label = new QLabel(centralWidget);
|
||||
label->setObjectName(QString::fromUtf8("label"));
|
||||
label->setGeometry(QRect(10, 20, 219, 151));
|
||||
label->setMaximumSize(QSize(16777215, 400));
|
||||
QFont font7;
|
||||
font7.setFamily(QString::fromUtf8("Adobe Devanagari"));
|
||||
font7.setPointSize(14);
|
||||
font7.setBold(true);
|
||||
font7.setWeight(75);
|
||||
label->setFont(font7);
|
||||
ReconstructionClass->setCentralWidget(centralWidget);
|
||||
menuBar = new QMenuBar(ReconstructionClass);
|
||||
menuBar->setObjectName(QString::fromUtf8("menuBar"));
|
||||
menuBar->setGeometry(QRect(0, 0, 1111, 26));
|
||||
menuBar->setGeometry(QRect(0, 0, 1240, 26));
|
||||
menusettings = new QMenu(menuBar);
|
||||
menusettings->setObjectName(QString::fromUtf8("menusettings"));
|
||||
QFont font10;
|
||||
font10.setFamily(QString::fromUtf8("\351\273\221\344\275\223"));
|
||||
font10.setPointSize(8);
|
||||
menusettings->setFont(font10);
|
||||
menuabout = new QMenu(menuBar);
|
||||
menuabout->setObjectName(QString::fromUtf8("menuabout"));
|
||||
menuabout->setFont(font10);
|
||||
ReconstructionClass->setMenuBar(menuBar);
|
||||
mainToolBar = new QToolBar(ReconstructionClass);
|
||||
mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
|
||||
ReconstructionClass->addToolBar(Qt::TopToolBarArea, mainToolBar);
|
||||
statusBar = new QStatusBar(ReconstructionClass);
|
||||
statusBar->setObjectName(QString::fromUtf8("statusBar"));
|
||||
ReconstructionClass->setStatusBar(statusBar);
|
||||
|
||||
retranslateUi(ReconstructionClass);
|
||||
menuBar->addAction(menusettings->menuAction());
|
||||
menuBar->addAction(menuabout->menuAction());
|
||||
|
||||
stackedWidget->setCurrentIndex(0);
|
||||
retranslateUi(ReconstructionClass);
|
||||
QObject::connect(spinBox, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));
|
||||
|
||||
stackedWidget->setCurrentIndex(1);
|
||||
|
||||
|
||||
QMetaObject::connectSlotsByName(ReconstructionClass);
|
||||
@@ -476,17 +651,17 @@ public:
|
||||
void retranslateUi(QMainWindow *ReconstructionClass)
|
||||
{
|
||||
ReconstructionClass->setWindowTitle(QApplication::translate("ReconstructionClass", "Reconstruction", nullptr));
|
||||
actioncamera->setText(QApplication::translate("ReconstructionClass", "camera", nullptr));
|
||||
actionstyle->setText(QApplication::translate("ReconstructionClass", "style", nullptr));
|
||||
label_2->setText(QApplication::translate("ReconstructionClass", "Live Video", nullptr));
|
||||
groupBox->setTitle(QApplication::translate("ReconstructionClass", "\347\233\270\346\234\272\345\217\202\346\225\260\346\240\217", nullptr));
|
||||
label_7->setText(QApplication::translate("ReconstructionClass", "KC1", nullptr));
|
||||
label_6->setText(QApplication::translate("ReconstructionClass", "T12", nullptr));
|
||||
label_5->setText(QApplication::translate("ReconstructionClass", "R12", nullptr));
|
||||
label_7->setText(QApplication::translate("ReconstructionClass", "KC1", nullptr));
|
||||
label_10->setText(QApplication::translate("ReconstructionClass", "HP2", nullptr));
|
||||
label_8->setText(QApplication::translate("ReconstructionClass", "KP2", nullptr));
|
||||
label_9->setText(QApplication::translate("ReconstructionClass", "HC1", nullptr));
|
||||
groupBox_2->setTitle(QApplication::translate("ReconstructionClass", "\346\240\207\345\256\232\346\235\277\350\256\276\347\275\256", nullptr));
|
||||
label_22->setText(QApplication::translate("ReconstructionClass", "\346\243\213\347\233\230\345\260\272\345\257\270(mm)", nullptr));
|
||||
label_15->setText(QApplication::translate("ReconstructionClass", "\350\241\214\346\225\260", nullptr));
|
||||
label_22->setText(QApplication::translate("ReconstructionClass", "\346\243\213\347\233\230\345\260\272\345\257\270(mm)", nullptr));
|
||||
label_16->setText(QApplication::translate("ReconstructionClass", "\345\210\227\346\225\260", nullptr));
|
||||
groupBox_5->setTitle(QString());
|
||||
label_11->setText(QApplication::translate("ReconstructionClass", "NO VIDEO", nullptr));
|
||||
@@ -498,25 +673,32 @@ public:
|
||||
label_3->setText(QApplication::translate("ReconstructionClass", "Live Video", nullptr));
|
||||
groupBox_6->setTitle(QString());
|
||||
label_21->setText(QApplication::translate("ReconstructionClass", "NO VIDEO", nullptr));
|
||||
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_4->setText(QApplication::translate("ReconstructionClass", "\351\200\211\346\213\251\346\226\207\344\273\266", nullptr));
|
||||
label_18->setText(QApplication::translate("ReconstructionClass", "\350\275\275\345\205\245\346\212\225\345\275\261\345\233\276\346\241\210", nullptr));
|
||||
groupBox_7->setTitle(QApplication::translate("ReconstructionClass", "\351\207\215\345\273\272\346\227\245\345\277\227", nullptr));
|
||||
groupBox_8->setTitle(QString());
|
||||
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));
|
||||
label_14->setText(QApplication::translate("ReconstructionClass", "\345\274\202\345\270\270\347\202\271", nullptr));
|
||||
pushButton_16->setText(QApplication::translate("ReconstructionClass", "COLOR", nullptr));
|
||||
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->setText(QApplication::translate("ReconstructionClass", "\347\233\270\346\234\272\346\240\207\345\256\232", nullptr));
|
||||
pushButton_2->setText(QApplication::translate("ReconstructionClass", "\345\233\276\346\241\210\346\212\225\345\275\261", nullptr));
|
||||
pushButton_3->setText(QApplication::translate("ReconstructionClass", "\344\270\211\347\273\264\351\207\215\345\273\272", nullptr));
|
||||
label_4->setText(QApplication::translate("ReconstructionClass", "\345\212\237\350\203\275\351\200\211\346\213\251", 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", "\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));
|
||||
pushButton_2->setText(QApplication::translate("ReconstructionClass", "\344\270\211\347\273\264\351\207\215\345\273\272", nullptr));
|
||||
pushButton_3->setText(QApplication::translate("ReconstructionClass", "\347\202\271\344\272\221\346\270\262\346\237\223", nullptr));
|
||||
menusettings->setTitle(QApplication::translate("ReconstructionClass", "\347\233\270\346\234\272\350\256\276\347\275\256", nullptr));
|
||||
menuabout->setTitle(QApplication::translate("ReconstructionClass", "\345\205\263\344\272\216", nullptr));
|
||||
} // retranslateUi
|
||||
|
||||
};
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
/********************************************************************************
|
||||
** Form generated from reading UI file 'Reconstruction.ui'
|
||||
**
|
||||
** Created by: Qt User Interface Compiler version 5.12.3
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||
********************************************************************************/
|
||||
|
||||
#ifndef UI_RECONSTRUCTION_H
|
||||
#define UI_RECONSTRUCTION_H
|
||||
|
||||
#include <QtCore/QVariant>
|
||||
#include <QtWidgets/QApplication>
|
||||
#include <QtWidgets/QMainWindow>
|
||||
#include <QtWidgets/QMenuBar>
|
||||
#include <QtWidgets/QStatusBar>
|
||||
#include <QtWidgets/QToolBar>
|
||||
#include <QtWidgets/QWidget>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class Ui_ReconstructionClass
|
||||
{
|
||||
public:
|
||||
QMenuBar *menuBar;
|
||||
QToolBar *mainToolBar;
|
||||
QWidget *centralWidget;
|
||||
QStatusBar *statusBar;
|
||||
|
||||
void setupUi(QMainWindow *ReconstructionClass)
|
||||
{
|
||||
if (ReconstructionClass->objectName().isEmpty())
|
||||
ReconstructionClass->setObjectName(QString::fromUtf8("ReconstructionClass"));
|
||||
ReconstructionClass->resize(600, 400);
|
||||
menuBar = new QMenuBar(ReconstructionClass);
|
||||
menuBar->setObjectName(QString::fromUtf8("menuBar"));
|
||||
ReconstructionClass->setMenuBar(menuBar);
|
||||
mainToolBar = new QToolBar(ReconstructionClass);
|
||||
mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));
|
||||
ReconstructionClass->addToolBar(mainToolBar);
|
||||
centralWidget = new QWidget(ReconstructionClass);
|
||||
centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
|
||||
ReconstructionClass->setCentralWidget(centralWidget);
|
||||
statusBar = new QStatusBar(ReconstructionClass);
|
||||
statusBar->setObjectName(QString::fromUtf8("statusBar"));
|
||||
ReconstructionClass->setStatusBar(statusBar);
|
||||
|
||||
retranslateUi(ReconstructionClass);
|
||||
|
||||
QMetaObject::connectSlotsByName(ReconstructionClass);
|
||||
} // setupUi
|
||||
|
||||
void retranslateUi(QMainWindow *ReconstructionClass)
|
||||
{
|
||||
ReconstructionClass->setWindowTitle(QApplication::translate("ReconstructionClass", "Reconstruction", nullptr));
|
||||
} // retranslateUi
|
||||
|
||||
};
|
||||
|
||||
namespace Ui {
|
||||
class ReconstructionClass: public Ui_ReconstructionClass {};
|
||||
} // namespace Ui
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#endif // UI_RECONSTRUCTION_H
|
||||
Binary file not shown.
Binary file not shown.
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user