Conversion d'une image 8 bits OpenCV BGR en CIE L * a * b *

Je suis en train de convertir une donnée Mat représentant un RVB image avec 8 bits de profondeur de Laboratoire à l'aide de la fonction fournie dans la documentation:

cvtColor(source, destination, <conversion code>);

J'ai essayé de conversion des codes:

CV_RGB2Lab
CV_BGR2Lab
CV_LBGR2Lab

J'ai reçu bizarre résultats à chaque fois, avec un "L" valeur de plus de 100 pour certains échantillons, littéralement <107, 125, 130>.

Je suis aussi à l'aide de Photoshop pour vérifier les résultats - mais étant donné que la 107 est au-delà de la plage 0 ≤ L ≤ 100, je ne peux pas comprendre ce que mon erreur est.

Mise à jour:
Je vais poster mes résultats globaux ici:
Donné une image (Mat) représenté par 8-bit BGR, l'image peut être converti par le texte suivant:

cvtColor(source, destination, CV_BGR2Lab);

Les valeurs des pixels sont accessibles de la manière suivante:

int step = destination.step;
int channels = destination.channels();
for (int i = 0; i < destination.rows(); i++) {
    for (int j = 0; j < destination.cols(); j++) {
        Point3_<uchar> pixelData;
        //L*: 0-255 (elsewhere is represented by 0 to 100)
        pixelData.x = destination.data[step*i + channels*j + 0];
        //a*: 0-255 (elsewhere is represented by -127 to 127)
        pixelData.y = destination.data[step*i + channels*j + 1];
        //b*: 0-255 (elsewhere is represented by -127 to 127)
        pixelData.z = destination.data[step*i + channels*j + 2];
    }
}

source d'informationauteur JT Cho