Hauptseite | Liste aller Namensbereiche | Klassenhierarchie | Alphabetische Liste | Übersicht | Auflistung der Dateien | Elemente eines Namensbereiches | Datenstruktur-Elemente | Datei-Elemente

gray.h

gehe zur Dokumentation dieser Datei
00001 #ifndef GRAYMODULE_H
00002 #define GRAYMODULE_H
00003 
00004 #include "imagesource.h"
00005 extern "C"
00006 {
00007   #include <opencv/highgui.h>
00008 }
00009 
00010 namespace seemicro
00011 {
00012 
00019 struct GrayModule : public ImageSource
00020 {
00021   ImageSource& src;
00022 
00023   GrayModule(ImageSource& As) : src(As)
00024   {
00025     img = cvCreateImage(cvSize(src.img->width, src.img->height),
00026       IPL_DEPTH_8U, 1);
00027   }
00028 
00029   ~GrayModule()
00030   {
00031     cvReleaseImage(&img);
00032   }
00033 
00034   void processFrame(myrect *ROI=NULL)
00035   {
00036     myrect ROI2;
00037     if(!ROI) ROI2 = myrect(0, 0, src.img->width, src.img->height);
00038     else ROI2 = *ROI;
00039 
00040     // Eingabeausschnitt
00041     CvMat ausschnitt1;
00042     cvGetSubRect(src.img, &ausschnitt1, ROI2);
00043 
00044     // Zielausschnitt
00045     CvMat ausschnitt2;
00046     cvGetSubRect(img, &ausschnitt2, ROI2);
00047 
00048     if(src.img->nChannels==1)
00049     {
00050       // GrayModule sollte nicht in der Modulliste sein!
00051       cvCopy(src.img, img);
00052       return;
00053     }
00054 
00055     cvConvertImage(&ausschnitt1, &ausschnitt2);
00056 
00057 #ifdef DEBUG
00058     if(DEBUGLEVEL>=3) cerr << "<-GrayModule::processFrame()\n";
00059 #endif
00060   }
00061 
00062   void processKeyFrame(void)
00063   {
00064     processFrame(NULL);
00065   }
00066 
00067 }; // CannyModule
00068 
00069 } // seemicro
00070 
00071 #endif // GRAYMODULE_H
00072 

Erzeugt am Sun Oct 3 12:52:47 2004 für seemicro von doxygen 1.3.2