ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
qAutoSeg.cpp File Reference
#include "qAutoSeg.h"
#include <pcl/common/common.h>
#include <pcl/common/transforms.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/point_cloud.h>
#include <random>
#include "profileImportDlg.h"
#include <QFile>
#include <QFileInfo>
#include <QMainWindow>
#include <QMessageBox>
#include <QSettings>
#include <QtGui>
#include <unordered_set>
#include <GenericIndexedCloudPersist.h>
#include <ecvCone.h>
#include <ecvFileUtils.h>
#include <ecvHObjectCaster.h>
#include <ecvMesh.h>
#include <ecvPointCloud.h>
#include <ecvPolyline.h>
#include <ecvProgressDialog.h>
#include <ecvScalarField.h>
#include <PlyFilter.h>
#include <algorithm>
#include <cmath>
#include <fstream>
#include <iostream>
#include <list>
#include <numeric>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/opencv.hpp>
#include <vector>
#include <CVKdTree.h>
#include <CVPointCloud.h>
#include <CVTools.h>
#include <CloudSamplingTools.h>
#include <DgmOctreeReferenceCloud.h>
#include <DistanceComputationTools.h>
#include <GenericProgressCallback.h>
#include <Neighbourhood.h>
#include <ReferenceCloud.h>
#include <ScalarField.h>
#include <ScalarFieldTools.h>
#include <SimpleMesh.h>
#include <ctime>
Include dependency graph for qAutoSeg.cpp:

Go to the source code of this file.

Macros

#define CV_PCA_DATA_AS_ROW   150
 
#define _USE_MATH_DEFINES
 

Functions

double stddev (std::vector< double > const &func)
 
string dateStamp ()
 
double optRotY (ccPointCloud *&cloud)
 
void rotY (ccPointCloud *&cloud, double th0)
 
void cloud2binary (ccPointCloud *cloud, cv::Mat &corrMatS, std::vector< cv::Point > &idxPxS, std::vector< int > &idxPx1DS, cv::Mat &imageBWS)
 
cv::Mat skeleton (cv::Mat I, bool flagInv)
 
std::vector< cv::Point > extractVectorFromIdx (std::vector< cv::Point > v, vector< int > idx)
 
void populateMat (cv::Mat &populated, std::vector< cv::Point > pixList, int value)
 
std::vector< cv::Point > setdiffPixs (std::vector< cv::Point > listNew, std::vector< cv::Point > listOld)
 
std::vector< int > setIntersectIdxPixs (std::vector< cv::Point > listNew, std::vector< cv::Point > listOld)
 
std::vector< int > setIntersectIdxPixs1D (std::vector< int > listNew, std::vector< int > listOld)
 
std::vector< cv::Point > setxorPixs (std::vector< cv::Point > listNew, std::vector< cv::Point > listOld)
 
std::vector< int > pixelValues (cv::Mat inputM, std::vector< cv::Point > &pixelList)
 
std::vector< std::vector< cv::Point > > pixelListMat (cv::Mat inputM, int nLabels)
 
std::vector< int > findMatlab (std::vector< double > inputV, int op, double thres)
 
std::vector< int > findIdx (std::vector< int > inputV, int thres)
 
void dilationCC (int dilation_elem, int dilation_size, cv::Mat &src, cv::Mat &dilation_dst)
 
void erosionCC (int erosion_elem, int erosion_size, cv::Mat &src, cv::Mat &erosion_dst)
 
cv::Mat stonesDivision (std::vector< std::vector< cv::Point >> pixsLabel, cv::Mat labels, std::vector< int > bigStones)
 
cv::Mat threshSegments (cv::Mat &src, double threshSize)
 
string type2str (int type)
 
void extractInfo (cv::Mat &input, std::vector< std::vector< cv::Point >> &pixsLabel, cv::Mat &labels, cv::Mat &stats, std::vector< std::vector< Point >> &contours0)
 
void fillEdgeImage (cv::Mat edgesIn, cv::Mat &filledEdgesOut, int z)
 
void fft2 (const cv::Mat in, cv::Mat &complexI)
 
cv::Mat conjugate (cv::Mat_< std::complex< double >> M1, bool *flag)
 
cv::Mat multiplicationCC (cv::Mat_< std::complex< double >> M1, cv::Mat_< std::complex< double >> M2)
 
void cwt2d (double sca, cv::Mat image, cv::Mat &cwtcfs, cv::Mat &bincfs)
 
ccPolylinecontourPoly (ccPointCloud *stone)
 
ccPolylinecontourPoly2 (ccPointCloud *cloud0, vector< int > V, QString name)
 
ccPointCloudgetMortarMaps (ccPointCloud *f_cloudStones, ccPointCloud *f_cloudMortar)
 
float getDensity (ccPointCloud *cloud, vector< int > idx)
 

Macro Definition Documentation

◆ _USE_MATH_DEFINES

#define _USE_MATH_DEFINES

Definition at line 46 of file qAutoSeg.cpp.

◆ CV_PCA_DATA_AS_ROW

#define CV_PCA_DATA_AS_ROW   150

Definition at line 8 of file qAutoSeg.cpp.

Function Documentation

◆ cloud2binary()

void cloud2binary ( ccPointCloud cloud,
cv::Mat &  corrMatS,
std::vector< cv::Point > &  idxPxS,
std::vector< int > &  idxPx1DS,
cv::Mat &  imageBWS 
)

