App

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
app::THistogram< TPIXEL, TCHANNEL > Class Template Reference

Třída pro počítání histogramů. More...

`#include <THistogram.hpp>`

## Public Member Functions
| THistogram (const TBitmap< TPIXEL, TCHANNEL > &bitmap)
| Defaultní konstruktor.
unsigned * | getChannel (unsigned index)
| Vrátí ukazatel na pole s histogramem o daném indexu.
virtual | ~THistogram ()
| Destruktor.

## Static Public Attributes
static const TCHANNEL | maxVal = ~0
| Maximální hodnota kanálu.
static const unsigned | valsCount = 128
| Počet sloupců histogramu.
static const unsigned | factor = (maxVal + 1) / valsCount
| Přepočtová konstanta pro transformaci potu hodnot kanálu na počet sloupců histogramu.
static const unsigned | chCount = sizeof(TPIXEL) / sizeof(TCHANNEL)
| Počet kanálů bitmapy.

## Protected Member Functions
virtual int | calculate_4ch (const TBitmap< TPIXEL, TCHANNEL > &bitmap)
| Provede výpočet histogramu pro danou 4kanálovou bitmapu.
virtual int | calculate_1ch (const TBitmap< TPIXEL, TCHANNEL > &bitmap)
| Provede výpočet histogramu pro danou 1kanálovou bitmapu.

## Protected Attributes
unsigned * | data [5]
| Součty jednotlivých kanálů.
int | calcErr
| Kód chyby, který vrátil výpočet hostogramu.
unsigned | maxIndex
| Maximální index, který lze brát. Pro jednokanálovou bitmapu 0, pro 4 kanálovou 4.

## Detailed Description

### template<typename TPIXEL, typename TCHANNEL>
class app::THistogram< TPIXEL, TCHANNEL >

Třída pro počítání histogramů.

Třída zapouzdřuje histogram.

Definition at line 30 of file THistogram.hpp.

## Constructor & Destructor Documentation

template<typename TPIXEL , typename TCHANNEL >

app::THistogram< TPIXEL, TCHANNEL >::THistogram | ( | const TBitmap< TPIXEL, TCHANNEL > & | bitmap | ) |
| inline

Defaultní konstruktor.

Defaultní konstruktor, provede rovnou výpočet histogramu.

Parameters

  bitmap | Bitmapa, pro kterou se má histogram spočítat.

Definition at line 73 of file THistogram.hpp.

{
switch (chCount) {
case 1:
data[0] = (unsigned *) malloc((unsigned long int)(valsCount * sizeof(unsigned))); // ANDROID_SPECIFIC přetypování v malloc
data[1] = NULL;
data[2] = NULL;
data[3] = NULL;
data[4] = NULL;
calcErr = calculate_1ch(bitmap);
maxIndex = 0;
break;
case 4:
data[0] = (unsigned *) malloc((unsigned long int)(valsCount * sizeof(unsigned))); // ANDROID_SPECIFIC přetypování v malloc
data[1] = (unsigned *) malloc((unsigned long int)(valsCount * sizeof(unsigned))); // ANDROID_SPECIFIC přetypování v malloc
data[2] = (unsigned *) malloc((unsigned long int)(valsCount * sizeof(unsigned))); // ANDROID_SPECIFIC přetypování v malloc
data[3] = (unsigned *) malloc((unsigned long int)(valsCount * sizeof(unsigned))); // ANDROID_SPECIFIC přetypování v malloc
data[4] = (unsigned *) malloc((unsigned long int)(valsCount * sizeof(unsigned))); // ANDROID_SPECIFIC přetypování v malloc
calcErr = calculate_4ch(bitmap);
maxIndex = 4;
break;
default:
break;
}
}
template<typename TPIXEL , typename TCHANNEL >

THistogram< TPIXEL, TCHANNEL >::~THistogram | ( |  | ) |
| virtual

Destruktor.

Definition at line 14 of file THistogram.cpp.

{
int i = 0;
while (i < 5) {
if (data[i] != NULL) {
free(data[i]);
}
i++;
}
}

## Member Function Documentation

template<typename TPIXEL , typename TCHANNEL >

int THistogram< TPIXEL, TCHANNEL >::calculate_1ch | ( | const TBitmap< TPIXEL, TCHANNEL > & | bitmap | ) |
| protectedvirtual

Provede výpočet histogramu pro danou 1kanálovou bitmapu.

Provede výpočet histogramu pro danou 1kanálovou bitmapu.

Parameters

  bitmap | Bitmapa

Returns
  V případě úspěchu 0, jinak kód cyhby.

Definition at line 50 of file THistogram.cpp.

{
if (chCount != 1) { return 1; }
if (data[0] == NULL) { return 2; }
memset(data[0], 0, (unsigned long int)(valsCount * sizeof(unsigned))); // ANDROID_SPECIFIC přetypování v malloc
TCHANNEL * ptr0 = (TCHANNEL *) bitmap.getData();
if (ptr0 == NULL) { return 3; }
TCHANNEL * ptr0End = (TCHANNEL *) (bitmap.getData() + bitmap.getWidth() * bitmap.getHeight());
while (ptr0 < ptr0End) {
data[0][*ptr0 / factor]++; ptr0++;
}
return 0;
}
template<typename TPIXEL , typename TCHANNEL >

