summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/ovision/img.h
blob: dde68d2d00ce96264577ae40b2a295dc59215789 (plain)
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
#ifndef img_h
#define img_h
// img.h - classe Image
// nono - Programme du robot Efrei Robotique I1-I2 2004
// Copyright (C) 2004 Olivier Gaillard
#include "image/image_loader.h"
#include "oconfig.h"

/// Chargement des images, conversion en YUV, HSI, detection des contours, 
/// transformation d'une image segmentee en RGB, ecriture de l'image sur le disque
class Img
{
    /// numero IL de l'image
    unsigned int ImgId; 

  public:
    /// tableau avec couleurs segmentees
    unsigned char *tabSegm;

    /// dimension de l'image
    int height, width;

    /// nombres de pixels de l'image
    unsigned long nbPixels;

    /// tableau des couleurs RGB bruts
    unsigned char *tabData; 

    /// mode de l'espace de couleurs
    bool yuv,hsi; 

    /// Constructeur
    Img (void); 

    /// Destructeur
    virtual ~Img (void); 

    /// Lis une image en utilisant le peripherique adequate (fichier, cam usb, cam) 
#if 0
    virtual int ReadRaw(char *sourcePath) = 0;

    /// Ecriture de l'image sur le disque
    virtual void WriteSegm(char *filename, unsigned char *tabSegm) = 0;
    virtual void WriteSegm(char *filename) = 0;
#endif
    
    /// Conversion en YUV
    void RGBtoYUV();
    
    /// Conversion en HSI
    void RGBtoHSI();

    /// Ecrite des valeurs RGB dans un fichier
    void WriteRGB(char *filename);

    /// Lit une image depuis un ImageLoader.
    void load (ImageLoader &loader);

  protected:
};



#endif // img_h