29 Centroid::~Centroid(){};
31 int Centroid::select(Chip *inputChip,Chip *selectionChip) {
43 int lines, samples,line,sample;
49 lines = inputChip->Lines();
50 samples = inputChip->Samples();
52 if (lines <= 0 || samples <= 0)
55 selectionChip->SetSize(samples,lines);
57 sample = int(inputChip->ChipSample());
58 line = int(inputChip->ChipLine());
62 selectionChip->SetAllValues(0.0);
64 std::vector < std::vector<int> > Q;
65 std::vector <int> pt(2);
67 dn = inputChip->GetValue(sample,line);
68 if (dn < m_minDN || dn > m_maxDN) {
77 for (i=0;i<Q.size();i++) {
78 dn = inputChip->GetValue(Q[i][0], Q[i][1]);
79 if (dn >= m_minDN && dn <= m_maxDN && selectionChip->GetValue(Q[i][0], Q[i][1]) == 0.0) {
82 selectionChip->SetValue(sample, line, 1.0);
84 if (sample < samples) {
85 dn = inputChip->GetValue(sample + 1, line);
86 if (dn >= m_minDN && dn <= m_maxDN && selectionChip->GetValue(sample+1, line) == 0.0) {
93 dn = inputChip->GetValue(sample-1, line);
94 if (dn >= m_minDN && dn <= m_maxDN && selectionChip->GetValue(sample-1, line) == 0.0) {
101 dn = inputChip->GetValue(sample, line +1);
102 if( dn >= m_minDN && dn <= m_maxDN && selectionChip->GetValue(sample, line+1) == 0.0 ) {
109 dn = inputChip->GetValue(sample, line-1);
110 if( dn >= m_minDN && dn <= m_maxDN && selectionChip->GetValue(sample, line-1) == 0.0 ) {
123 int Centroid::setDNRange(
double minimumDN,
double maximumDN ) {
125 if (maximumDN < minimumDN)
132 double Centroid::getMinDN() {
136 double Centroid::getMaxDN() {