summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/ovision/convertImg.cc
diff options
context:
space:
mode:
authorgaillaro2004-08-08 11:29:43 +0000
committergaillaro2004-08-08 11:29:43 +0000
commitc2fc583752a443cb6adc8b918d1c3f442137885a (patch)
tree3a981d5e5b88c1adb68f484e0d38c424b321e1e8 /2004/i/nono/src/ovision/convertImg.cc
parent71416a4de8daaf0d36bce016c5f34b3fc6576ea5 (diff)
Changement de la prise en charge des differents mode de couleur
Diffstat (limited to '2004/i/nono/src/ovision/convertImg.cc')
-rw-r--r--2004/i/nono/src/ovision/convertImg.cc47
1 files changed, 43 insertions, 4 deletions
diff --git a/2004/i/nono/src/ovision/convertImg.cc b/2004/i/nono/src/ovision/convertImg.cc
index 111e4a8..d5c6f21 100644
--- a/2004/i/nono/src/ovision/convertImg.cc
+++ b/2004/i/nono/src/ovision/convertImg.cc
@@ -16,8 +16,6 @@ ConvertImg::RGBtoYUV (Img &img)
{
unsigned char r,g,b;
- img.yuv = true;
-
// Parcours du tableau et conversion des valeurs RGB en YUV
for (unsigned long i=0; i<img.nbPixels; i++) {
r = img.tabData[i*3];
@@ -28,6 +26,8 @@ ConvertImg::RGBtoYUV (Img &img)
img.tabData[i*3+1] = (unsigned char)(0-0.147*r - 0.289*g + 0.437*b + 0.5); // U
img.tabData[i*3+2] = (unsigned char)(00.615*r - 0.515*g - 0.100*b + 0.5); // V
}
+
+ img.colorMode = YUV;
}
/// Convertit un tableau de donnees RGB en YUV
@@ -36,7 +36,6 @@ ConvertImg::RGBtoHSI (Img &img)
{
unsigned char r,g,b;
- img.hsi = true;
// Parcours du tableau et conversion des valeurs RGB en HSI
for (unsigned long i=0; i<img.nbPixels; i++) {
@@ -48,6 +47,8 @@ ConvertImg::RGBtoHSI (Img &img)
img.tabData[i*3+1] = (unsigned char)(1-min(min(r,g),b)); // S
img.tabData[i*3+2] = (unsigned char)(0.33f*(r+g+b)); // I
}
+
+ img.colorMode = HSI;
}
@@ -57,7 +58,6 @@ ConvertImg::YUVtoRGB (Img &img)
{
unsigned char y,u,v;
- img.yuv = false;
// Parcours du tableau et conversion des valeurs YUV en RGB
for (unsigned long i=0; i<img.nbPixels; i++) {
@@ -69,5 +69,44 @@ ConvertImg::YUVtoRGB (Img &img)
img.tabData[i*3+1] = (unsigned char)(y + ((0.3455 * (u - 128)) - (0.7169 * (v - 128))));
img.tabData[i*3+2] = (unsigned char)(y + (1.7790 * (u - 128)));
}
+
+ img.colorMode = RGB;
+}
+
+/// Convertit une image de BGR en RGB
+void
+ConvertImg::BGRtoRGB (Img &img)
+{
+ unsigned char b;
+ unsigned char *tab;
+
+ tab = img.tabData;
+
+ // Parcours du tableau et conversion des valeurs BGR en RGB
+ for (unsigned long i=0; i<img.nbPixels; i++)
+ {
+ b = *tab;
+ *tab = *(++(++tab));
+ *tab = b;
+ ++tab;
+ }
+
+ img.colorMode = RGB;
}
+
+/// Convertit une image en RGB
+void
+ConvertImg::ConvertToRGB (Img &img)
+{
+ switch (img.colorMode)
+ {
+ case BGR:
+ BGRtoRGB (img);
+ break;
+
+ case YUV:
+ YUVtoRGB (img);
+ break;
+ }
+}