** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: views.cpp,v 1.40 2000/12/29 15:45:06 kevin Exp $
+** $Id: views.cpp,v 1.41 2000/12/29 19:30:08 kevin Exp $
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License (version 2) as
EVT_MENU(IFMENU_PROCESS_SQRT, ImageFileView::OnSquareRoot)\r
EVT_MENU(IFMENU_PROCESS_LOG, ImageFileView::OnLog)\r
EVT_MENU(IFMENU_PROCESS_EXP, ImageFileView::OnExp)\r
-EVT_MENU(IFMENU_PROCESS_FFT_MAGNITUDE, ImageFileView::OnFFTMagnitude)\r
-EVT_MENU(IFMENU_PROCESS_FFT_PHASE, ImageFileView::OnFFTPhase)\r
+EVT_MENU(IFMENU_PROCESS_FOURIER, ImageFileView::OnFourier)\r
+EVT_MENU(IFMENU_PROCESS_INVERSE_FOURIER, ImageFileView::OnInverseFourier)\r
+EVT_MENU(IFMENU_PROCESS_MAGNITUDE, ImageFileView::OnMagnitude)\r
+EVT_MENU(IFMENU_PROCESS_PHASE, ImageFileView::OnPhase)\r
EVT_MENU(IFMENU_PLOT_ROW, ImageFileView::OnPlotRow)\r
EVT_MENU(IFMENU_PLOT_COL, ImageFileView::OnPlotCol)\r
END_EVENT_TABLE()
void
ImageFileView::OnProperties (wxCommandEvent& event)
{
- double min, max, mean, mode, median, stddev;
const ImageFile& rIF = GetDocument()->getImageFile();
if (rIF.nx() == 0 || rIF.ny() == 0)
*theApp->getLog() << "Properties: empty imagefile\n";
else {
const std::string& rFilename = rIF.getFilename();
- rIF.statistics (min, max, mean, mode, median, stddev);
std::ostringstream os;
- os << "file: " << rFilename << "\nmin: "<<min<<"\nmax: "<<max<<"\nmean: "<<mean<<"\nmedian: "<<median<<"\nmode: "<<mode<<"\nstddev: "<<stddev << "\n";
+ double min, max, mean, mode, median, stddev;\r
+ rIF.statistics (min, max, mean, mode, median, stddev);\r
+ os << "Filename: " << rFilename << "\n";\r
+ os << "Size: (" << rIF.nx() << "," << rIF.ny() << ")\n";\r
+ os << "Data type: ";\r
+ if (rIF.dataType() == Array2dFile::DATA_TYPE_COMPLEX)\r
+ os << "Complex\n";\r
+ else\r
+ os << "Real\n";\r
+ os << "\nMinimum: "<<min<<"\nMaximum: "<<max<<"\nMean: "<<mean<<"\nMedian: "<<median<<"\nMode: "<<mode<<"\nStandard Deviation: "<<stddev << "\n";
+ if (rIF.dataType() == Array2dFile::DATA_TYPE_COMPLEX) {\r
+ rIF.statistics (rIF.getImaginaryArray(), min, max, mean, mode, median, stddev);\r
+ os << "\nImaginary: min: "<<min<<"\nmax: "<<max<<"\nmean: "<<mean<<"\nmedian: "<<median<<"\nmode: "<<mode<<"\nstddev: "<<stddev << "\n";\r
+ }\r
*theApp->getLog() << os.str().c_str();
wxMessageDialog dialogMsg (m_frame, os.str().c_str(), "Imagefile Properties", wxOK | wxICON_INFORMATION);
dialogMsg.ShowModal();
}\r
\r
void\r
-ImageFileView::OnFFTMagnitude (wxCommandEvent& event)\r
+ImageFileView::OnFourier (wxCommandEvent& event)\r
{\r
ImageFile& rIF = GetDocument()->getImageFile();\r
- rIF.FFTMagnitude (rIF);\r
+ rIF.fourier (rIF);\r
+ m_bMinSpecified = false;\r
+ m_bMaxSpecified = false;\r
+ if (theApp->getSetModifyNewDocs())\r
+ GetDocument()->Modify(TRUE);\r
+ GetDocument()->UpdateAllViews(this);\r
+}\r
+\r
+void\r
+ImageFileView::OnInverseFourier (wxCommandEvent& event)\r
+{\r
+ ImageFile& rIF = GetDocument()->getImageFile();\r
+ rIF.inverseFourier (rIF);\r
+ m_bMinSpecified = false;\r
+ m_bMaxSpecified = false;\r
if (theApp->getSetModifyNewDocs())\r
GetDocument()->Modify(TRUE);\r
GetDocument()->UpdateAllViews(this);\r
}\r
\r
void\r
-ImageFileView::OnFFTPhase (wxCommandEvent& event)\r
+ImageFileView::OnMagnitude (wxCommandEvent& event)\r
{\r
ImageFile& rIF = GetDocument()->getImageFile();\r
- rIF.FFTPhase (rIF);\r
+ rIF.magnitude (rIF);\r
+ m_bMinSpecified = false;\r
+ m_bMaxSpecified = false;\r
+ if (theApp->getSetModifyNewDocs())\r
+ GetDocument()->Modify(TRUE);\r
+ GetDocument()->UpdateAllViews(this);\r
+}\r
+\r
+void\r
+ImageFileView::OnPhase (wxCommandEvent& event)\r
+{\r
+ ImageFile& rIF = GetDocument()->getImageFile();\r
+ rIF.phase (rIF);\r
+ m_bMinSpecified = false;\r
+ m_bMaxSpecified = false;\r
if (theApp->getSetModifyNewDocs())\r
GetDocument()->Modify(TRUE);\r
GetDocument()->UpdateAllViews(this);\r
process_menu->Append (IFMENU_PROCESS_SQRT, "Square &Root");\r
process_menu->Append (IFMENU_PROCESS_LOG, "&Log");\r
process_menu->Append (IFMENU_PROCESS_EXP, "&Exp");\r
- process_menu->Append (IFMENU_PROCESS_FFT_MAGNITUDE, "&FFT Magnitude");\r
- process_menu->Append (IFMENU_PROCESS_FFT_PHASE, "FFT &Phase");\r
+ process_menu->AppendSeparator();\r
+ process_menu->Append (IFMENU_PROCESS_FOURIER, "&Fourier");\r
+ process_menu->Append (IFMENU_PROCESS_INVERSE_FOURIER, "&Inverse Fourier");\r
+ process_menu->Append (IFMENU_PROCESS_MAGNITUDE, "&Magnitude");\r
+ process_menu->Append (IFMENU_PROCESS_PHASE, "&Phase");\r
\r
wxMenu *plot_menu = new wxMenu;\r
plot_menu->Append (IFMENU_PLOT_ROW, "Plot &Row");\r