Version: 8.3.0
Main Page
Namespaces
Classes
Files
File List
File Members
SALOME Geometry Developer
Namespaces
Classes
Files
File List
idl
src
AdvancedEngine
AdvancedGUI
ARCHIMEDE
BasicGUI
BlockFix
BlocksGUI
BooleanGUI
BREPPlugin
BuildGUI
CurveCreator
DependencyTree
DisplayGUI
DlgRef
EntityGUI
GenerationGUI
GEOM
GEOM_I
GEOM_I_Superv
GEOM_SWIG_WITHIHM
GEOMAlgo
GEOMBase
GEOMClient
GEOMFiltersSelection
GEOMGUI
GEOMImpl
GEOMToolsGUI
GEOMUtils
GroupGUI
IGESPlugin
Material
MeasureGUI
OBJECT
OCC2VTK
OperationGUI
PrimitiveGUI
RepairGUI
ShapeRecognition
ShapeRec_FeatureDetector.cxx
ShapeRec_FeatureDetector.hxx
ShHealOper
SKETCHER
STEPPlugin
STLPlugin
TransformationGUI
VTKPlugin
XAO
XAOPlugin
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
ShapeRec_FeatureDetector.hxx
Go to the documentation of this file.
1
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
2
//
3
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5
//
6
// This library is free software; you can redistribute it and/or
7
// modify it under the terms of the GNU Lesser General Public
8
// License as published by the Free Software Foundation; either
9
// version 2.1 of the License, or (at your option) any later version.
10
//
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
// Lesser General Public License for more details.
15
//
16
// You should have received a copy of the GNU Lesser General Public
17
// License along with this library; if not, write to the Free Software
18
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
//
20
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21
//
22
23
// File : ShapeRec_FeatureDetector.h
24
// Author : Renaud NEDELEC, Open CASCADE S.A.S.
25
26
// OpenCV includes
27
#include <cv.h>
28
#include <highgui.h>
29
#include <opencv2/imgproc/imgproc.hpp>
30
#include <opencv2/highgui/highgui.hpp>
31
32
// Qt
33
#include <QRect>
34
35
#ifdef WIN32
36
#if defined GEOM_SHAPEREC_EXPORTS || defined GEOMShapeRec_EXPORTS
37
#define GEOM_SHAPEREC_EXPORT __declspec( dllexport )
38
#else
39
#define GEOM_SHAPEREC_EXPORT __declspec( dllimport )
40
#endif
41
#else
42
#define GEOM_SHAPEREC_EXPORT
43
#endif
44
45
class
GEOM_SHAPEREC_EXPORT
ShapeRec_Parameters
46
{
47
public
:
48
ShapeRec_Parameters
();
49
virtual
~
ShapeRec_Parameters
();
50
51
int
kernelSize
;
52
int
findContoursMethod
;
53
};
54
55
class
GEOM_SHAPEREC_EXPORT
ShapeRec_CornersParameters
:
public
ShapeRec_Parameters
56
{
57
public
:
58
ShapeRec_CornersParameters
();
59
virtual
~
ShapeRec_CornersParameters
();
60
61
double
qualityLevel
;
62
double
minDistance
;
63
int
typeCriteria
;
64
int
maxIter
;
65
double
epsilon
;
66
};
67
68
class
GEOM_SHAPEREC_EXPORT
ShapeRec_CannyParameters
:
public
ShapeRec_Parameters
69
{
70
public
:
71
ShapeRec_CannyParameters
();
72
virtual
~
ShapeRec_CannyParameters
();
73
74
int
lowThreshold
;
75
int
ratio
;
76
bool
L2gradient
;
77
};
78
79
class
GEOM_SHAPEREC_EXPORT
ShapeRec_ColorFilterParameters
:
public
ShapeRec_Parameters
80
{
81
public
:
82
ShapeRec_ColorFilterParameters
();
83
virtual
~
ShapeRec_ColorFilterParameters
();
84
85
int
smoothSize
;
86
int
*
histSize
;
87
int
histType
;
88
double
threshold
;
89
double
maxThreshold
;
90
};
91
92
class
GEOM_SHAPEREC_EXPORT
ShapeRec_FeatureDetector
93
{
94
public
:
95
96
typedef
std::vector<cv::Point>
CvContour
;
97
typedef
std::vector<std::vector<cv::Point> >
CvContoursArray
;
98
99
ShapeRec_FeatureDetector
();
// Constructor
100
101
void
SetPath(
const
std::string& );
// Sets the image path
102
void
SetROI(
const
QRect& );
// Sets a Region Of Interest in the image
103
CvPoint2D32f*
GetCorners
() {
return
corners; };
104
CvContoursArray
GetContours
() {
return
contours; };
105
std::vector<cv::Vec4i>
GetLines
() {
return
lines; };
106
std::vector<cv::Vec4i>
GetContoursHierarchy
() {
return
hierarchy; };
107
int
GetCornerCount
() {
return
cornerCount; };
108
int
GetImgHeight
() {
return
imgHeight; };
109
int
GetImgWidth
() {
return
imgWidth; };
110
111
std::string CroppImage();
112
void
ComputeCorners(
bool
useROI =
false
,
ShapeRec_Parameters
* parameters = 0 );
// Detects the corners from the image located at imagePath
113
bool
ComputeLines();
// Detects the lines from the image located at imagePath
114
bool
ComputeContours(
bool
useROI =
false
,
ShapeRec_Parameters
* parameters = 0 );
// Detects the contours from the image located at imagePath
115
116
117
private
:
118
std::string
imagePath
;
119
120
CvPoint2D32f*
corners
;
121
int
cornerCount
;
122
123
CvContoursArray
contours
;
124
std::vector<cv::Vec4i>
hierarchy
;
125
std::vector<cv::Vec4i>
lines
;
126
int
imgHeight
;
127
int
imgWidth
;
128
CvRect
rect
;
129
};
src
ShapeRecognition
ShapeRec_FeatureDetector.hxx
Copyright © 2007-2017 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS