Пример #1
0
void QmitkImageStatisticsView::OnClipboardHistogramButtonClicked()
{
  if ( m_CurrentStatisticsValid && !( m_SelectedPlanarFigure != NULL))
  {
    const unsigned int t = this->GetRenderWindowPart()->GetTimeNavigationController()->GetTime()->GetPos();

    typedef mitk::ImageStatisticsCalculator::HistogramType HistogramType;
    const HistogramType *histogram = this->m_CalculationThread->GetTimeStepHistogram(t).GetPointer();

    QString clipboard( "Measurement \t Frequency\n" );
    for ( HistogramType::ConstIterator it = histogram->Begin();
        it != histogram->End();
        ++it )
    {
      if( m_Controls->m_HistogramBinSizeSpinbox->value() == 1.0)
      {
        clipboard = clipboard.append( "%L1 \t %L2\n" )
                      .arg( it.GetMeasurementVector()[0], 0, 'f', 0 )
                      .arg( it.GetFrequency() );
      }
      else
      {
        clipboard = clipboard.append( "%L1 \t %L2\n" )
                      .arg( it.GetMeasurementVector()[0], 0, 'f', 2 )
                      .arg( it.GetFrequency() );
      }
    }

    QApplication::clipboard()->setText(
        clipboard, QClipboard::Clipboard );
  }
  // If a (non-closed) PlanarFigure is selected, display a line profile widget
  else if ( m_CurrentStatisticsValid && (m_SelectedPlanarFigure != NULL ))
  {
    auto intensity = m_Controls->m_JSHistogram->GetFrequency();
    auto pixel = m_Controls->m_JSHistogram->GetMeasurement();
    QString clipboard( "Pixel \t Intensity\n" );
    auto j = pixel.begin();
    for (auto i = intensity.begin(); i < intensity.end(); i++)
    {
      assert(j != pixel.end());
      clipboard = clipboard.append( "%L1 \t %L2\n" )
                        .arg( (*j).toString())
                        .arg( (*i).toString());
      j++;
    }

    QApplication::clipboard()->setText(
        clipboard, QClipboard::Clipboard );
  }
  else
  {
    QApplication::clipboard()->clear();
  }
}
Пример #2
0
void QmitkImageStatisticsView::ClipboardHistogramButtonClicked()
{
  if ( m_CurrentStatisticsValid && (m_CurrentStatisticsCalculator.IsNotNull()) )
  {
    typedef mitk::ImageStatisticsCalculator::HistogramType HistogramType;
    const HistogramType *histogram = m_CurrentStatisticsCalculator->GetHistogram();

    QString clipboard( "Measurement \t Frequency\n" );
    for ( HistogramType::ConstIterator it = histogram->Begin();
          it != histogram->End();
          ++it )
    {
      clipboard = clipboard.append( "%L1 \t %L2\n" )
        .arg( it.GetMeasurementVector()[0], 0, 'f', 2 )
        .arg( it.GetFrequency() );
    }

    QApplication::clipboard()->setText(
      clipboard, QClipboard::Clipboard );
  }
  else
  {
    QApplication::clipboard()->clear();
  }
}
Пример #3
0
float mitk::HistogramGenerator::CalculateMaximumFrequency(const HistogramType* histogram)
{
  HistogramType::ConstIterator itr = histogram->Begin();
  HistogramType::ConstIterator end = histogram->End();

  float maxFreq = 0;
  while( itr != end )
    {
    maxFreq = vnl_math_max(maxFreq,
                           // get rid of ambiguity with type signature
                           // for vnl_math_max
                           static_cast<float>(itr.GetFrequency()));
    ++itr;
    }
  return maxFreq;
};