2013-01-07 3 views
0

J'essaie d'obtenir la valeur Y du pixel à partir d'une image en mode couleur Ycbcr. ici ce que j'écrit:obtention de la valeur Y [Ycbcr] d'un pixel dans opencv

cv::Mat frame, Ycbcrframe, helpframe; 
........ 
cvtColor(frame,yCbCrFrame,CV_RGB2YCrCb); // converting to Ycbcr 
Vec3b intensity =yCbCrFrame.at<uchar>(YPoint); 
uchar yv = intensity.val[0]; // I thought it's my Y value but its not, coz he gives me I think the Blue channel of RGB color space 

une idée ce que la bonne façon de le faire

Répondre

1

à propos du code ci-dessous?

Vec3f Y_pix = YCbCrframe.at<Vec3f>(rows, cols); 
int pixelval = Y_pix[0]; 

(PS Je nai encore essayé)

+0

le programme se bloque quand utiliser votre code? ça n'a pas marché – Engine

0

Vous devez connaître à la fois la profondeur (format numérique et la précision de l'échantillon de canal), ainsi que le nombre de canaux (généralement 3, mais peut aussi être 1 (monochrome) ou 4 (alpha)), à l'avance.

Pour 3 canaux, entier non signé 8 bits (octet ou uchar a.k.a.) format de pixel, chaque pixel est accessible avec

mat8UC3.at<cv::Vec3b>(pt); 
Questions connexes