-
Notifications
You must be signed in to change notification settings - Fork 0
/
icgbench.h
executable file
·84 lines (70 loc) · 2.54 KB
/
icgbench.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/*
* Copyright (c) ICG. All rights reserved.
*
* Institute for Computer Graphics and Vision
* Graz University of Technology / Austria
*
* This software is distributed WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the above copyright notices for more information.
*
* Author : Jakob Santner
* EMail : santner@icg.tugraz.at
*/
#ifndef ICGBENCH_H_
#define ICGBENCH_H_
#include <string>
#include <vector>
#include <map>
namespace IcgBench{
/////////////////////////////////////////////////////////////////////////////
// LabelImage class
/////////////////////////////////////////////////////////////////////////////
class LabelImage{
public:
LabelImage(unsigned int* src, unsigned int width, unsigned int height);
LabelImage(unsigned int width, unsigned int height);
LabelImage(const LabelImage& src);
~LabelImage();
void set(unsigned int value, unsigned int x, unsigned int y);
unsigned int get(unsigned int x, unsigned int y) const;
unsigned int width() const{return width_;};
unsigned int height() const{return height_;};
std::map<unsigned int, unsigned int> histogram() const;
private:
unsigned int* labels_;
unsigned int width_, height_;
};
/////////////////////////////////////////////////////////////////////////////
// Support Functions
/////////////////////////////////////////////////////////////////////////////
double computeDiceScore(const LabelImage& a, const LabelImage&b);
/////////////////////////////////////////////////////////////////////////////
// Seed struct
/////////////////////////////////////////////////////////////////////////////
typedef struct{
unsigned int x;
unsigned int y;
unsigned int label;
} Seed;
/////////////////////////////////////////////////////////////////////////////
// IcgBenchFileIO class
/////////////////////////////////////////////////////////////////////////////
class IcgBenchFileIO{
public:
IcgBenchFileIO(const std::string& filename);
~IcgBenchFileIO();
LabelImage* getLabels(){return new LabelImage(*labels_);};
unsigned int getNumLabels(){return num_labels_;};
std::vector<Seed> getSeeds(){return seeds_;};
std::string getFileName(){return file_name_;};
std::string getUserName(){return user_name_;};
IcgBenchFileIO();
IcgBenchFileIO(const IcgBenchFileIO&);
LabelImage* labels_;
unsigned int num_labels_;
std::vector<Seed> seeds_;
std::string file_name_, user_name_;
};
}
#endif // ICGBENCH_H_