DerivedUnit.cpp

Go to the documentation of this file.
00001 /*
00002 *       This file contains working unit derived from TSimpleUnit.
00003 *
00004 *       Author:
00005 *                       Tomas Mrkvicka
00006 *                       xmrkvi03@stud.fit.vutbr.cz
00007 *
00008 */
00009 #include <cstdio>
00010 
00011 #include "DerivedUnit.h"
00012 
00013 ////////////////////////////////////////////////////////////////////////////////
00014 ////////////////////////////////////////////////////////////////////////////////
00015 ////////////////////////////////////////////////////////////////////////////////
00016 // TTestUnit
00017 
00018 /** Virtualni destruktor.
00019 */
00020 TTestUnit::~TTestUnit(void)
00021 {
00022 }
00023 
00024 /** Metoda pro zpracovani snimku.
00025 *
00026 *       \param  frame   [in] nove prichozi snimek zaslany jednotkou TSimpleUnit.
00027 */
00028 void TTestUnit::ProcessFrame( const TFrame * frame )
00029 {
00030         //ukazkova uloha - vypocet prumerne hodnoty intenzity v monochromatickem obraze
00031 
00032         //informace o snimku
00033         const DWORD f_id                                =       frame->GetTimestamp().GetID();
00034         const DWORD f_width                             =       frame->GetImageSet()->GetGray()->GetWidth();
00035         const DWORD f_height                    =       frame->GetImageSet()->GetGray()->GetHeight();
00036 
00037         //data snimku v odstinech sedi
00038         const DWORD f_size                              =       frame->GetImageSet()->GetGray()->GetDataSize();
00039         const unsigned char * f_data    =       (unsigned char *)frame->GetImageSet()->GetGray()->GetData();
00040 
00041         //soucet intenzit
00042         int sum = 0;
00043         for ( DWORD i = 0 ; i < f_size ; i++ )
00044         {
00045                 sum += f_data[i];
00046         }
00047         //vysledna intenzita
00048         sum /= f_size;
00049 
00050         //ZAPIS VYSLEDKU
00051         //ziskame objekt pro ulozeni vysledku
00052         TUnitRetType_integer_implemented * res = this->GetObject();
00053         
00054         //nastaveni hodnoty vysledku do objektu pro ulozeni vysledku
00055         res->SetValue( sum );
00056 
00057         //ulozime vysledek pro tento snimek - je identifikovat jednoznacnym ID
00058         this->AddResult( frame->GetTimestamp().GetID(), res );
00059 }
00060 
00061 // TTestUnit
00062 ////////////////////////////////////////////////////////////////////////////////
00063 ////////////////////////////////////////////////////////////////////////////////
00064 ////////////////////////////////////////////////////////////////////////////////

Generated on Sat Nov 17 16:23:26 2007 for Image Processing Pipeline by  doxygen 1.4.6-NO