void QgsMultiBandColorRendererWidget::setFromRenderer( const QgsRasterRenderer *r ) { const QgsMultiBandColorRenderer *mbcr = dynamic_cast<const QgsMultiBandColorRenderer *>( r ); if ( mbcr ) { mRedBandComboBox->setBand( mbcr->redBand() ); mGreenBandComboBox->setBand( mbcr->greenBand() ); mBlueBandComboBox->setBand( mbcr->blueBand() ); mDisableMinMaxWidgetRefresh = true; setMinMaxValue( mbcr->redContrastEnhancement(), mRedMinLineEdit, mRedMaxLineEdit ); setMinMaxValue( mbcr->greenContrastEnhancement(), mGreenMinLineEdit, mGreenMaxLineEdit ); setMinMaxValue( mbcr->blueContrastEnhancement(), mBlueMinLineEdit, mBlueMaxLineEdit ); mDisableMinMaxWidgetRefresh = false; mMinMaxWidget->setFromMinMaxOrigin( mbcr->minMaxOrigin() ); } else { if ( mRedBandComboBox->findText( tr( "Red" ) ) > -1 && mRedBandComboBox->findText( tr( "Green" ) ) > -1 && mRedBandComboBox->findText( tr( "Blue" ) ) > -1 ) { mRedBandComboBox->setCurrentIndex( mRedBandComboBox->findText( tr( "Red" ) ) ); mGreenBandComboBox->setCurrentIndex( mGreenBandComboBox->findText( tr( "Green" ) ) ); mBlueBandComboBox->setCurrentIndex( mBlueBandComboBox->findText( tr( "Blue" ) ) ); } else { mRedBandComboBox->setCurrentIndex( mRedBandComboBox->count() > 1 ? 1 : 0 ); mGreenBandComboBox->setCurrentIndex( mRedBandComboBox->count() > 2 ? 2 : 0 ); mBlueBandComboBox->setCurrentIndex( mRedBandComboBox->count() > 3 ? 3 : 0 ); } } }
void TabDialog::hellreset() { selImage->brightness=0; selImage->contrast=0; sliderwechsel(); setMinMaxValue(); emit newColtype(); }
void TabDialog::apply() { // min und max in gray value table if (strlen(VNewString(tablemin->text()))>0 && strlen(VNewString(tablemax->text()))>0) { float ymax = (float)selImage->maxwert; float ymin = (float)selImage->minwert; float ymaxmin = (float)(ymax - ymin); float min1 = atof(strtok(VNewString(tablemin->text())," ")); float max1 = atof(strtok(VNewString(tablemax->text())," ")); if (min1 > max1) { tablemin->setText(tr("%1").arg(selImage->minwert1)); tablemax->setText(tr("%1").arg(selImage->maxwert1)); } else { selImage->anamean = min1; selImage->anaalpha = (float)255.0/(max1 - selImage->anamean); int newbrig = (int)rint(stretch*(ymin - selImage->anamean + (ymaxmin - 255.0/selImage->anaalpha)/2.0)/ymaxmin); int newhell = (int)rint(log(selImage->anaalpha*ymaxmin/255.0)/log(stretchfact)); if ((newbrig>=-100 && newbrig<=100) && (newhell>=-100 && newhell<=100)) { brig->setValue(newbrig); hell->setValue(newhell); } else { brig->setEnabled( FALSE ); hell->setEnabled( FALSE ); lbrigbr->setEnabled( FALSE ); lwhit->setEnabled( FALSE ); } setMinMaxValue(); emit newColtype(); } } else { tablemin->setText(tr("%1").arg(selImage->minwert1)); tablemax->setText(tr("%1").arg(selImage->maxwert1)); } emit newColtype(); }
void QgsMultiBandColorRendererWidget::setFromRenderer( const QgsRasterRenderer* r ) { const QgsMultiBandColorRenderer* mbcr = dynamic_cast<const QgsMultiBandColorRenderer*>( r ); if ( mbcr ) { mRedBandComboBox->setCurrentIndex( mRedBandComboBox->findData( mbcr->redBand() ) ); mGreenBandComboBox->setCurrentIndex( mGreenBandComboBox->findData( mbcr->greenBand() ) ); mBlueBandComboBox->setCurrentIndex( mBlueBandComboBox->findData( mbcr->blueBand() ) ); setMinMaxValue( mbcr->redContrastEnhancement(), mRedMinLineEdit, mRedMaxLineEdit ); setMinMaxValue( mbcr->greenContrastEnhancement(), mGreenMinLineEdit, mGreenMaxLineEdit ); setMinMaxValue( mbcr->blueContrastEnhancement(), mBlueMinLineEdit, mBlueMaxLineEdit ); } else { mRedBandComboBox->setCurrentIndex( mRedBandComboBox->findText( tr( "Red" ) ) ); mGreenBandComboBox->setCurrentIndex( mGreenBandComboBox->findText( tr( "Green" ) ) ); mBlueBandComboBox->setCurrentIndex( mBlueBandComboBox->findText( tr( "Blue" ) ) ); } }
void TabDialog::helligkeit(int mean) { selImage->brightness=mean; float ymax = (float)selImage->maxwert; float ymin = (float)selImage->minwert; float ymaxmin = (float)(ymax - ymin); shift = (float)mean * ymaxmin/stretch; selImage->anaalpha = factor * 255.0 / ymaxmin; selImage->anamean = (float)ymin - shift + (ymaxmin - 255.0/selImage->anaalpha)/2.0 ; setMinMaxValue(); emit newColtype(); }
void TabDialog::contrastl(int alpha) { selImage->contrast=alpha; float ymax = (float)selImage->maxwert; float ymin = (float)selImage->minwert; float ymaxmin = (float)(ymax - ymin); factor = (float)pow(stretchfact,(double)alpha); selImage->anaalpha = factor * 255.0 / ymaxmin; selImage->anamean = (float)ymin - shift + (ymaxmin - 255.0/selImage->anaalpha)/2.0 ; setMinMaxValue(); emit newColtype(); }
void TabDialog::setupTab5() { QVBox *tab5 = new QVBox( this ); tab5->setMargin( 5 ); QButtonGroup *cont; cont = new QButtonGroup( 1, QGroupBox::Horizontal, "contrast / brightness", tab5 ); brig = new QSlider( cont, "mean" ); brig->setOrientation ( Horizontal ); brig->setValue ( 0 ); brig->setRange( -100, 100 ); brig->setTickInterval ( 100 ); brig->setTickmarks(QSlider::TickSetting(3)); QObject::connect( brig, SIGNAL(valueChanged(int)), this, SLOT( helligkeit(int) ) ); lbrigbr = new QLabel( "brightness", cont ); hell = new QSlider( cont, "alpha" ); hell->setOrientation ( Horizontal ); hell->setValue ( 0 ); hell->setRange( -100, 100 ); hell->setTickInterval ( 100 ); hell->setTickmarks(QSlider::TickSetting(3)); lwhit = new QLabel( "contrast", cont ); QObject::connect( hell, SIGNAL(valueChanged(int)), this, SLOT( contrastl(int) ) ); QButtonGroup *table_minmax = new QButtonGroup( 2, QGroupBox::Horizontal, "Gray value table", cont ); QButtonGroup *table_min = new QButtonGroup( 1, QGroupBox::Horizontal, "minimum", table_minmax ); tablemin = new QLineEdit( tr("%1").arg(selImage->minwert1), table_min ); tablemin->setFocus(); QButtonGroup *table_max = new QButtonGroup( 1, QGroupBox::Horizontal, "maximum", table_minmax ); tablemax = new QLineEdit( tr("%1").arg(selImage->maxwert1), table_max ); tablemax->setFocus(); setMinMaxValue(); Reset = new QPushButton ( "Reset", cont ); if (selImage->pixel_repn == VBitRepn) { Reset->setEnabled( FALSE ); lbrigbr->setEnabled( FALSE ); lwhit->setEnabled( FALSE ); brig->setEnabled( FALSE ); hell->setEnabled( FALSE ); } connect( Reset, SIGNAL(clicked()), SLOT(hellreset()) ); addTab( tab5, "Contrast" ); }