Changer les paramètres HSV des pixels d'une image

yac_yac Messages postés 2 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 27 juillet 2005 - 26 juil. 2005 à 15:51
yac_yac Messages postés 2 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 27 juillet 2005 - 26 juil. 2005 à 15:51
Bonjour,
Voilà , je développe avec une interface delphi qui utilise une dll en C faisant appel à la bibliothèque OpenCV de traitement d'images.

Quelqu'un peut me dire comment atteindre chaque pixel d'une image pour faire varier un des paramètres HSV ???

Suit ce que j'ai essayé de faire --> j'obtiens des résultats faux...


void cvModifImgHLS(
char *p_imgpath,
char *p_imgpathHLS,
int p_offsetH,
int p_offsetS,
int p_offsetV)


{



int i, j;
//compteurs pour balayages des pixels dans boucle


IplImage *cvImg;
//déclaration de l'img couleur RGB appelée initialement


IplImage *cvImgHLS;
//déclaration de l'img couleur HSV modifiée


cvImg = cvLoadImage( p_imgpath, 1);
//chargement de l'image couleur RGB dans cvImg


cvImgHLS = cvCreateImage(cvSize(768,576),
/*IPL_DEPTH_8U*/8, 3 );
//création de l'espace pour contenir l'image HSV modifiée


cvCvtColor( cvImg, cvImgHLS, CV_RGB2HSV );
//conversion RGB -> HLS


/*Modification des paramètres HLS (attribution des offset initialisés par les Trackbars de l'interface Delphi)*/



for(i=0; i<768; i++)


{



for(j=0; j<576; j++)


{



/* pour la composante H */


((uchar*)(cvImgHLS->imageData + cvImgHLS->widthStep*j))[i*3] =


((uchar*)(cvImg->imageData + cvImg->widthStep*j))[i*3] + p_offsetH;



/* pour la composante S */


((uchar*)(cvImgHLS->imageData + cvImgHLS->widthStep*j))[i*3+1] =


((uchar*)(cvImg->imageData + cvImg->widthStep*j))[i*3+1] + p_offsetS;



/* pour la composante V */


((uchar*)(cvImgHLS->imageData + cvImgHLS->widthStep*j))[i*3+2] =


((uchar*)(cvImg->imageData + cvImg->widthStep*j))[i*3+2] + p_offsetV;


}



/*Sauvegarde de l'image modifiée */


cvSaveImage(p_imgpathHLS,cvImgHLS);


}

... développeur d'occasion's' ...