Version: 8.3.0
Main Page
Namespaces
Classes
Files
File List
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