jerrym | f157933 | 2013-02-07 01:56:28 +0000 | [diff] [blame] | 1 | /*----------------------------------------------------------------------------*/
|
| 2 | /* Copyright (c) FIRST 2008. All Rights Reserved. */
|
| 3 | /* Open Source Software - may be modified and shared by FRC teams. The code */
|
| 4 | /* must be accompanied by the FIRST BSD license file in $(WIND_BASE)/WPILib. */
|
| 5 | /*----------------------------------------------------------------------------*/
|
| 6 |
|
| 7 | #ifndef __BINARY_IMAGE_H__
|
| 8 | #define __BINARY_IMAGE_H__
|
| 9 |
|
| 10 | #include "MonoImage.h"
|
| 11 | /**
|
| 12 | * Included for ParticleAnalysisReport definition
|
| 13 | * TODO: Eliminate this dependency!
|
| 14 | */
|
| 15 | #include "Vision2009/VisionAPI.h"
|
| 16 |
|
| 17 | #include <vector>
|
| 18 | #include <algorithm>
|
| 19 | using namespace std;
|
| 20 |
|
| 21 | class BinaryImage : public MonoImage
|
| 22 | {
|
| 23 | public:
|
| 24 | BinaryImage();
|
| 25 | virtual ~BinaryImage();
|
| 26 | int GetNumberParticles();
|
| 27 | ParticleAnalysisReport GetParticleAnalysisReport(int particleNumber);
|
| 28 | void GetParticleAnalysisReport(int particleNumber, ParticleAnalysisReport *par);
|
| 29 | vector<ParticleAnalysisReport>* GetOrderedParticleAnalysisReports();
|
| 30 | BinaryImage *RemoveSmallObjects(bool connectivity8, int erosions);
|
| 31 | BinaryImage *RemoveLargeObjects(bool connectivity8, int erosions);
|
| 32 | BinaryImage *ConvexHull(bool connectivity8);
|
| 33 | BinaryImage *ParticleFilter(ParticleFilterCriteria2 *criteria, int criteriaCount);
|
| 34 | virtual void Write(const char *fileName);
|
| 35 | private:
|
| 36 | bool ParticleMeasurement(int particleNumber, MeasurementType whatToMeasure, int *result);
|
| 37 | bool ParticleMeasurement(int particleNumber, MeasurementType whatToMeasure, double *result);
|
| 38 | static double NormalizeFromRange(double position, int range);
|
| 39 | static bool CompareParticleSizes(ParticleAnalysisReport particle1, ParticleAnalysisReport particle2);
|
| 40 | };
|
| 41 |
|
| 42 | #endif
|