Ragazzi sono ancora qui bloccato a fare un array decente...

Ho sviluppato questo finora:
rispetto a prima ho messo una struct colorrgb per incamerare i futuri valori dei pixel
Please aiutatemi...non ne esco più da questa assurdità




codice:
struct colorRGB 
{
 float red; 
float green;
 float blue; 
};
 void PixelFeature::RgbtoYCrCb 
{ 
unsigned char Red, Green, Blue; 
int CounterX, CounterY, i; 
IplImage *src; 
char name [255]="c:\\lena.png"; 
cvNamedWindow("window src",CV_WINDOW_AUTOSIZE); 
Red = *((unsigned char*)(src->imageData + src->widthStep*CounterY) + 3*CounterX + 2); Green = *((unsigned char*)(src->imageData + src->widthStep*CounterY) + 3*CounterX + 1); 
Blue = *((unsigned char*)(src->imageData + src->widthStep*CounterY) + 3*CounterX + 0); 
for 
(int i=0; i<(src->height*src->width)-1; i++) 
{ 
colorRGB element; 
element.red = Red;  
element.green = Green; 
element.blue = Blue; 
image.push_back(element); 
}

ora per sapere se i valori sono stati copiati dentro l'array come devo fare? e per poterli cambiare di valore?
Vi prego datemi un consiglio su come devo agire...mi sto impantanando su una cosa assurda a mio avviso