Ciao vorrei sapere come devo fare per sostituire i valori dei pixel RGB di una immagine in valori che si trovano tramite una matrice...

Finora sono arrivato qui (devo usare per forza le opencv):


codice:
#include <highgui.h> 
#include <cxcore.h> 
#include <cv.h> 
#include <iostream> 
#include <string.h> 
#include <stdio.h> 
int main (void) 
{ 
unsigned char Red, Green, Blue; 
int CounterX, CounterY; 
IplImage *src; 
char name [255]="c:\\lena.png"; //questa l'immagine che carico 
cvNamedWindow("window src",CV_WINDOW_AUTOSIZE); 
src=cvLoadImage(name,1); 
for (CounterY=0; CounterY<src->height; CounterY++) 
{ 
for (CounterX=0; CounterX<src->width; CounterX++) 
{ 
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);
 } 
cvShowImage("window src", src); 
 cvWaitKey (0);
 cvDestroyWindow("window src"); 
cvReleaseImage (&src); }
La domanda è dove mettere la mia matrice e in che maniera?

In realtà mi dovrebbe venire fuori un'immagine con delle nuove variabili per ogni pixel...sto procedendo bene?