int THistogram< TPIXEL, TCHANNEL >::calculate_4ch | ( | const TBitmap< TPIXEL, TCHANNEL > & | bitmap | ) |
| protectedvirtual

Provede výpočet histogramu pro danou 4kanálovou bitmapu.

Provede výpočet histogramu pro danou 4kanálovou bitmapu.

Parameters

  bitmap | Bitmapa

Returns
  V případě úspěchu 0, jinak kód cyhby.

Definition at line 25 of file THistogram.cpp.

{
if (chCount != 4) { return 1; }
int i = 0;
while (i < 5) {
if (data[i] == NULL) { return 2; }
memset(data[i], 0, (unsigned long int)(valsCount * sizeof(unsigned))); // ANDROID_SPECIFIC přetypování v malloc
i++;
}
TCHANNEL * ptr0 = (TCHANNEL *) bitmap.getData();
if (ptr0 == NULL) { return 3; }
TCHANNEL * ptr1 = ptr0 + 1;
TCHANNEL * ptr2 = ptr1 + 1;
TCHANNEL * ptr3 = ptr2 + 1;
TCHANNEL * ptr0End = (TCHANNEL *) (bitmap.getData() + bitmap.getWidth() * bitmap.getHeight());
while (ptr0 < ptr0End) {
data[0][(*ptr0 + *ptr1 + *ptr2) / (3 * factor)]++;
data[1][*ptr0 / factor]++; ptr0 += 4;
data[2][*ptr1 / factor]++; ptr1 += 4;
data[3][*ptr2 / factor]++; ptr2 += 4;
data[4][*ptr3 / factor]++; ptr3 += 4;
}
return 0;
}
template<typename TPIXEL , typename TCHANNEL >

unsigned* app::THistogram< TPIXEL, TCHANNEL >::getChannel | ( | unsigned | index | ) |
| inline

Vrátí ukazatel na pole s histogramem o daném indexu.

Vrátí ukazatel na pole s histogramem o daném indexu, pokud nastal problém při výpočtu histogramu, nebo je požadován vyšší index, vrátí NULL.

Parameters

  index | Index histogramu.

Returns
  Ukazatel na hodnoty nebo NULL.

Definition at line 104 of file THistogram.hpp.

{
if (calcErr || index > maxIndex) { return NULL; }
return data[index];
}

## Member Data Documentation

template<typename TPIXEL , typename TCHANNEL >

int app::THistogram< TPIXEL, TCHANNEL >::calcErr
| protected

Kód chyby, který vrátil výpočet hostogramu.

Definition at line 42 of file THistogram.hpp.

template<typename TPIXEL , typename TCHANNEL >

const unsigned THistogram< TPIXEL, TCHANNEL >::chCount = sizeof(TPIXEL) / sizeof(TCHANNEL)
| static

Počet kanálů bitmapy.

Definition at line 66 of file THistogram.hpp.

template<typename TPIXEL , typename TCHANNEL >

unsigned* app::THistogram< TPIXEL, TCHANNEL >::data[5]
| protected

Součty jednotlivých kanálů.

Součty jednotlivých kanálů. Jednotlivé pozice jsou obsazeny takto:

- 0 - (r + g + b) / 3 nebo kanál jednokanálové bitmapy.
- 1 - r
- 2 - g
- 3 - b
- 4 - a

Definition at line 41 of file THistogram.hpp.

template<typename TPIXEL , typename TCHANNEL >

const unsigned THistogram< TPIXEL, TCHANNEL >::factor = (maxVal + 1) / valsCount
| static

Přepočtová konstanta pro transformaci potu hodnot kanálu na počet sloupců histogramu.

Definition at line 65 of file THistogram.hpp.

template<typename TPIXEL , typename TCHANNEL >

unsigned app::THistogram< TPIXEL, TCHANNEL >::maxIndex
| protected

Maximální index, který lze brát. Pro jednokanálovou bitmapu 0, pro 4 kanálovou 4.

Definition at line 43 of file THistogram.hpp.

template<typename TPIXEL , typename TCHANNEL >

const TCHANNEL THistogram< TPIXEL, TCHANNEL >::maxVal = ~0
| static

Maximální hodnota kanálu.

Definition at line 63 of file THistogram.hpp.

template<typename TPIXEL , typename TCHANNEL >

const unsigned THistogram< TPIXEL, TCHANNEL >::valsCount = 128
| static

Počet sloupců histogramu.

Definition at line 64 of file THistogram.hpp.

The documentation for this class was generated from the following files:

- /home/xxx/eclipse_workspaces/app/appcore/jni/app/pointops/THistogram.hpp
- /home/xxx/eclipse_workspaces/app/appcore/jni/app/pointops/THistogram.cpp