summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/ovision/img.cc
diff options
context:
space:
mode:
Diffstat (limited to '2004/i/nono/src/ovision/img.cc')
-rw-r--r--2004/i/nono/src/ovision/img.cc22
1 files changed, 17 insertions, 5 deletions
diff --git a/2004/i/nono/src/ovision/img.cc b/2004/i/nono/src/ovision/img.cc
index 6288404..60469ad 100644
--- a/2004/i/nono/src/ovision/img.cc
+++ b/2004/i/nono/src/ovision/img.cc
@@ -7,6 +7,7 @@
#include "img.h"
#include <iostream>
#include <stdlib.h>
+#include <stdio.h>
#include <math.h>
using namespace std;
/// Renvoie le minimum entre 2 nombres
@@ -21,15 +22,14 @@ Img::Img (void) {
tabData = NULL;
tabSegm = NULL;
- yuv = hsi = 0;
+ yuv = hsi = false;
}
/// Destructeur
Img::~Img (void) {
//free tabData
- if (tabData) delete [] tabData;
-
+ delete [] tabData;
}
@@ -38,7 +38,7 @@ Img::~Img (void) {
void Img::RGBtoYUV() {
unsigned char r,g,b;
- yuv = 1;
+ yuv = true;
// Parcours du tableau et conversion des valeurs RBG en YUV
for (unsigned long i=0; i<nbPixels; i++) {
@@ -56,7 +56,7 @@ void Img::RGBtoYUV() {
void Img::RGBtoHSI() {
unsigned char r,g,b;
- hsi = 1;
+ hsi = true;
// Parcours du tableau et conversion des valeurs RBG en HSI
for (unsigned long i=0; i<nbPixels; i++) {
@@ -81,3 +81,15 @@ void Img::WriteRGB(char *filename) {
fclose(file);
}
+/// Lit une image depuis un ImageLoader.
+void
+Img::load (ImageLoader &loader)
+{
+ delete[] tabData;
+ loader.getSize (width, height);
+ nbPixels = width * height;
+ tabData = new unsigned char[loader.getBufSize ()];
+ loader.read (tabData, loader.getBufSize ());
+ yuv = loader.getColorSpace () == ImageLoader::yuv;
+}
+