◆ conjugate()

cv::Mat conjugate ( cv::Mat_< std::complex< double >>  M1,
bool *  flag 
)

Definition at line 767 of file qAutoSeg.cpp.

◆ contourPoly()

◆ contourPoly2()

◆ cwt2d()

void cwt2d ( double  sca,
cv::Mat  image,
cv::Mat &  cwtcfs,
cv::Mat &  bincfs 
)

Definition at line 809 of file qAutoSeg.cpp.

References abs(), fft2(), cloudViewer::utility::floor(), and image.

◆ dateStamp()

string dateStamp ( )

Definition at line 97 of file qAutoSeg.cpp.

◆ dilationCC()

void dilationCC ( int  dilation_elem,
int  dilation_size,
cv::Mat &  src,
cv::Mat &  dilation_dst 
)

Definition at line 496 of file qAutoSeg.cpp.

◆ erosionCC()

void erosionCC ( int  erosion_elem,
int  erosion_size,
cv::Mat &  src,
cv::Mat &  erosion_dst 
)

Definition at line 515 of file qAutoSeg.cpp.

Referenced by stonesDivision().

◆ extractInfo()

void extractInfo ( cv::Mat &  input,
std::vector< std::vector< cv::Point >> &  pixsLabel,
cv::Mat &  labels,
cv::Mat &  stats,
std::vector< std::vector< Point >> &  contours0 
)

Definition at line 667 of file qAutoSeg.cpp.

References pixelListMat(), and type2str().

◆ extractVectorFromIdx()

std::vector<cv::Point> extractVectorFromIdx ( std::vector< cv::Point >  v,
vector< int >  idx 
)

Definition at line 311 of file qAutoSeg.cpp.

◆ fft2()

void fft2 ( const cv::Mat  in,
cv::Mat &  complexI 
)

Definition at line 753 of file qAutoSeg.cpp.

Referenced by cwt2d().

◆ fillEdgeImage()

void fillEdgeImage ( cv::Mat  edgesIn,
cv::Mat &  filledEdgesOut,
int  z 
)

Definition at line 692 of file qAutoSeg.cpp.

References type2str().

◆ findIdx()

std::vector<int> findIdx ( std::vector< int >  inputV,
int  thres 
)

Definition at line 485 of file qAutoSeg.cpp.

◆ findMatlab()

std::vector<int> findMatlab ( std::vector< double >  inputV,
int  op,
double  thres 
)

Definition at line 454 of file qAutoSeg.cpp.

◆ getDensity()

◆ getMortarMaps()

◆ multiplicationCC()

cv::Mat multiplicationCC ( cv::Mat_< std::complex< double >>  M1,
cv::Mat_< std::complex< double >>  M2 
)

Definition at line 792 of file qAutoSeg.cpp.

◆ optRotY()

◆ pixelListMat()

std::vector<std::vector<cv::Point> > pixelListMat ( cv::Mat  inputM,
int  nLabels 
)

Definition at line 437 of file qAutoSeg.cpp.

Referenced by extractInfo().

◆ pixelValues()

std::vector<int> pixelValues ( cv::Mat  inputM,
std::vector< cv::Point > &  pixelList 
)

Definition at line 426 of file qAutoSeg.cpp.

◆ populateMat()

void populateMat ( cv::Mat &  populated,
std::vector< cv::Point >  pixList,
int  value 
)

Definition at line 323 of file qAutoSeg.cpp.

◆ rotY()

◆ setdiffPixs()

std::vector<cv::Point> setdiffPixs ( std::vector< cv::Point >  listNew,
std::vector< cv::Point >  listOld 
)

Definition at line 333 of file qAutoSeg.cpp.

◆ setIntersectIdxPixs()

std::vector<int> setIntersectIdxPixs ( std::vector< cv::Point >  listNew,
std::vector< cv::Point >  listOld 
)

Definition at line 355 of file qAutoSeg.cpp.

◆ setIntersectIdxPixs1D()

std::vector<int> setIntersectIdxPixs1D ( std::vector< int >  listNew,
std::vector< int >  listOld 
)

Definition at line 372 of file qAutoSeg.cpp.

Referenced by getMortarMaps().

◆ setxorPixs()

std::vector<cv::Point> setxorPixs ( std::vector< cv::Point >  listNew,
std::vector< cv::Point >  listOld 
)

Definition at line 392 of file qAutoSeg.cpp.

◆ skeleton()

cv::Mat skeleton ( cv::Mat  I,
bool  flagInv 
)

Definition at line 279 of file qAutoSeg.cpp.

Referenced by getMortarMaps().

◆ stddev()

◆ stonesDivision()

cv::Mat stonesDivision ( std::vector< std::vector< cv::Point >>  pixsLabel,
cv::Mat  labels,
std::vector< int >  bigStones 
)

Definition at line 534 of file qAutoSeg.cpp.

References erosionCC(), and size.

◆ threshSegments()

cv::Mat threshSegments ( cv::Mat &  src,
double  threshSize 
)

Definition at line 578 of file qAutoSeg.cpp.

References result.

◆ type2str()

string type2str ( int  type)

Definition at line 627 of file qAutoSeg.cpp.

References type.

Referenced by extractInfo(), and fillEdgeImage().