Ich versuche, die Helligkeit des geladenen Bildes zu erhöhen img
Um die Pixel zu durchlaufen, verwende ich jedoch eine kleinere Matrix [die ich später für die Anwendung der Gaußschen Unschärfe verwenden werde]. Hier ist meine Funktion:
void Dobright(cv::Mat &in,IplImage * img)
{
uchar* temp_ptr ;
for( int row = 0; row < in.rows; row++)
{
for ( int col = 0; col < in.cols; col++)
{
CvPoint pt = {row,col};
temp_ptr = &((uchar*)(img->imageData + img->widthStep*pt.y))[pt.x*3];
temp_ptr[0] += 100;
temp_ptr[1] += 100;
temp_ptr[2] += 100;
}
}
}
Wenn das Originalbild jedoch war:
Ich erhalte das aufgehellte Bild als:
Wie Sie sehen können, sind einige Teile heller als die anderen und da Zeilen und Spalten nicht gleich sind, wird nicht auf die Pixel des gesamten Bildes zugegriffen. Wie kann man dieses Problem lösen?