in Qgis i set Min/Max values of rasterband, to apply the chnage to the image channels i developpe this code in c++ but no thing has changed in image:
GDALDataset *ptRasterDataSet;
ptRasterDataSet = ( GDALDataset * ) GDALOpen ( m_ptRasterLayer->source ().toStdString
).c_str (), GA_Update );
for ( int iIterator = 1; iIterator <= ptRasterDataSet->GetRasterCount (); ++ iIterator )
{
GDALRasterBand *ptRasterBand = ptRasterDataSet->GetRasterBand ( iIterator );
ptRasterBand->SetStatistics ( m_ptRasterLayer->minimumValue ( iIterator ), m_ptRasterLayer->maximumValue ( iIterator ), dMean, dStdDev ) ;
}
dMean is mean value and dStdDev is standard deviation calculated using histogram values after change