 |
ImageD
v2_7_5 (24.06.22)
ImageD is an image processing software designed for rapid prototyping and implementing algorithms and solutions for science, research and teaching.
|
Go to the documentation of this file.
24 #include <QStringList>
27 #include <opencv2/core/core.hpp>
28 #include <opencv2/highgui/highgui.hpp>
29 #include <opencv2/imgproc/imgproc.hpp>
50 void add_Point(
Point point2add) {vp_Coordinates.push_back(point2add); Need2Updated();}
51 void add_Point(
int x,
int y) {vp_Coordinates.push_back(
Point(x, y)); Need2Updated();}
52 void clear() {vp_Coordinates.clear(); Need2Updated();}
53 size_t get_Size() {
return vp_Coordinates.size();}
65 double get_Feature(
int feature) {
return (feature < vd_Features.size() && feature >= 0) ? vd_Features[feature] : 0;}
81 void free_Mat() {MA_Cropped.release(); MA_Distance.release(); calced_Mat_Cropped =
false; calced_Mat_Distance =
false;}
92 vector<Point> vp_Coordinates;
96 bool calced_Mat_Distance =
false;
97 bool calced_Mat_Cropped =
false;
100 vector<Point> vp_Contour;
101 vector<double> vd_Features;
103 double m_HuMoments[7];
106 Rect r_BoundingBox_Rect;
108 Point2f p_EnclosingCircle_Center;
109 float f_EnclosingCircle_Radius = 0.0;
110 Point p_InclosingCircle_Center;
111 float f_InclosingCircle_Radius = 0.0;
112 vector<Point> vp_ConvexHull;
118 bool calced_features =
false;
119 bool calced_contour =
false;
120 bool calced_mat =
false;
124 QString QS_Name =
"";
128 #endif // D_COMPONENT_H
cv::Mat Mat
Definition: d_opencv_typedefs.h:28
@ c_FEAT_CIRC_INSCRIB_AREA
Definition: d_enum.h:1351
@ c_FEAT_CURL_INV
Definition: d_enum.h:1330
@ c_FEAT_MOMENT_CENTRAL_mu02
Definition: d_enum.h:1429
@ c_FEAT_CONVEX_PERIMETER
Definition: d_enum.h:1360
@ c_FEAT_CIRC_ENCLOSE_CENTER_X
Definition: d_enum.h:1402
@ c_FEAT_CIRC_ENCLOSE_DIAMETER
Definition: d_enum.h:1395
@ c_FEAT_RECT_ROTATE_SIDE_SHORT
Definition: d_enum.h:1381
const int BORDER_CONSTANT
Definition: d_opencv_typedefs.h:77
@ c_FEAT_ELONGATION_RECT
Definition: d_enum.h:1327
@ c_FEAT_MASS_CENTER_X
Definition: d_enum.h:1398
@ c_FEAT_ELONGATION_ROT_INV
Definition: d_enum.h:1340
@ c_FEAT_DIRECTION
Definition: d_enum.h:1344
@ c_FEAT_ELLIPSE_FIT_CENTER_Y
Definition: d_enum.h:1412
Mat get_Mat()
Definition: d_component.h:64
@ c_FEAT_CIRC_CIRCUMS_AREA
Definition: d_enum.h:1355
@ c_FEAT_CIRC_INCLOSE_DIAMETER
Definition: d_enum.h:1393
@ c_FEAT_FIBRE_WIDTH
Definition: d_enum.h:1384
Point get_Offset()
Definition: d_component.h:71
@ c_FEAT_RECT_ROTATE_PERIMETER
Definition: d_enum.h:1362
@ c_FEAT_ELONGATION_ROT
Definition: d_enum.h:1328
@ c_FEAT_MOMENT_SPATIAL_m10
Definition: d_enum.h:1417
RotatedRect get_Ellipse_Fitted()
Definition: d_component.h:74
cv::Point2f Point2f
Definition: d_opencv_typedefs.h:37
@ c_FEAT_CIRC_INCLOSE_RADIUS
Definition: d_enum.h:1387
@ c_FEAT_MAJOR_AXIS
Definition: d_enum.h:1375
@ c_FEAT_RECT_ROTATE_ANGLE
Definition: d_enum.h:1342
@ c_FEAT_MASS_CENTER_Y
Definition: d_enum.h:1407
void Calc_All()
Definition: d_component.cpp:35
@ c_FEAT_CIRC_INCLOSE_CENTER_X
Definition: d_enum.h:1401
@ c_FEAT_CIRC_INCLOSE_CENTER_Y
Definition: d_enum.h:1410
@ c_FEAT_CONVEXITY_INV
Definition: d_enum.h:1333
@ c_FEAT_ELLIPSE_FIT_AREA
Definition: d_enum.h:1356
@ c_FEAT_MOMENT_SPATIAL_m01
Definition: d_enum.h:1418
@ c_FEAT_RECT_AXEPAR_LEFT
Definition: d_enum.h:1404
@ c_FEAT_MOMENT_CENTRAL_NORM_nu02
Definition: d_enum.h:1437
cv::Rect Rect
Definition: d_opencv_typedefs.h:65
vector< Point > get_Coordinates()
Definition: d_component.h:66
@ c_FEAT_CIRC_ENCLOSE_AREA
Definition: d_enum.h:1354
@ c_FEAT_CIRC_ENCLOSE_CENTER_Y
Definition: d_enum.h:1411
@ c_FEAT_MOMENT_CENTRAL_mu11
Definition: d_enum.h:1428
@ c_FEAT_MOMENT_CENTRAL_NORM_nu20
Definition: d_enum.h:1435
@ c_FEAT_ELLIPSE_FIT_PERIMETER
Definition: d_enum.h:1368
Point2f get_Centroid()
Definition: d_component.h:68
void add_Point(Point point2add)
Definition: d_component.h:50
void Calc_Features()
Definition: d_component.cpp:149
RotatedRect get_BndBox_Rotate()
Definition: d_component.h:73
const double PI
Definition: d_enum.h:2534
@ c_FEAT_COUNT_CONTOUR
Definition: d_enum.h:1358
@ c_FEAT_CIRC_EQUIVAL_RADIUS
Definition: d_enum.h:1388
@ c_FEAT_RECT_AXEPAR_CENTER_X
Definition: d_enum.h:1399
@ c_FEAT_MOMENT_CENTRAL_mu20
Definition: d_enum.h:1427
@ c_FEAT_COMPACTNESS
Definition: d_enum.h:1320
void Calc_Distance()
Definition: d_component.cpp:121
@ c_FEAT_SOLIDITY_INV
Definition: d_enum.h:1331
@ c_FEAT_MOMENT_CENTRAL_NORM_nu03
Definition: d_enum.h:1441
@ c_FEAT_MOMENT_SPATIAL_m20
Definition: d_enum.h:1419
const int RETR_CCOMP
Definition: d_opencv_typedefs.h:98
@ c_FEAT_CIRC_CIRCUMS_PERIMETER
Definition: d_enum.h:1367
The D_Component class A blob and its features in a 2D binary/label image.
Definition: d_component.h:41
@ c_FEAT_CIRC_CIRCUMS_DIAMETER
Definition: d_enum.h:1396
@ c_FEAT_CIRC_INCLOSE_AREA
Definition: d_enum.h:1352
@ c_FEAT_MINOR_AXIS
Definition: d_enum.h:1383
void Calc_Mat()
Definition: d_component.cpp:40
@ c_FEAT_RECT_AXEPAR_PERIMETER
Definition: d_enum.h:1361
@ c_FEAT_PERIMETER
Definition: d_enum.h:1359
@ c_FEAT_RECT_AXEPAR_WIDTH
Definition: d_enum.h:1370
@ c_FEAT_HOLES
Definition: d_enum.h:1316
@ c_FEAT_DIST_CENTROID_2_CONTOUR
Definition: d_enum.h:1451
@ c_FEAT_RECT_ROTATE_AREA
Definition: d_enum.h:1350
@ c_FEAT_ELLIPSE_FIT_ANGLE
Definition: d_enum.h:1343
cv::Point Point
Definition: d_opencv_typedefs.h:35
@ c_FEAT_SPHERICITY_INV
Definition: d_enum.h:1335
Mat * get_pMat()
Definition: d_component.h:63
void free_Mat()
Definition: d_component.h:81
void clear()
Definition: d_component.h:52
cv::Moments Moments
Definition: d_opencv_typedefs.h:72
void Calc_Contour()
Definition: d_component.cpp:87
void add_Point(int x, int y)
Definition: d_component.h:51
@ c_FEAT_RECT_ROTATE_HEIGHT
Definition: d_enum.h:1380
@ c_FEAT_MOMENT_SPATIAL_m03
Definition: d_enum.h:1425
@ c_FEAT_ELLIPSE_FIT_CENTER_X
Definition: d_enum.h:1403
@ c_FEAT_ROUNDNESS
Definition: d_enum.h:1322
@ c_FEAT_EXCENTRICITY
Definition: d_enum.h:1326
@ c_FEAT_CIRC_CIRCUMS_RADIUS
Definition: d_enum.h:1390
@ c_FEAT_MOMENT_CENTRAL_NORM_nu11
Definition: d_enum.h:1436
size_t get_Size()
Definition: d_component.h:53
@ c_FEAT_RECT_ROTATE_WIDTH
Definition: d_enum.h:1372
@ c_FEAT_CIRC_EQUIVAL_DIAMETER
Definition: d_enum.h:1394
@ c_FEAT_ROUNDNESS_INV
Definition: d_enum.h:1334
@ c_FEAT_COMPACTNESS_INV
Definition: d_enum.h:1332
@ c_FEAT_SOLIDITY
Definition: d_enum.h:1319
@ c_FEAT_CIRC_ENCLOSE_PERIMETER
Definition: d_enum.h:1366
@ c_FEAT_MOMENT_INVARIANT_hu6
Definition: d_enum.h:1449
@ c_FEAT_CURL
Definition: d_enum.h:1318
@ c_FEAT_MOMENT_CENTRAL_mu03
Definition: d_enum.h:1433
@ c_FEAT_CIRC_INCLOSE_PERIMETER
Definition: d_enum.h:1364
@ c_FEAT_RECT_AXEPAR_ASPECT_RATIO_INV
Definition: d_enum.h:1337
@ c_FEAT_LABEL
Definition: d_enum.h:1314
@ c_FEAT_ELLIPSE_FIT_MAJOR_AXIS
Definition: d_enum.h:1374
@ c_FEAT_CIRC_ENCLOSE_RADIUS
Definition: d_enum.h:1389
@ c_FEAT_RECTANGULARITY
Definition: d_enum.h:1324
@ c_FEAT_RECT_ROTATE_SIDE_LONG
Definition: d_enum.h:1373
@ c_FEAT_RECT_AXEPAR_RIGHT
Definition: d_enum.h:1405
@ c_FEAT_MOMENT_INVARIANT_hu0
Definition: d_enum.h:1443
@ c_FEAT_MOMENT_INVARIANT_hu3
Definition: d_enum.h:1446
@ c_FEAT_MOMENT_INVARIANT_hu5
Definition: d_enum.h:1448
@ c_FEAT_SPHERICITY
Definition: d_enum.h:1323
@ c_FEAT_MOMENT_INVARIANT_hu4
Definition: d_enum.h:1447
@ c_FEAT_RECT_AXEPAR_SIDE_SHORT
Definition: d_enum.h:1379
@ c_FEAT_RECT_AXEPAR_CENTER_Y
Definition: d_enum.h:1408
@ c_FEAT_ELLIPSE_FIT_MINOR_AXIS
Definition: d_enum.h:1382
@ c_FEAT_MOMENT_SPATIAL_m11
Definition: d_enum.h:1420
@ c_FEAT_RECT_AXEPAR_HEIGHT
Definition: d_enum.h:1378
double get_Feature(int feature)
Definition: d_component.h:65
vector< Point > get_Contour()
Definition: d_component.h:67
const double PI_4_0
Definition: d_enum.h:2536
@ C_FEAT_CONVEXITY
Definition: d_enum.h:1321
@ c_FEAT_CIRC_INSCRIB_DIAMETER
Definition: d_enum.h:1392
@ c_FEAT_MOMENT_CENTRAL_NORM_nu12
Definition: d_enum.h:1440
@ c_FEAT_MOMENT_CENTRAL_mu30
Definition: d_enum.h:1430
@ c_FEAT_RECT_AXEPAR_AREA
Definition: d_enum.h:1349
@ c_FEAT_CIRC_EQUIVAL_AREA
Definition: d_enum.h:1353
@ c_FEAT_CONVEX_AREA
Definition: d_enum.h:1348
@ c_FEAT_SPHERE_EQUIV_VOL
Definition: d_enum.h:1453
@ c_FEAT_COUNT_PIXEL
Definition: d_enum.h:1346
@ c_FEAT_MOMENT_INVARIANT_hu1
Definition: d_enum.h:1444
@ c_FEAT_RECT_AXEPAR_BOTTOM
Definition: d_enum.h:1414
@ c_FEAT_MOMENT_SPATIAL_m00
Definition: d_enum.h:1416
@ c_FEAT_MOMENT_CENTRAL_NORM_nu30
Definition: d_enum.h:1438
vector< Point > get_Contour_ConvexHull()
Definition: d_component.h:69
@ c_FEAT_RECT_AXEPAR_ASPECT_RATIO
Definition: d_enum.h:1325
@ c_FEAT_MOMENT_CENTRAL_mu21
Definition: d_enum.h:1431
@ c_FEAT_CIRC_EQUIVAL_PERIMETER
Definition: d_enum.h:1365
@ c_FEAT_MOMENT_SPATIAL_m21
Definition: d_enum.h:1423
@ c_FEAT_EXCENTRICITY_INV
Definition: d_enum.h:1338
@ c_FEAT_MOMENT_CENTRAL_mu12
Definition: d_enum.h:1432
@ c_FEAT_CIRC_INSCRIB_RADIUS
Definition: d_enum.h:1386
@ c_FEAT_RECT_AXEPAR_TOP
Definition: d_enum.h:1413
@ c_FEAT_FIBRE_LENGTH
Definition: d_enum.h:1376
cv::RotatedRect RotatedRect
Definition: d_opencv_typedefs.h:66
D_Component()
Definition: d_component.cpp:11
@ c_FEAT_MOMENT_CENTRAL_NORM_nu21
Definition: d_enum.h:1439
Rect get_BndBox_Rect()
Definition: d_component.h:72
@ c_FEAT_RECT_AXEPAR_SIDE_LONG
Definition: d_enum.h:1371
@ c_FEAT_RECT_ROTATE_CENTER_Y
Definition: d_enum.h:1409
@ c_FEAT_CIRC_INSCRIB_PERIMETER
Definition: d_enum.h:1363
void set_Name(QString name)
Definition: d_component.h:77
@ c_FEAT_MOMENT_SPATIAL_m12
Definition: d_enum.h:1424
@ c_FEAT_RECT_ROTATE_CENTER_X
Definition: d_enum.h:1400
@ c_FEAT_MOMENT_SPATIAL_m02
Definition: d_enum.h:1421
@ c_FEAT_MOMENT_SPATIAL_m30
Definition: d_enum.h:1422
void set_Number(int number)
Definition: d_component.h:78
@ c_FEAT_RECTANGULARITY_INV
Definition: d_enum.h:1336
@ c_FEAT_MOMENT_INVARIANT_hu2
Definition: d_enum.h:1445
@ c_FEAT_NUMBER_OF_FEATS
Definition: d_enum.h:1455
@ c_FEAT_AREA
Definition: d_enum.h:1347
@ c_FEAT_ELONGATION_RECT_INV
Definition: d_enum.h:1339