nim_duilib/examples/contour/blob/defines.h
2025-03-16 16:42:44 +08:00

53 lines
1.6 KiB
C++

#pragma once
#include <memory>
#include <vector>
#ifdef MATRIXCV_ACTIU
#include "matrixCV.h"
#else
#include "vector"
//! Vector de doubles
typedef std::vector<double> DoubleStlVector;
#endif
/**************************************************************************
Filtres / Filters
**************************************************************************/
//! Actions performed by a filter (include or exclude blobs)
#define B_INCLUDE 1L
#define B_EXCLUDE 2L
enum FilterAction {FLT_INCLUDE = 1, FLT_EXCLUDE};
//! Conditions to apply the filters
#define B_EQUAL 3L
#define B_NOT_EQUAL 4L
#define B_GREATER 5L
#define B_LESS 6L
#define B_GREATER_OR_EQUAL 7L
#define B_LESS_OR_EQUAL 8L
#define B_INSIDE 9L
#define B_OUTSIDE 10L
enum FilterCondition {FLT_EQUAL = 3, FLT_NOTEQUAL, FLT_GREATER, FLT_LESS, FLT_GREATEROREQUAL, FLT_LESSOREQUAL, FLT_INSIDE, FLT_OUTSIDE};
/**************************************************************************
Excepcions / Exceptions
**************************************************************************/
//! Exceptions thrown by functions:
#define EXCEPTION_BLOB_OUT_OF_BOUNDS 1000
#define EXCEPCIO_CALCUL_BLOBS 1001
/**
* Class that contains a set of blobs and allows properties to be extracted or filter them according to certain criteria.
* Class to calculate the blobs of an image and calculate some properties on them. Also, the class provides functions to filter the blobs using some criteria.
*/
class Blob;
//! vector of blob pointers typedef
typedef std::vector<Blob*> BlobVector;