From: <gpa...@us...> - 2008-07-18 02:48:59
|
Revision: 3202 http://hugin.svn.sourceforge.net/hugin/?rev=3202&view=rev Author: gpatters1 Date: 2008-07-18 02:48:57 +0000 (Fri, 18 Jul 2008) Log Message: ----------- [2020915] Fix for Undo/Redo of optimize panel. Modified Paths: -------------- hugin/trunk/src/hugin1/PT/PanoCommand.h hugin/trunk/src/hugin1/hugin/OptimizePanel.cpp hugin/trunk/src/hugin1/hugin/OptimizePanel.h hugin/trunk/src/hugin_base/panodata/Panorama.cpp Modified: hugin/trunk/src/hugin1/PT/PanoCommand.h =================================================================== --- hugin/trunk/src/hugin1/PT/PanoCommand.h 2008-07-17 21:30:31 UTC (rev 3201) +++ hugin/trunk/src/hugin1/PT/PanoCommand.h 2008-07-18 02:48:57 UTC (rev 3202) @@ -411,6 +411,33 @@ }; + class UpdateOptimizeVectorCmd : public PanoCommand + { + public: + UpdateOptimizeVectorCmd(Panorama &p, OptimizeVector optvec) + : PanoCommand(p), + m_optvec(optvec) + { }; + + virtual bool processPanorama(Panorama & pano) + { + pano.setOptimizeVector(m_optvec); + pano.changeFinished(); + } + + virtual std::string getName() const + { + return "update optimize vector"; + } + + private: + OptimizeVector m_optvec; + int mode; + + }; + + + //========================================================================= //========================================================================= Modified: hugin/trunk/src/hugin1/hugin/OptimizePanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/OptimizePanel.cpp 2008-07-17 21:30:31 UTC (rev 3201) +++ hugin/trunk/src/hugin1/hugin/OptimizePanel.cpp 2008-07-18 02:48:57 UTC (rev 3202) @@ -50,15 +50,24 @@ BEGIN_EVENT_TABLE(OptimizePanel, wxPanel) EVT_CLOSE(OptimizePanel::OnClose) EVT_BUTTON(XRCID("optimize_frame_optimize"), OptimizePanel::OnOptimizeButton) - EVT_BUTTON(XRCID("opt_yaw_select"), OptimizePanel::OnSelYaw) - EVT_BUTTON(XRCID("opt_yaw_clear"), OptimizePanel::OnDelYaw) - EVT_BUTTON(XRCID("opt_pitch_select"), OptimizePanel::OnSelPitch) - EVT_BUTTON(XRCID("opt_pitch_clear"), OptimizePanel::OnDelPitch) + EVT_BUTTON(XRCID("opt_yaw_select"), OptimizePanel::OnListButton) + EVT_BUTTON(XRCID("opt_yaw_clear"), OptimizePanel::OnListButton) + EVT_BUTTON(XRCID("opt_pitch_select"), OptimizePanel::OnListButton) + EVT_BUTTON(XRCID("opt_pitch_clear"), OptimizePanel::OnListButton) // EVT_BUTTON(XRCID("opt_pitch_equalize"), OptimizePanel::OnEqPitch) - EVT_BUTTON(XRCID("opt_roll_select"), OptimizePanel::OnSelRoll) - EVT_BUTTON(XRCID("opt_roll_clear"), OptimizePanel::OnDelRoll) + EVT_BUTTON(XRCID("opt_roll_select"), OptimizePanel::OnListButton) + EVT_BUTTON(XRCID("opt_roll_clear"), OptimizePanel::OnListButton) EVT_CHOICE(XRCID("optimize_panel_mode"), OptimizePanel::OnChangeMode) // EVT_BUTTON(XRCID("opt_roll_equalize"), OptimizePanel::OnEqRoll) + EVT_CHECKLISTBOX(XRCID("optimizer_yaw_list"), OptimizePanel::OnCheckBoxChanged) + EVT_CHECKLISTBOX(XRCID("optimizer_pitch_list"), OptimizePanel::OnCheckBoxChanged) + EVT_CHECKLISTBOX(XRCID("optimizer_roll_list"), OptimizePanel::OnCheckBoxChanged) + EVT_CHECKLISTBOX(XRCID("optimizer_v_list"), OptimizePanel::OnCheckBoxChanged) + EVT_CHECKLISTBOX(XRCID("optimizer_a_list"), OptimizePanel::OnCheckBoxChanged) + EVT_CHECKLISTBOX(XRCID("optimizer_b_list"), OptimizePanel::OnCheckBoxChanged) + EVT_CHECKLISTBOX(XRCID("optimizer_c_list"), OptimizePanel::OnCheckBoxChanged) + EVT_CHECKLISTBOX(XRCID("optimizer_d_list"), OptimizePanel::OnCheckBoxChanged) + EVT_CHECKLISTBOX(XRCID("optimizer_e_list"), OptimizePanel::OnCheckBoxChanged) END_EVENT_TABLE() // local optimize definition. need to be in sync with the xrc file @@ -162,6 +171,29 @@ DEBUG_TRACE("dtor end"); } +void OptimizePanel::OnListButton(wxCommandEvent & e) +{ + DEBUG_TRACE(""); + if (e.GetId() == XRCID("opt_yaw_select")) { + SetCheckMark(m_yaw_list,true); + } else if (e.GetId() == XRCID("opt_yaw_clear")) { + SetCheckMark(m_yaw_list,false); + } else if (e.GetId() == XRCID("opt_pitch_select")) { + SetCheckMark(m_pitch_list,true); + } else if (e.GetId() == XRCID("opt_pitch_clear")) { + SetCheckMark(m_pitch_list,false); + } else if (e.GetId() == XRCID("opt_roll_select")) { + SetCheckMark(m_roll_list,true); + } else if (e.GetId() == XRCID("opt_roll_clear")) { + SetCheckMark(m_roll_list,false); + } else { + DEBUG_FATAL("An error has occured"); + } + GlobalCmdHist::getInstance().addCommand( + new PT::UpdateOptimizeVectorCmd(*m_pano,getOptimizeVector())); +} + + void OptimizePanel::OnOptimizeButton(wxCommandEvent & e) { DEBUG_TRACE(""); @@ -256,14 +288,18 @@ void OptimizePanel::panoramaChanged(PT::Panorama & pano) { DEBUG_TRACE(""); + setOptimizeVector(pano.getOptimizeVector()); + // update accordingly to the choosen mode -// wxCommandEvent dummy; -// OnChangeMode(dummy); + wxCommandEvent dummy; + dummy.SetInt(m_mode_cb->GetSelection()); + OnChangeMode(dummy); } void OptimizePanel::panoramaImagesChanged(PT::Panorama &pano, const PT::UIntSet & imgNr) { + DEBUG_WARN("OptimizePanel::panoramaImageChanged()"); DEBUG_TRACE("nr of changed images: " << imgNr.size()); if (pano.getNrOfImages() == 0) { @@ -425,53 +461,53 @@ DEBUG_ASSERT((int)optvec.size() == (int)m_yaw_list->GetCount()); for (int i=0; i < (int) m_pano->getNrOfLenses(); i++) { - m_v_list->Check(i,false); - m_a_list->Check(i,false); - m_b_list->Check(i,false); - m_c_list->Check(i,false); - m_d_list->Check(i,false); - m_e_list->Check(i,false); + m_v_list->Check(i,false); + m_a_list->Check(i,false); + m_b_list->Check(i,false); + m_c_list->Check(i,false); + m_d_list->Check(i,false); + m_e_list->Check(i,false); } unsigned int nImages = optvec.size(); for (unsigned int i=0; i < nImages; i++) { - m_yaw_list->Check(i,false); - m_pitch_list->Check(i,false); - m_roll_list->Check(i,false); + m_yaw_list->Check(i,false); + m_pitch_list->Check(i,false); + m_roll_list->Check(i,false); unsigned int lensNr = m_pano->getImage(i).getLensNr(); for(set<string>::const_iterator it = optvec[i].begin(); - it != optvec[i].end(); ++it) - { - if (*it == "y") { - m_yaw_list->Check(i); - } - if (*it == "p") { - m_pitch_list->Check(i); - } - if (*it == "r") { - m_roll_list->Check(i); - } + it != optvec[i].end(); ++it) + { + if (*it == "y") { + m_yaw_list->Check(i); + } + if (*it == "p") { + m_pitch_list->Check(i); + } + if (*it == "r") { + m_roll_list->Check(i); + } - if (*it == "v") { - m_v_list->Check(lensNr); - } - if (*it == "a") { - m_a_list->Check(lensNr); - } - if (*it == "b") { - m_b_list->Check(lensNr); - } - if (*it == "c") { - m_c_list->Check(lensNr); - } - if (*it == "d") { - m_d_list->Check(lensNr); - } - if (*it == "e") { - m_e_list->Check(lensNr); - } - } + if (*it == "v") { + m_v_list->Check(lensNr); + } + if (*it == "a") { + m_a_list->Check(lensNr); + } + if (*it == "b") { + m_b_list->Check(lensNr); + } + if (*it == "c") { + m_c_list->Check(lensNr); + } + if (*it == "d") { + m_d_list->Check(lensNr); + } + if (*it == "e") { + m_e_list->Check(lensNr); + } + } } } @@ -798,6 +834,15 @@ } +void OptimizePanel::OnCheckBoxChanged(wxCommandEvent & e) +{ + DEBUG_TRACE(""); + GlobalCmdHist::getInstance().addCommand( + new PT::UpdateOptimizeVectorCmd(*m_pano,getOptimizeVector())); + +} + + IMPLEMENT_DYNAMIC_CLASS(OptimizePanel, wxPanel) Modified: hugin/trunk/src/hugin1/hugin/OptimizePanel.h =================================================================== --- hugin/trunk/src/hugin1/hugin/OptimizePanel.h 2008-07-17 21:30:31 UTC (rev 3201) +++ hugin/trunk/src/hugin1/hugin/OptimizePanel.h 2008-07-18 02:48:57 UTC (rev 3202) @@ -71,19 +71,8 @@ void OnClose(wxCloseEvent& e); - // shortcuts to check/uncheck - void OnSelYaw(wxCommandEvent & e) - { SetCheckMark(m_yaw_list,true); } - void OnDelYaw(wxCommandEvent & e) - { SetCheckMark(m_yaw_list,false); } - void OnSelPitch(wxCommandEvent & e) - { SetCheckMark(m_pitch_list,true); } - void OnDelPitch(wxCommandEvent & e) - { SetCheckMark(m_pitch_list,false); } - void OnSelRoll(wxCommandEvent & e) - { SetCheckMark(m_roll_list,true); } - void OnDelRoll(wxCommandEvent & e) - { SetCheckMark(m_roll_list,false); } + // Select/Clear button handler + void OnListButton(wxCommandEvent & e); // helper function for wxCheckListBox void SetCheckMark(wxCheckListBox * l, int check); @@ -91,6 +80,9 @@ // called whenever the optimize mode changes void OnChangeMode(wxCommandEvent & e); + // called whenever a checkbox state changes + void OnCheckBoxChanged(wxCommandEvent & e); + void runOptimizer(const PT::UIntSet & img); bool AskApplyResult(const PT::Panorama & pano); Modified: hugin/trunk/src/hugin_base/panodata/Panorama.cpp =================================================================== --- hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2008-07-17 21:30:31 UTC (rev 3201) +++ hugin/trunk/src/hugin_base/panodata/Panorama.cpp 2008-07-18 02:48:57 UTC (rev 3202) @@ -87,6 +87,7 @@ state.images.clear(); state.variables.clear(); state.options.reset(); + state.optvec.clear(); state.needsOptimization = false; } @@ -408,9 +409,11 @@ state.lenses.erase(state.lenses.begin() + lens); } + DEBUG_TRACE("Remove variables and image from panorama state") state.variables.erase(state.variables.begin() + imgNr); state.images.erase(state.images.begin() + imgNr); + state.optvec.erase(state.optvec.begin() + imgNr); // check if reference image has been moved if (state.options.optimizeReferenceImage >= state.images.size()) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gpa...@us...> - 2008-07-20 02:10:59
|
Revision: 3212 http://hugin.svn.sourceforge.net/hugin/?rev=3212&view=rev Author: gpatters1 Date: 2008-07-20 02:10:45 +0000 (Sun, 20 Jul 2008) Log Message: ----------- [1987509] Pass the correct enblend/enfuse executable to hugin_stitch project. Check for empty enfuse/enblend executables settings at the makefile level. Modified Paths: -------------- hugin/trunk/src/hugin1/hugin/PanoPanel.cpp hugin/trunk/src/hugin1/hugin/PreferencesDialog.cpp hugin/trunk/src/hugin1/hugin/PreferencesDialog.h hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp Modified: hugin/trunk/src/hugin1/hugin/PanoPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/PanoPanel.cpp 2008-07-20 01:24:33 UTC (rev 3211) +++ hugin/trunk/src/hugin1/hugin/PanoPanel.cpp 2008-07-20 02:10:45 UTC (rev 3212) @@ -809,6 +809,7 @@ // wxString command = hugin_stitch_project + wxT(" -o ") + wxQuoteFilename(outputPrefix) + wxT(" ") + wxQuoteFilename(ptofile); wxString command = hugin_stitch_project + wxT(" -d ") + wxQuoteFilename(currentPTOfn); + wxConfigBase::Get()->Flush(); #ifdef __WXGTK__ // work around a wxExecute bug/problem // (endless polling of fd 0 and 1 in hugin_stitch_project) Modified: hugin/trunk/src/hugin1/hugin/PreferencesDialog.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/PreferencesDialog.cpp 2008-07-20 01:24:33 UTC (rev 3211) +++ hugin/trunk/src/hugin1/hugin/PreferencesDialog.cpp 2008-07-20 02:10:45 UTC (rev 3212) @@ -228,31 +228,13 @@ } -void PreferencesDialog::VerifyEntryData() { - // Check that valid information is in the entry fields - wxString buffer; - buffer = XRCCTRL(*this, "prefs_enblend_EnblendExe", wxTextCtrl)->GetValue(); - if (buffer == wxEmptyString) { - DEBUG_WARN("Enblend executable field empty, defaulting to false"); - XRCCTRL(*this, "prefs_enblend_EnblendExe", wxTextCtrl)->SetValue(wxT("false")); - } - buffer = XRCCTRL(*this, "prefs_enblend_EnfuseExe", wxTextCtrl)->GetValue(); - if (buffer == wxEmptyString) { - DEBUG_WARN("Enfuse executable field empty, defaulting to false"); - XRCCTRL(*this, "prefs_enblend_EnfuseExe", wxTextCtrl)->SetValue(wxT("false")); - } -} - - void PreferencesDialog::OnApply(wxCommandEvent & e) { - VerifyEntryData(); UpdateConfigData(); } void PreferencesDialog::OnOk(wxCommandEvent & e) { - VerifyEntryData(); UpdateConfigData(); this->EndModal(wxOK); } @@ -983,5 +965,6 @@ cfg->Write(wxT("/Enfuse/Exe"), MY_G_STR_VAL("prefs_enblend_EnfuseExe")); cfg->Write(wxT("/Enfuse/Args"), MY_G_STR_VAL("prefs_enblend_EnfuseArgs")); + cfg->Flush(); UpdateDisplayData(0); } Modified: hugin/trunk/src/hugin1/hugin/PreferencesDialog.h =================================================================== --- hugin/trunk/src/hugin1/hugin/PreferencesDialog.h 2008-07-20 01:24:33 UTC (rev 3211) +++ hugin/trunk/src/hugin1/hugin/PreferencesDialog.h 2008-07-20 02:10:45 UTC (rev 3212) @@ -55,9 +55,6 @@ /** Window to Config */ void UpdateConfigData(); - /** Check config entry for errors **/ - void VerifyEntryData(); - protected: void OnOk(wxCommandEvent & e); void OnApply(wxCommandEvent & e); Modified: hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp =================================================================== --- hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp 2008-07-20 01:24:33 UTC (rev 3211) +++ hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp 2008-07-20 02:10:45 UTC (rev 3212) @@ -172,6 +172,15 @@ << "EXIFTOOL=" << quoteStringShell(progs.exiftool) << endl #endif << endl + << "ifndef ENBLEND" << endl + << " ENBLEND=false" << endl + << "endif" << endl + << endl + << "ifndef ENFUSE" << endl + << " ENFUSE=false" << endl + << "endif" << endl + << endl + << "# options for the programs" << endl << endl; o << "NONA_LDR_REMAPPED_COMP="; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gpa...@us...> - 2008-07-23 18:23:54
|
Revision: 3218 http://hugin.svn.sourceforge.net/hugin/?rev=3218&view=rev Author: gpatters1 Date: 2008-07-23 18:23:51 +0000 (Wed, 23 Jul 2008) Log Message: ----------- [1981284] Normal output is disabled for exposure stacks. Fused/HDR output is disabled for panos without stacks. Modified Paths: -------------- hugin/trunk/src/hugin1/hugin/PanoPanel.cpp hugin/trunk/src/hugin1/hugin/PanoPanel.h hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.h Modified: hugin/trunk/src/hugin1/hugin/PanoPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/PanoPanel.cpp 2008-07-23 16:06:59 UTC (rev 3217) +++ hugin/trunk/src/hugin1/hugin/PanoPanel.cpp 2008-07-23 18:23:51 UTC (rev 3218) @@ -62,6 +62,7 @@ #include "hugin/NonaStitcherPanel.h" #include "hugin/config_defaults.h" #include "base_wx/platform.h" +#include "base_wx/huginConfig.h" #define WX_BROKEN_SIZER_UNKNOWN @@ -139,6 +140,7 @@ DEBUG_ASSERT(m_ProjectionChoice); m_keepViewOnResize = true; + m_hasStacks=false; /* populate with all available projection types */ #ifdef HasPANO13 @@ -283,18 +285,70 @@ void PanoPanel::panoramaChanged (PT::Panorama &pano) { DEBUG_TRACE(""); - bool hasImages = pano.getActiveImages().size() > 0; - m_StitchButton->Enable(hasImages); + bool hasStacks = StackCheck(pano); PanoramaOptions opt = pano.getOptions(); + // update all options for dialog and notebook tab - UpdateDisplay(opt); + UpdateDisplay(opt,hasStacks); + m_oldOpt = opt; } -void PanoPanel::UpdateDisplay(const PanoramaOptions & opt) + +bool PanoPanel::StackCheck(PT::Panorama &pano) { + DEBUG_TRACE(""); + PanoramaOptions opt = pano.getOptions(); + // Determine if there are stacks in the pano. + UIntSet activeImages = pano.getActiveImages(); + UIntSet images = getImagesinROI(pano,activeImages); + vector<UIntSet> hdrStacks = HuginBase::getHDRStacks(pano, images); + DEBUG_WARN(hdrStacks.size() << ": HDR stacks detected"); + const bool hasStacks = (hdrStacks.size() != activeImages.size()); + + // Only change the output types if the stack configuration has changed. + bool isChanged = (hasStacks != m_hasStacks); + if (isChanged) { + if (hasStacks) { + // Disable normal output formats + opt.outputLDRBlended = false; + opt.outputLDRLayers = false; + // Ensure at least one fused output is enabled + if (!(opt.outputLDRExposureBlended || + opt.outputLDRExposureLayers || + opt.outputLDRExposureRemapped || + opt.outputHDRBlended || + opt.outputHDRStacks || + opt.outputHDRLayers)) { + opt.outputLDRExposureBlended = true; + } + } else { + // Disable fused output formats + opt.outputLDRExposureBlended = false; + opt.outputLDRExposureLayers = false; + opt.outputLDRExposureRemapped = false; + opt.outputHDRBlended = false; + opt.outputHDRStacks = false; + opt.outputHDRLayers = false; + // Ensure at least one normal output is enabled + if (!(opt.outputLDRBlended || opt.outputLDRLayers)) { + opt.outputLDRBlended = true; + } + } + pano.setOptions(opt); + } + + m_hasStacks = hasStacks; + + return hasStacks; +} + + +void PanoPanel::UpdateDisplay(const PanoramaOptions & opt, const bool hasStacks) +{ + // m_HFOVSpin->SetRange(1,opt.getMaxHFOV()); // m_VFOVSpin->SetRange(1,opt.getMaxVFOV()); @@ -321,17 +375,56 @@ m_ROITopTxt->SetValue(wxString::Format(wxT("%d"), opt.getROI().top() )); m_ROIBottomTxt->SetValue(wxString::Format(wxT("%d"), opt.getROI().bottom() )); + //do not stitch unless there are active images + m_StitchButton->Enable(hasImages); + // output types - XRCCTRL(*this, "pano_cb_ldr_output_blended", wxCheckBox)->SetValue(opt.outputLDRBlended); - XRCCTRL(*this, "pano_cb_ldr_output_layers", wxCheckBox)->SetValue(opt.outputLDRLayers); - XRCCTRL(*this, "pano_cb_ldr_output_exposure_blended", wxCheckBox)->SetValue(opt.outputLDRExposureBlended); - XRCCTRL(*this, "pano_cb_ldr_output_exposure_layers", wxCheckBox)->SetValue(opt.outputLDRExposureLayers); - XRCCTRL(*this, "pano_cb_ldr_output_exposure_remapped", wxCheckBox)->SetValue(opt.outputLDRExposureRemapped); - XRCCTRL(*this, "pano_cb_hdr_output_blended", wxCheckBox)->SetValue(opt.outputHDRBlended); - XRCCTRL(*this, "pano_cb_hdr_output_stacks", wxCheckBox)->SetValue(opt.outputHDRStacks); - XRCCTRL(*this, "pano_cb_hdr_output_layers", wxCheckBox)->SetValue(opt.outputHDRLayers); + XRCCTRL(*this, "pano_cb_ldr_output_blended", + wxCheckBox)->SetValue(opt.outputLDRBlended); + XRCCTRL(*this, "pano_cb_ldr_output_layers", + wxCheckBox)->SetValue(opt.outputLDRLayers); + XRCCTRL(*this, "pano_cb_ldr_output_exposure_blended", + wxCheckBox)->SetValue(opt.outputLDRExposureBlended); + XRCCTRL(*this, "pano_cb_ldr_output_exposure_layers", + wxCheckBox)->SetValue(opt.outputLDRExposureLayers); + XRCCTRL(*this, "pano_cb_ldr_output_exposure_remapped", + wxCheckBox)->SetValue(opt.outputLDRExposureRemapped); + XRCCTRL(*this, "pano_cb_hdr_output_blended", + wxCheckBox)->SetValue(opt.outputHDRBlended); + XRCCTRL(*this, "pano_cb_hdr_output_stacks", + wxCheckBox)->SetValue(opt.outputHDRStacks); + XRCCTRL(*this, "pano_cb_hdr_output_layers", + wxCheckBox)->SetValue(opt.outputHDRLayers); - bool blenderEnabled = opt.outputLDRBlended || opt.outputLDRExposureBlended || opt.outputLDRExposureLayers || opt.outputHDRBlended; + if (hasStacks) { + XRCCTRL(*this,"pano_cb_ldr_output_blended",wxCheckBox)->Disable(); + XRCCTRL(*this,"pano_cb_ldr_output_layers",wxCheckBox)->Disable(); + + XRCCTRL(*this,"pano_cb_ldr_output_exposure_layers",wxCheckBox)->Enable(); + XRCCTRL(*this,"pano_cb_ldr_output_exposure_blended",wxCheckBox)->Enable(); + XRCCTRL(*this,"pano_cb_ldr_output_exposure_remapped",wxCheckBox)->Enable(); + XRCCTRL(*this,"pano_cb_hdr_output_blended",wxCheckBox)->Enable(); + XRCCTRL(*this,"pano_cb_hdr_output_stacks",wxCheckBox)->Enable(); + XRCCTRL(*this,"pano_cb_hdr_output_layers",wxCheckBox)->Enable(); + + } else { + XRCCTRL(*this,"pano_cb_ldr_output_blended",wxCheckBox)->Enable(); + XRCCTRL(*this,"pano_cb_ldr_output_layers",wxCheckBox)->Enable(); + + XRCCTRL(*this,"pano_cb_ldr_output_exposure_layers",wxCheckBox)->Disable(); + XRCCTRL(*this,"pano_cb_ldr_output_exposure_blended",wxCheckBox)->Disable(); + XRCCTRL(*this,"pano_cb_ldr_output_exposure_remapped",wxCheckBox)->Disable(); + + XRCCTRL(*this,"pano_cb_hdr_output_blended",wxCheckBox)->Disable(); + XRCCTRL(*this,"pano_cb_hdr_output_stacks",wxCheckBox)->Disable(); + XRCCTRL(*this,"pano_cb_hdr_output_layers",wxCheckBox)->Disable(); + } + + bool blenderEnabled = opt.outputLDRBlended || + opt.outputLDRExposureBlended || + opt.outputLDRExposureLayers || + opt.outputHDRBlended; + m_BlenderChoice->Show(blenderEnabled); XRCCTRL(*this, "pano_button_blender_opts", wxButton)->Show(blenderEnabled); XRCCTRL(*this, "pano_text_blender", wxStaticText)->Show(blenderEnabled); Modified: hugin/trunk/src/hugin1/hugin/PanoPanel.h =================================================================== --- hugin/trunk/src/hugin1/hugin/PanoPanel.h 2008-07-23 16:06:59 UTC (rev 3217) +++ hugin/trunk/src/hugin1/hugin/PanoPanel.h 2008-07-23 18:23:51 UTC (rev 3218) @@ -94,7 +94,8 @@ // apply changes from the model - void UpdateDisplay(const PT::PanoramaOptions & opt); + bool StackCheck (PT::Panorama & pano); + void UpdateDisplay(const PT::PanoramaOptions & opt, const bool hasStacks); void SetStitcher(PanoramaOptions::Remapper stitcher); // apply changes to the model. (gui values -> Panorama) @@ -158,6 +159,7 @@ double m_oldVFOV; bool m_keepViewOnResize; + bool m_hasStacks; // controls of this frame wxChoice * m_ProjectionChoice; Modified: hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp =================================================================== --- hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp 2008-07-23 16:06:59 UTC (rev 3217) +++ hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp 2008-07-23 18:23:51 UTC (rev 3218) @@ -107,6 +107,22 @@ } +// should be moved somewhere else (will be after GSOC anyway) +UIntSet getImagesinROI (const PanoramaData& pano, const UIntSet activeImages) +{ + UIntSet images; + PanoramaOptions opts = pano.getOptions(); + for (UIntSet::const_iterator it = activeImages.begin(); it != activeImages.end(); ++it) + { + Rect2D roi = estimateOutputROI(pano, opts, *it); + if (! (roi.isEmpty())) { + images.insert(*it); + } + } + return images; +} + + void PanoramaMakefileExport::createMakefile(const PanoramaData& pano, const UIntSet& rimages, const std::string& ptofile, @@ -126,15 +142,8 @@ #endif // output only images in current ROI - UIntSet images; - for (UIntSet::const_iterator it = rimages.begin(); it != rimages.end(); ++it) - { - Rect2D roi = estimateOutputROI(pano, opts, *it); - if (! (roi.isEmpty())) { - images.insert(*it); - } - } - + UIntSet images = getImagesinROI(pano,rimages); + // execute exiftool with perl if necessary #ifdef COULD_EXECUTE_EXIFTOOL_WITH_PERL bool executeWithPerl = false; Modified: hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.h =================================================================== --- hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.h 2008-07-23 16:06:59 UTC (rev 3217) +++ hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.h 2008-07-23 18:23:51 UTC (rev 3218) @@ -32,8 +32,12 @@ namespace HuginBase { - + /// +std::vector<UIntSet> getHDRStacks(const PanoramaData & pano, UIntSet allImgs); +std::vector<UIntSet> getExposureLayers(const PanoramaData & pano, UIntSet allImgs); +UIntSet getImagesinROI (const PanoramaData& pano, const UIntSet activeImages); + class PanoramaMakefileExport : public PanoramaAlgorithm { public: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <da...@us...> - 2008-08-11 22:14:21
|
Revision: 3306 http://hugin.svn.sourceforge.net/hugin/?rev=3306&view=rev Author: dangelo Date: 2008-08-11 22:14:15 +0000 (Mon, 11 Aug 2008) Log Message: ----------- fixed compiler warning about using uninitalized values in align_image_stack. It probably really was a bug. Modified Paths: -------------- hugin/trunk/src/hugin_base/vigra_ext/InterestPoints.h hugin/trunk/src/tools/align_image_stack.cpp Modified: hugin/trunk/src/hugin_base/vigra_ext/InterestPoints.h =================================================================== --- hugin/trunk/src/hugin_base/vigra_ext/InterestPoints.h 2008-08-11 21:39:51 UTC (rev 3305) +++ hugin/trunk/src/hugin_base/vigra_ext/InterestPoints.h 2008-08-11 22:14:15 UTC (rev 3306) @@ -69,7 +69,7 @@ DEBUG_DEBUG("running corner detector. nPoints: " << nPoints << ", scale: " << scale ); // find corner response at scale scale - vigra::cornerResponseFunction(srcIterRange(img.first + rect.upperLeft(), img.first + rect.lowerRight(), vigra::GreenAccessor<vigra::RGBValue<vigra::UInt8> >()), + vigra::cornerResponseFunction(srcIterRange(img.first + rect.upperLeft(), img.first + rect.lowerRight(), img.third), vigra::destImage(leftCornerResponse), scale); Modified: hugin/trunk/src/tools/align_image_stack.cpp =================================================================== --- hugin/trunk/src/tools/align_image_stack.cpp 2008-08-11 21:39:51 UTC (rev 3305) +++ hugin/trunk/src/tools/align_image_stack.cpp 2008-08-11 22:14:15 UTC (rev 3306) @@ -157,7 +157,7 @@ std::cout << "Trying to find " << nPoints << " corners... "; } - vigra_ext::findInterestPointsOnGrid(srcImageRange(leftImg, GreenAccessor<RGBValue<VT> >()), scale, 5*nPoints, grid, points); + vigra_ext::findInterestPointsOnGrid(srcImageRange(leftImg, GreenAccessor<VT>()), scale, 5*nPoints, grid, points); double scaleFactor = 1<<pyrLevel; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <da...@us...> - 2008-08-11 22:29:35
|
Revision: 3307 http://hugin.svn.sourceforge.net/hugin/?rev=3307&view=rev Author: dangelo Date: 2008-08-11 22:29:29 +0000 (Mon, 11 Aug 2008) Log Message: ----------- fixed bug [ hugin-Bugs-2034515 ] Stitcher: Crop is inconsistent Modified Paths: -------------- hugin/trunk/src/hugin1/hugin/AutoCtrlPointCreator.cpp hugin/trunk/src/hugin_base/nona/Stitcher.h Modified: hugin/trunk/src/hugin1/hugin/AutoCtrlPointCreator.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/AutoCtrlPointCreator.cpp 2008-08-11 22:14:15 UTC (rev 3306) +++ hugin/trunk/src/hugin1/hugin/AutoCtrlPointCreator.cpp 2008-08-11 22:29:29 UTC (rev 3307) @@ -307,21 +307,11 @@ wxString ptoinfile_name; if (use_inputscript) { wxFile ptoinfile; - // create temporary project file - ptoinfile_name = wxFileName::CreateTempFileName(wxT("ap_inproj"), &ptoinfile); + ptoinfile_name = wxFileName::CreateTempFileName(wxT("ap_inproj")); autopanoArgs.Replace(wxT("%s"), ptoinfile_name); -#ifdef __GNUC__ - { - __gnu_cxx::stdio_filebuf<char> fbuf(ptoinfile.fd(), ios::out, 100); - ostream ptoinstream(&fbuf); - pano.printPanoramaScript(ptoinstream, pano.getOptimizeVector(), pano.getOptions(), imgs, false); - } -#else - ptoinfile.Close(); ofstream ptoinstream(ptoinfile_name.mb_str(wxConvFile)); pano.printPanoramaScript(ptoinstream, pano.getOptimizeVector(), pano.getOptions(), imgs, false); -#endif } #ifdef __WXMSW__ Modified: hugin/trunk/src/hugin_base/nona/Stitcher.h =================================================================== --- hugin/trunk/src/hugin_base/nona/Stitcher.h 2008-08-11 22:14:15 UTC (rev 3306) +++ hugin/trunk/src/hugin_base/nona/Stitcher.h 2008-08-11 22:29:29 UTC (rev 3307) @@ -341,6 +341,9 @@ if (opts.tiff_saveROI) { exinfo.setPosition(remapped.boundingBox().upperLeft()); exinfo.setCanvasSize(vigra::Size2D(opts.getWidth(), opts.getHeight())); + } else { + exinfo.setPosition(opts.getROI().upperLeft()); + exinfo.setCanvasSize(vigra::Size2D(opts.getWidth(), opts.getHeight())); } if (opts.outputPixelType.size() > 0) { exinfo.setPixelType(opts.outputPixelType.c_str()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ip...@us...> - 2008-08-29 04:09:08
|
Revision: 3371 http://hugin.svn.sourceforge.net/hugin/?rev=3371&view=rev Author: ippei Date: 2008-08-29 04:09:06 +0000 (Fri, 29 Aug 2008) Log Message: ----------- Stitcher panel further GUI adjustment. Modified Paths: -------------- hugin/trunk/src/hugin1/hugin/PanoPanel.cpp hugin/trunk/src/hugin1/hugin/xrc/pano_panel.xrc hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h Modified: hugin/trunk/src/hugin1/hugin/PanoPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/PanoPanel.cpp 2008-08-29 02:28:13 UTC (rev 3370) +++ hugin/trunk/src/hugin1/hugin/PanoPanel.cpp 2008-08-29 04:09:06 UTC (rev 3371) @@ -400,6 +400,23 @@ wxCheckBox)->SetValue(opt.outputHDRStacks); XRCCTRL(*this, "pano_cb_hdr_output_layers", wxCheckBox)->SetValue(opt.outputHDRLayers); + + bool anyOutputSelected = (opt.outputLDRBlended || + opt.outputLDRLayers || + opt.outputLDRExposureLayers || + opt.outputLDRExposureBlended || + opt.outputLDRExposureRemapped || + opt.outputHDRBlended || + opt.outputHDRStacks || + opt.outputHDRLayers); + + if (m_StitchButton->IsEnabled()) { + if(!anyOutputSelected) + m_StitchButton->Disable(); + } else { + if(anyOutputSelected) + m_StitchButton->Enable(); + } #ifdef STACK_CHECK //Disabled for 0.7.0 release if (hasStacks) { @@ -790,6 +807,7 @@ wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("enfuse_options_dialog")); wxTextCtrl * enfuse_opts_text = XRCCTRL(dlg, "enfuse_arguments_text", wxTextCtrl); enfuse_opts_text->SetValue(wxString(opt.enfuseOptions.c_str(), wxConvLocal)); + dlg.CentreOnParent(); if (dlg.ShowModal() == wxID_OK) { if (enfuse_opts_text->GetValue().length() > 0) { @@ -1128,7 +1146,7 @@ } else if (id == XRCID("pano_cb_hdr_output_layers") ) { opts.outputHDRLayers = e.IsChecked(); } - + GlobalCmdHist::getInstance().addCommand( new PT::SetPanoOptionsCmd( *pano, opts ) ); Modified: hugin/trunk/src/hugin1/hugin/xrc/pano_panel.xrc =================================================================== --- hugin/trunk/src/hugin1/hugin/xrc/pano_panel.xrc 2008-08-29 02:28:13 UTC (rev 3370) +++ hugin/trunk/src/hugin1/hugin/xrc/pano_panel.xrc 2008-08-29 04:09:06 UTC (rev 3371) @@ -216,7 +216,7 @@ </object> </object> <flag>wxLEFT</flag> - <border>6</border> + <border>12</border> </object> <object class="sizeritem"> <object class="wxGridBagSizer"> @@ -240,7 +240,7 @@ <object class="wxStaticText"> <label>horizontal (v):</label> </object> - <border>6</border> + <border>12</border> </object> <object class="sizeritem"> <cellpos>1,1</cellpos> @@ -257,8 +257,9 @@ </object> </object> <object class="sizeritem"> + <border>12</border> <cellpos>1,3</cellpos> - <flag>wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL</flag> + <flag>wxRIGHT|wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL</flag> <object class="wxTextCtrl" name="pano_text_vfov"> <size>60,-1</size> </object> @@ -268,8 +269,7 @@ <object class="wxButton" name="pano_button_calc_fov"> <label>Calculate Field of View</label> </object> - <flag>wxLEFT|wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL</flag> - <border>6</border> + <flag>wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL</flag> <cellpos>1,4</cellpos> </object> <object class="sizeritem"> @@ -292,7 +292,7 @@ <label>width:</label> </object> <flag>wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL</flag> - <border>6</border> + <border>12</border> <cellpos>3,0</cellpos> </object> <object class="sizeritem"> @@ -316,7 +316,8 @@ <size>60,-1</size> <style>wxTE_PROCESS_ENTER</style> </object> - <flag>wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL</flag> + <flag>wxRIGHT|wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL</flag> + <border>12</border> <cellpos>3,3</cellpos> </object> <object class="sizeritem"> @@ -662,8 +663,7 @@ <object class="wxStaticText" name="pano_text_fusion"> <label>Image fusion:</label> </object> - <flag>wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL</flag> - <border>14</border> + <flag>wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL</flag> </object> <object class="sizeritem"> <object class="wxChoice" name="pano_choice_fusion"> @@ -686,8 +686,7 @@ <object class="wxStaticText" name="pano_text_hdrmerge"> <label>HDR merger:</label> </object> - <flag>wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL</flag> - <border>14</border> + <flag>wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL</flag> </object> <object class="sizeritem"> <object class="wxChoice" name="pano_choice_hdrmerge"> @@ -710,8 +709,7 @@ <object class="wxStaticText" name="pano_text_blender"> <label>Blender:</label> </object> - <flag>wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL</flag> - <border>14</border> + <flag>wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL</flag> </object> <object class="sizeritem"> <object class="wxChoice" name="pano_choice_blender"> @@ -731,6 +729,8 @@ <border>6</border> </object> </object> + <flag>wxLEFT</flag> + <border>12</border> </object> </object> </object> @@ -766,7 +766,7 @@ <label>Normal Output:</label> </object> <flag>wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL</flag> - <border>14</border> + <border>0</border> </object> <object class="sizeritem"> <object class="wxChoice" name="pano_choice_file_format"> @@ -884,7 +884,7 @@ </object> </object> <flag>wxLEFT|wxEXPAND|wxADJUST_MINSIZE</flag> - <border>6</border> + <border>12</border> </object> </object> </object> Modified: hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h =================================================================== --- hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h 2008-08-29 02:28:13 UTC (rev 3370) +++ hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h 2008-08-29 04:09:06 UTC (rev 3371) @@ -332,9 +332,8 @@ DestPanoImage getDestImage() const; public: - // they are public, because they need to be set through - // get/setOptions in Panorama. - + //TODO: Write accessor methods; make instance variables private unless absolutely neccesary for backward-compatibility. + std::string outfile; FileFormat outputFormat; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bl...@us...> - 2008-10-14 00:22:40
|
Revision: 3502 http://hugin.svn.sourceforge.net/hugin/?rev=3502&view=rev Author: blimbo Date: 2008-10-13 23:33:00 +0000 (Mon, 13 Oct 2008) Log Message: ----------- Added Celeste button to images panel, patched fix for bug 2161163 Modified Paths: -------------- hugin/trunk/src/celeste/ContrastFilter.h hugin/trunk/src/celeste/GaborFilter.cpp hugin/trunk/src/celeste/GaborJet.h hugin/trunk/src/celeste/LogPolar.h hugin/trunk/src/celeste/PGMImage.cpp hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp hugin/trunk/src/hugin1/hugin/ImagesPanel.h hugin/trunk/src/hugin1/hugin/xrc/images_panel.xrc Modified: hugin/trunk/src/celeste/ContrastFilter.h =================================================================== --- hugin/trunk/src/celeste/ContrastFilter.h 2008-10-13 21:38:18 UTC (rev 3501) +++ hugin/trunk/src/celeste/ContrastFilter.h 2008-10-13 23:33:00 UTC (rev 3502) @@ -7,6 +7,7 @@ #ifndef __CONTRAST_FILTER_CLASS__ #define __CONTRAST_FILTER_CLASS__ +#include <cstring> #include "PGMImage.h" class ContrastFilter Modified: hugin/trunk/src/celeste/GaborFilter.cpp =================================================================== --- hugin/trunk/src/celeste/GaborFilter.cpp 2008-10-13 21:38:18 UTC (rev 3501) +++ hugin/trunk/src/celeste/GaborFilter.cpp 2008-10-13 23:33:00 UTC (rev 3502) @@ -6,6 +6,7 @@ 18/04/2002 - AGT - initial version */ +#include <cstring> #include "GaborFilter.h" #ifndef M_PI Modified: hugin/trunk/src/celeste/GaborJet.h =================================================================== --- hugin/trunk/src/celeste/GaborJet.h 2008-10-13 21:38:18 UTC (rev 3501) +++ hugin/trunk/src/celeste/GaborJet.h 2008-10-13 23:33:00 UTC (rev 3502) @@ -9,6 +9,7 @@ #ifndef __GABORJET__ #define __GABORJET__ +#include <cstring> #include "GaborGlobal.h" #include "GaborFilter.h" Modified: hugin/trunk/src/celeste/LogPolar.h =================================================================== --- hugin/trunk/src/celeste/LogPolar.h 2008-10-13 21:38:18 UTC (rev 3501) +++ hugin/trunk/src/celeste/LogPolar.h 2008-10-13 23:33:00 UTC (rev 3502) @@ -7,6 +7,7 @@ #ifndef __LOGPOLAR_CLASS__ #define __LOGPOLAR_CLASS__ +#include <cstring> #include "GaborGlobal.h" #include "PGMImage.h" Modified: hugin/trunk/src/celeste/PGMImage.cpp =================================================================== --- hugin/trunk/src/celeste/PGMImage.cpp 2008-10-13 21:38:18 UTC (rev 3501) +++ hugin/trunk/src/celeste/PGMImage.cpp 2008-10-13 23:33:00 UTC (rev 3502) @@ -4,6 +4,7 @@ Copyright: ( c ) Copyright 2002-3 Adriaan Tijsseling. All rights reserved. */ +#include <cstring> #include "PGMImage.h" using namespace std; Modified: hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp 2008-10-13 21:38:18 UTC (rev 3501) +++ hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp 2008-10-13 23:33:00 UTC (rev 3502) @@ -73,6 +73,7 @@ EVT_BUTTON ( XRCID("action_remove_images"), ImagesPanel::OnRemoveImages) EVT_BUTTON ( XRCID("images_move_image_down"), ImagesPanel::OnMoveImageDown) EVT_BUTTON ( XRCID("images_move_image_up"), ImagesPanel::OnMoveImageUp) + EVT_BUTTON ( XRCID("images_celeste_button"), ImagesPanel::OnCelesteButton) EVT_TEXT_ENTER ( XRCID("images_text_yaw"), ImagesPanel::OnYawTextChanged ) EVT_TEXT_ENTER ( XRCID("images_text_pitch"), ImagesPanel::OnPitchTextChanged ) EVT_TEXT_ENTER ( XRCID("images_text_roll"), ImagesPanel::OnRollTextChanged ) @@ -422,6 +423,7 @@ m_moveUpButton->Disable(); XRCCTRL(*this, "images_reset_pos", wxButton)->Disable(); XRCCTRL(*this, "action_remove_images", wxButton)->Disable(); + XRCCTRL(*this, "images_celeste_button", wxButton)->Disable(); } void ImagesPanel::EnableImageCtrls() @@ -434,6 +436,7 @@ m_moveUpButton->Enable(); XRCCTRL(*this, "images_reset_pos", wxButton)->Enable(); XRCCTRL(*this, "action_remove_images", wxButton)->Enable(); + XRCCTRL(*this, "images_celeste_button", wxButton)->Enable(); } } @@ -716,4 +719,118 @@ IMPLEMENT_DYNAMIC_CLASS(ImagesPanelXmlHandler, wxXmlResourceHandler) +void ImagesPanel::OnCelesteButton(wxCommandEvent & e) +{ + const UIntSet & selImg = images_list->GetSelected(); + unsigned int total_removed = 0; + + if ( selImg.size() == 0) { + DEBUG_WARN("Cannot run celeste without at least one point"); + }else{ + + DEBUG_TRACE("Running Celeste"); + // set numeric locale to C, for correct number output + char * old_locale = setlocale(LC_NUMERIC,NULL); + setlocale(LC_NUMERIC,"C"); + char buf[100]; + strcpy( buf, INSTALL_XRC_DIR ); + // Will this slash work on Windows? + strcat( buf, "data/"); + strcat( buf, HUGIN_CELESTE_MODEL); + string modelfile = buf; + + //progress.increaseProgress(1.0, std::string(wxString(_("Running Celeste")).mb_str(wxConvLocal))); + + for (UIntSet::iterator itr = selImg.begin(); itr != selImg.end(); ++itr) { + + const CPVector & controlPoints = pano->getCtrlPoints(); + unsigned int removed = 0; + const unsigned int imgNr = *itr; + + gNumLocs = 0; + for (PT::CPVector::const_iterator it = controlPoints.begin(); it != controlPoints.end(); ++it) { + PT::ControlPoint point = *it; + if (imgNr == point.image1Nr){ + gNumLocs++; + } + } + + // Create the storage matrix + gLocations = CreateMatrix( (int)0, gNumLocs, 2); + unsigned int glocation_counter = 0; + unsigned int cp_counter = 0; + vector<unsigned int> global_cp_nr; + + for (PT::CPVector::const_iterator it = controlPoints.begin(); it != controlPoints.end(); ++it) { + PT::ControlPoint point = *it; + if (imgNr == point.image1Nr){ + gLocations[glocation_counter][0] = (int)point.x1; + gLocations[glocation_counter][1] = (int)point.y1; + global_cp_nr.push_back(cp_counter); + glocation_counter++; + } + cp_counter++; + } + + // SVM threshold + double threshold = HUGIN_CELESTE_THRESHOLD; + wxConfigBase::Get()->Read(wxT("/Celeste/Threshold"), &threshold, HUGIN_CELESTE_THRESHOLD); + + // Mask resolution - 1 sets it to fine + bool t = wxConfigBase::Get()->Read(wxT("/Celeste/Filter"), HUGIN_CELESTE_FILTER); + if (t){ + //cerr <<"---Celeste--- Using small filter" << endl; + gRadius = 10; + spacing = (gRadius * 2) + 1; + } + + // Vector to store Gabor filter responses + vector<double> svm_responses; + + // Image to analyse + string imagefile = pano->getImage(*itr).getFilename(); + + // Print progress + MainFrame::Get()->SetStatusText(_("filtering control points..."),0); + + cout << "Running Celeste" << endl; + + // Get responses + bool verbose = true; + string mask_format = "PNG"; + unsigned int mask = 0; + get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses); + + MainFrame::Get()->SetStatusText(_("classifying control points..."),0); + + // Print SVM results + for (unsigned int c = 0; c < svm_responses.size(); c++){ + + unsigned int pNr = global_cp_nr[c] - removed; + + if (svm_responses[c] >= threshold){ + + DEBUG_DEBUG("about to delete point " << pNr); + GlobalCmdHist::getInstance().addCommand( + new PT::RemoveCtrlPointCmd(*pano,pNr) + ); + removed++; + total_removed++; + cout << "CP: " << c << "\tSVM Score: " << svm_responses[c] << "\tremoved." << endl; + } + } + if (removed) cout << endl; + + } + + MainFrame::Get()->SetStatusText(_(""),0); + + // reset locale + setlocale(LC_NUMERIC,old_locale); + } + + wxMessageBox(wxString::Format(_("Removed %d control points"), total_removed), _("Celeste result"),wxOK|wxICON_INFORMATION,this); + +} + Modified: hugin/trunk/src/hugin1/hugin/ImagesPanel.h =================================================================== --- hugin/trunk/src/hugin1/hugin/ImagesPanel.h 2008-10-13 21:38:18 UTC (rev 3501) +++ hugin/trunk/src/hugin1/hugin/ImagesPanel.h 2008-10-13 23:33:00 UTC (rev 3502) @@ -27,6 +27,11 @@ #include "hugin/MainFrame.h" #include "hugin/ImagesList.h" +// Celeste files +#include "Celeste.h" +#include "CelesteGlobals.h" +#include "Utilities.h" + using namespace PT; // forward declarations, to save the #include statements @@ -122,6 +127,8 @@ */ void ListSelectionChanged(wxListEvent & e); + void OnCelesteButton(wxCommandEvent & e); + /** pano -> gui */ void ShowImgParameters(unsigned int imgNr); Modified: hugin/trunk/src/hugin1/hugin/xrc/images_panel.xrc =================================================================== --- hugin/trunk/src/hugin1/hugin/xrc/images_panel.xrc 2008-10-13 21:38:18 UTC (rev 3501) +++ hugin/trunk/src/hugin1/hugin/xrc/images_panel.xrc 2008-10-13 23:33:00 UTC (rev 3502) @@ -89,7 +89,21 @@ </object> </object> <flag>wxEXPAND</flag> - </object> + </object> + <object class="sizeritem"> + <object class="wxStaticLine"> + <style></style> + </object> + <flag>wxTOP|wxBOTTOM|wxEXPAND</flag> + <border>6</border> + </object> + <object class="sizeritem"> + <object class="wxButton" name="images_celeste_button"> + <label>Run Celeste</label> + <tooltip>Tries to remove control points from clouds</tooltip> + </object> + <flag>wxEXPAND</flag> + </object> <object class="spacer"> <size>0,10</size> </object> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bl...@us...> - 2008-10-14 20:24:00
|
Revision: 3504 http://hugin.svn.sourceforge.net/hugin/?rev=3504&view=rev Author: blimbo Date: 2008-10-14 20:23:55 +0000 (Tue, 14 Oct 2008) Log Message: ----------- Added some debug code for Celeste/Windows Modified Paths: -------------- hugin/trunk/src/celeste/Celeste.cpp hugin/trunk/src/hugin1/hugin/AssistantPanel.cpp hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp Modified: hugin/trunk/src/celeste/Celeste.cpp =================================================================== --- hugin/trunk/src/celeste/Celeste.cpp 2008-10-14 08:28:01 UTC (rev 3503) +++ hugin/trunk/src/celeste/Celeste.cpp 2008-10-14 20:23:55 UTC (rev 3504) @@ -32,6 +32,7 @@ #include "Utilities.h" #include "CelesteGlobals.h" #include "svm.h" +#include <stdio.h> using namespace vigra; using namespace std; @@ -40,6 +41,9 @@ void get_gabor_response(string& imagefile, unsigned int& mask, string& model_file, double& threshold,string& mask_format,vector<double>& svm_responses){ + + // Windows debug stuff + freopen ("celeste.log","a",stdout); // Open SVM model file struct svm_model* model; @@ -537,6 +541,8 @@ free(gabor_responses); free(prob_estimates); svm_destroy_model(model); - + + // Windows debug end + fclose (stdout); } Modified: hugin/trunk/src/hugin1/hugin/AssistantPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/AssistantPanel.cpp 2008-10-14 08:28:01 UTC (rev 3503) +++ hugin/trunk/src/hugin1/hugin/AssistantPanel.cpp 2008-10-14 20:23:55 UTC (rev 3504) @@ -474,7 +474,7 @@ string imagefile = m_pano->getImage(imgNr).getFilename(); // Print progress - MainFrame::Get()->SetStatusText(_("filtering control points..."),0); + MainFrame::Get()->SetStatusText(_("searching for cloud-like control points..."),0); cout << "Running Celeste" << endl; @@ -483,9 +483,7 @@ string mask_format = "PNG"; unsigned int mask = 0; get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses); - - MainFrame::Get()->SetStatusText(_("classifying control points..."),0); - + // Print SVM results for (unsigned int c = 0; c < svm_responses.size(); c++){ @@ -508,6 +506,8 @@ wxMessageBox(_("Celeste model file not found, Hugin needs to be properly installed." ), _("Fatal Error")); } + MainFrame::Get()->SetStatusText(_(""),0); + // reset locale setlocale(LC_NUMERIC,old_locale); Modified: hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2008-10-14 08:28:01 UTC (rev 3503) +++ hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2008-10-14 20:23:55 UTC (rev 3504) @@ -56,6 +56,7 @@ #include "Celeste.h" #include "CelesteGlobals.h" #include "Utilities.h" +#include <stdio.h> using namespace std; using namespace PT; @@ -2121,6 +2122,9 @@ DEBUG_WARN("Cannot run celeste without at least one point"); }else{ + // Windows debug stuff + freopen ("celeste.log","a",stdout); + // set numeric locale to C, for correct number output char * old_locale = setlocale(LC_NUMERIC,NULL); setlocale(LC_NUMERIC,"C"); @@ -2179,12 +2183,18 @@ DEBUG_TRACE("Running Celeste"); cout << "Running Celeste" << endl; + // Windows debug end + fclose (stdout); + // Get responses bool verbose = true; string mask_format = "PNG"; unsigned int mask = 0; get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses); + // Windows debug stuff + freopen ("celeste.log","a",stdout); + // Print SVM results unsigned int removed = 0; for (unsigned int c = 0; c < svm_responses.size(); c++){ @@ -2207,8 +2217,13 @@ DEBUG_TRACE("Finished running Celeste"); + MainFrame::Get()->SetStatusText(_(""),0); + // reset locale - setlocale(LC_NUMERIC,old_locale); + setlocale(LC_NUMERIC,old_locale); + + // Windows debug end + fclose (stdout); } } Modified: hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp 2008-10-14 08:28:01 UTC (rev 3503) +++ hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp 2008-10-14 20:23:55 UTC (rev 3504) @@ -792,7 +792,7 @@ string imagefile = pano->getImage(*itr).getFilename(); // Print progress - MainFrame::Get()->SetStatusText(_("filtering control points..."),0); + MainFrame::Get()->SetStatusText(_("searching for cloud-like control points..."),0); cout << "Running Celeste" << endl; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bl...@us...> - 2008-10-23 13:23:42
|
Revision: 3516 http://hugin.svn.sourceforge.net/hugin/?rev=3516&view=rev Author: blimbo Date: 2008-10-23 12:31:23 +0000 (Thu, 23 Oct 2008) Log Message: ----------- More debugging code for Celeste/Windows Modified Paths: -------------- hugin/trunk/src/PTBatcher/Batch.cpp hugin/trunk/src/celeste/Celeste.cpp hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp Modified: hugin/trunk/src/PTBatcher/Batch.cpp =================================================================== --- hugin/trunk/src/PTBatcher/Batch.cpp 2008-10-22 20:13:12 UTC (rev 3515) +++ hugin/trunk/src/PTBatcher/Batch.cpp 2008-10-23 12:31:23 UTC (rev 3516) @@ -368,7 +368,8 @@ "-------------------------------------" << endl; for(unsigned int i=0; i<m_projList.GetCount(); i++) { - cout << m_projList.Item(i).id << " " << m_projList.Item(i).path.char_str() << " " << m_projList.Item(i).prefix.char_str() << " " << m_projList.Item(i).GetStatusText().char_str() << endl; + cout << m_projList.Item(i).id << " " << (const char*)m_projList.Item(i).path.char_str() << " " << (const char*)m_projList.Item(i).prefix.char_str() + << " " << (const char*)m_projList.Item(i).GetStatusText().char_str() << endl; } } } @@ -717,7 +718,7 @@ if(gui) wxMessageBox( _T("Error: Could not delete project file ")+file.GetFullPath(),_T("Error!"),wxOK | wxICON_INFORMATION ); else if(verbose) - cout << "Error: Could not delete project file " << file.GetFullPath().char_str() << endl; + cout << "Error: Could not delete project file " << (const char*)file.GetFullPath().char_str() << endl; } } } @@ -785,7 +786,7 @@ if(gui) SetStatusText(_T("Running command \"")+m_projList.Item(i).path+_T("\"")); else - cout << "Running command \"" << m_projList.Item(i).path.char_str() << "\"" << endl; + cout << "Running command \"" << (const char*)m_projList.Item(i).path.char_str() << "\"" << endl; m_projList.Item(i).status=Project::RUNNING; if(!gui) //we create a fake stitchFrame, so program waits for app to complete { Modified: hugin/trunk/src/celeste/Celeste.cpp =================================================================== --- hugin/trunk/src/celeste/Celeste.cpp 2008-10-22 20:13:12 UTC (rev 3515) +++ hugin/trunk/src/celeste/Celeste.cpp 2008-10-23 12:31:23 UTC (rev 3516) @@ -43,7 +43,7 @@ mask_format,vector<double>& svm_responses){ // Windows debug stuff - freopen ("celeste.log","a",stdout); + //freopen ("celeste.log","a",stdout); // Open SVM model file struct svm_model* model; @@ -543,6 +543,6 @@ svm_destroy_model(model); // Windows debug end - fclose (stdout); + //fclose (stdout); } Modified: hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2008-10-22 20:13:12 UTC (rev 3515) +++ hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2008-10-23 12:31:23 UTC (rev 3516) @@ -2124,6 +2124,9 @@ // Windows debug stuff freopen ("celeste.log","a",stdout); + + // Windows debug end + cout << "Celeste: Setting locale" << endl; // set numeric locale to C, for correct number output char * old_locale = setlocale(LC_NUMERIC,NULL); @@ -2131,6 +2134,9 @@ MainFrame::Get()->SetStatusText(_("searching for cloud-like control points..."),0); + // Windows debug + cout << "Celeste: Creating storage matrix" << endl; + // Create the storage matrix gNumLocs = currentPoints.size(); gLocations = CreateMatrix( (int)0, gNumLocs, 2); @@ -2139,11 +2145,15 @@ unsigned int glocation_counter = 0; for (vector<CPoint>::const_iterator it = currentPoints.begin(); it != currentPoints.end(); ++it) { - //cerr << "---Celeste--- CP x,y: " << it->second.x1 << "," << it->second.y1 << endl; + // Windows debug + cout << "Celeste: Loading CP into matrix - x,y: " << it->second.x1 << "," << it->second.y1 << endl; gLocations[glocation_counter][0] = (int)it->second.x1; gLocations[glocation_counter][1] = (int)it->second.y1; glocation_counter++; } + + // Windows debug + cout << "Celeste: Storage matrix filled" << endl; // Get Celeste paramaters wxConfigBase *cfg = wxConfigBase::Get(); @@ -2171,6 +2181,9 @@ strcat( buf, HUGIN_CELESTE_MODEL); string modelfile = buf; + // Windows debug + cout << "Celeste: Checking model file exists" << endl; + // SVM model file if (! wxFile::Exists(wxString::FromAscii(buf)) ) { wxMessageBox(_("Celeste model file not found, Hugin needs to be properly installed." ), _("Fatal Error")); @@ -2182,25 +2195,35 @@ DEBUG_TRACE("Running Celeste"); cout << "Running Celeste" << endl; - - // Windows debug end - fclose (stdout); - + // Get responses bool verbose = true; string mask_format = "PNG"; unsigned int mask = 0; + + // Windows debug + cout << "Celeste: Running get_gabor_response function" << endl; + + // Windows debug end + //fclose (stdout); + get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses); // Windows debug stuff - freopen ("celeste.log","a",stdout); + //freopen ("celeste.log","a",stdout); + // Windows debug + cout << "Celeste: Finished running get_gabor_response function" << endl; + // Print SVM results unsigned int removed = 0; for (unsigned int c = 0; c < svm_responses.size(); c++){ if (svm_responses[c] >= threshold){ + // Windows debug + cout << "Celeste: Removing CPs" << endl; + unsigned int pNr = localPNr2GlobalPNr((c - removed)); DEBUG_DEBUG("about to delete point " << pNr); GlobalCmdHist::getInstance().addCommand( @@ -2212,6 +2235,9 @@ if (removed) cout << endl; } + // Windows debug + cout << "Celeste: Finished removing CPs" << endl; + wxMessageBox(wxString::Format(_("Finished running Celeste.\n%d cloud-like control points removed."), removed), _("Celeste"), wxICON_EXCLAMATION, this); @@ -2219,6 +2245,9 @@ MainFrame::Get()->SetStatusText(_(""),0); + // Windows debug + cout << "Celeste: Resetting locale" << endl; + // reset locale setlocale(LC_NUMERIC,old_locale); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bl...@us...> - 2008-11-04 11:46:34
|
Revision: 3527 http://hugin.svn.sourceforge.net/hugin/?rev=3527&view=rev Author: blimbo Date: 2008-11-04 11:44:08 +0000 (Tue, 04 Nov 2008) Log Message: ----------- More celeste debug stuff for windows Modified Paths: -------------- hugin/trunk/src/celeste/Celeste.cpp hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp Modified: hugin/trunk/src/celeste/Celeste.cpp =================================================================== --- hugin/trunk/src/celeste/Celeste.cpp 2008-11-03 23:33:29 UTC (rev 3526) +++ hugin/trunk/src/celeste/Celeste.cpp 2008-11-04 11:44:08 UTC (rev 3527) @@ -42,9 +42,6 @@ void get_gabor_response(string& imagefile, unsigned int& mask, string& model_file, double& threshold,string& mask_format,vector<double>& svm_responses){ - // Windows debug stuff - //freopen ("celeste.log","a",stdout); - // Open SVM model file struct svm_model* model; @@ -541,8 +538,6 @@ free(gabor_responses); free(prob_estimates); svm_destroy_model(model); - - // Windows debug end - //fclose (stdout); + } Modified: hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2008-11-03 23:33:29 UTC (rev 3526) +++ hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2008-11-04 11:44:08 UTC (rev 3527) @@ -2118,12 +2118,15 @@ void CPEditorPanel::OnCelesteButton(wxCommandEvent & e) { + // Windows debug stuff + freopen ("celeste.log","a",stdout); + cout << "Celeste: In subroutine.." << endl; + printf ("Celeste: In subroutine printf..\n"); + if (currentPoints.size() == 0) { DEBUG_WARN("Cannot run celeste without at least one point"); + cout << "Celeste: Cannot run celeste without at least one point" << endl; }else{ - - // Windows debug stuff - freopen ("celeste.log","a",stdout); // Windows debug end cout << "Celeste: Setting locale" << endl; @@ -2204,14 +2207,8 @@ // Windows debug cout << "Celeste: Running get_gabor_response function" << endl; - // Windows debug end - //fclose (stdout); - get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses); - // Windows debug stuff - //freopen ("celeste.log","a",stdout); - // Windows debug cout << "Celeste: Finished running get_gabor_response function" << endl; @@ -2250,10 +2247,12 @@ // reset locale setlocale(LC_NUMERIC,old_locale); - - // Windows debug end - fclose (stdout); + } + + // Windows debug end + fclose (stdout); + } FDiff2D CPEditorPanel::LocalFineTunePoint(unsigned int srcNr, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bl...@us...> - 2008-11-08 15:29:16
|
Revision: 3534 http://hugin.svn.sourceforge.net/hugin/?rev=3534&view=rev Author: blimbo Date: 2008-11-08 15:29:13 +0000 (Sat, 08 Nov 2008) Log Message: ----------- Even more wxmessage boxes for windows debugging Modified Paths: -------------- hugin/trunk/src/celeste/CMakeLists.txt hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp Added Paths: ----------- hugin/trunk/src/celeste/CelesteDebug.cpp hugin/trunk/src/celeste/CelesteDebug.h Modified: hugin/trunk/src/celeste/CMakeLists.txt =================================================================== --- hugin/trunk/src/celeste/CMakeLists.txt 2008-11-08 04:53:14 UTC (rev 3533) +++ hugin/trunk/src/celeste/CMakeLists.txt 2008-11-08 15:29:13 UTC (rev 3534) @@ -2,6 +2,20 @@ # Linux and Apple are both OK without # Set this up here +include_directories( ../hugin1 ) + +SET(wxWidgets_USE_LIBS base core xrc html xml adv gl) +FIND_PACKAGE(wxWidgets REQUIRED) +IF(NOT wxWidgets_FOUND) + MESSAGE("wxWidgets was not found, GUI programs (hugin, nona_gui) disabled") +ENDIF(NOT wxWidgets_FOUND) + +# build gui only if wxWidgets was found +IF(wxWidgets_FOUND) + # message("Found wxWidgets") + INCLUDE(${wxWidgets_USE_FILE}) +ENDIF(wxWidgets_FOUND) + IF(WIN32) ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/Config.h @@ -25,6 +39,8 @@ CelesteGlobals.h Celeste.cpp Celeste.h +CelesteDebug.cpp +CelesteDebug.h Config.h ContrastFilter.cpp ContrastFilter.h @@ -50,17 +66,19 @@ IF (${HUGIN_SHARED_LIBS}) # messages are quite obtrusive in windows cmakesetup.exe IF (NOT WIN32) - message("Using these CMAKE_CXX_FLAGS : ${CMAKE_CXX_FLAGS}") + #message("Using these CMAKE_CXX_FLAGS : ${CMAKE_CXX_FLAGS}") ENDIF (NOT WIN32) ADD_LIBRARY(celeste SHARED ${CELESTE_SRC}) + TARGET_LINK_LIBRARIES(celeste huginbasewx ${wxWidgets_LIBRARIES} ${common_libs}) set_target_properties(celeste PROPERTIES VERSION ${HUGIN_LIB_VERSION}) install(TARGETS celeste DESTINATION ${LIBDIR}) ELSE (${HUGIN_SHARED_LIBS}) # messages are quite obtrusive in windows cmakesetup.exe IF (NOT WIN32) - message("Using these CMAKE_CXX_FLAGS : ${CMAKE_CXX_FLAGS}") - ENDIF (NOT WIN32) + #message("Using these CMAKE_CXX_FLAGS : ${CMAKE_CXX_FLAGS}") + ENDIF (NOT WIN32) ADD_LIBRARY(celeste STATIC ${CELESTE_SRC}) + TARGET_LINK_LIBRARIES(celeste huginbasewx ${wxWidgets_LIBRARIES} ${common_libs}) set_target_properties(celeste PROPERTIES VERSION ${HUGIN_LIB_VERSION}) ENDIF (${HUGIN_SHARED_LIBS}) Added: hugin/trunk/src/celeste/CelesteDebug.cpp =================================================================== --- hugin/trunk/src/celeste/CelesteDebug.cpp (rev 0) +++ hugin/trunk/src/celeste/CelesteDebug.cpp 2008-11-08 15:29:13 UTC (rev 3534) @@ -0,0 +1,584 @@ +/*************************************************************************** + * Copyright (C) 2008 by Tim Nugent * + * tim...@gm... * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include <iostream> +#include "vigra/stdimage.hxx" +#include "vigra/resizeimage.hxx" +#include "vigra/impex.hxx" +#include "vigra/colorconversions.hxx" +#include <sys/types.h> +#include <sys/stat.h> +#include <stdlib.h> +#include <string> +#include <vector> +#include "Gabor.h" +#include "Utilities.h" +#include "CelesteGlobals.h" +#include "svm.h" +#include <stdio.h> + +#include "panoinc_WX.h" + +#include "panoinc.h" + +#include "base_wx/platform.h" + + +using namespace vigra; +using namespace std; + +typedef vigra::BRGBImage::PixelType RGB; + +void get_gabor_response_debug(string& imagefile, unsigned int& mask, string& model_file, double& threshold,string& +mask_format,vector<double>& svm_responses){ + + wxMessageBox(wxString::Format(_("Celeste: Entered get_gabor_response")), _("Celeste"), wxICON_EXCLAMATION); + + // Open SVM model file + struct svm_model* model; + + if((model = svm_load_model(model_file.c_str())) == 0){ + cout << "Couldn't load model file '" << model_file << "'" << endl << endl; + for (int j = 0; j < gNumLocs; j++){ + svm_responses.push_back(0); + } + return; + }else{ + //cout << "Loaded model file " << model_file << endl; + } + + wxMessageBox(wxString::Format(_("Celeste: Loaded model")), _("Celeste"), wxICON_EXCLAMATION); + + // Integers and containers for libsvm + int nr_class=svm_get_nr_class(model); + int max_nr_attr = 56; + struct svm_node *gabor_responses = (struct svm_node *) malloc(max_nr_attr*sizeof(struct svm_node)); + double *prob_estimates = (double *) malloc(nr_class*sizeof(double)); + + // Open image using Vigra + try{ + + cout << "Generating feature vector by Gabor filtering..." << endl; + cout << "Opening image file:\t" << imagefile << endl; + + // Read image given as first argument + // File type is determined automatically + vigra::ImageImportInfo info(imagefile.c_str()); + + // Create RGB images of appropriate size + vigra::FRGBImage in(info.width(), info.height()); + + // Import the image + importImage(info, destImage(in)); + + wxMessageBox(wxString::Format(_("Celeste: Imported image")), _("Celeste"), wxICON_EXCLAMATION); + + // Max dimension + double sizefactor = 1; + int nw = info.width(), nh = info.height(); + + // In case we want to save filters + // Create this directory and change option in Globals.cpp + char basename[] = "gabor_filters/celeste"; + + if (info.width() >= info.height()){ + if (resize_dimension >= info.width() ){ + resize_dimension = info.width(); + } + }else{ + if (resize_dimension >= info.height()){ + resize_dimension = info.height(); + } + } + //cout << "Re-size dimenstion:\t" << resize_dimension << endl; + + cout << "Image dimensions:\t" << info.width() << " x " << info.height() << endl; + + // Re-size to max dimension + if (info.width() > resize_dimension || info.height() > resize_dimension){ + + if (info.width() >= info.height()){ + + + sizefactor = (double)resize_dimension/info.width(); + + // calculate new image size + nw = resize_dimension; + nh = static_cast<int>(0.5 + (sizefactor*info.height())); + + }else{ + sizefactor = (double)resize_dimension/info.height(); + + + // calculate new image size + nw = static_cast<int>(0.5 + (sizefactor*info.width())); + nh = resize_dimension; + + } + + cout << "Scaling by:\t\t" << sizefactor << endl; + cout << "New dimensions:\t\t" << nw << " x " << nh << endl; + + // create a RGB image of appropriate size + vigra::FRGBImage out(nw, nh); + + // resize the image, using a bi-cubic spline algorithm + resizeImageNoInterpolation(srcImageRange(in),destImageRange(out)); + + in = out; + + wxMessageBox(wxString::Format(_("Celeste: Re-sized image")), _("Celeste"), wxICON_EXCLAMATION); + + } + + // Convert to LUV colour space + FRGBImage luv(in.width(),in.height()); + transformImage(srcImageRange(in), destImage(luv), RGBPrime2LuvFunctor<double>() ); + + // Prepare Gabor API array + float *frameBuf = new float[in.width()*in.height()]; + float *u_values = new float[in.width()*in.height()]; + float *v_values = new float[in.width()*in.height()]; + float** pixels = CreateMatrix( (float)0, in.height(), in.width() ); + + wxMessageBox(wxString::Format(_("Celeste: Getting L channel values")), _("Celeste"), wxICON_EXCLAMATION); + + // Do something with each pixel... + unsigned int counter = 0; + vigra::FRGBImage::iterator img_iter(luv.begin()),end(luv.end()); + for(; img_iter != end; ++img_iter) { + + // [0] is L, [1] is U, [2] is V + // We only want L for Gabor filtering + frameBuf[counter] = (*img_iter)[0]; + + u_values[counter] = (*img_iter)[1]; + v_values[counter] = (*img_iter)[2]; + + //cout << "Pixel " << counter << " - L: " << (*img_iter)[0] << endl; + //cout << "Pixel " << counter << " - U: " << (*img_iter)[1] << endl; + //cout << "Pixel " << counter << " - V: " << (*img_iter)[2] << endl; + counter++; + } + + wxMessageBox(wxString::Format(_("Celeste: Preparing framebuf")), _("Celeste"), wxICON_EXCLAMATION); + + // Prepare framebuf for Gabor API + unsigned int k = 0; + for (int i = 0; i < in.height(); i++ ){ + for (int j = 0; j < in.width(); j++ ){ + pixels[i][j] = frameBuf[k]; + //cout << i << " " << j << " = " << k << " - " << frameBuf[k] << endl; + k++; + } + } + + wxMessageBox(wxString::Format(_("Celeste: Processing locations")), _("Celeste"), wxICON_EXCLAMATION); + + if (gNumLocs){ + + float *response = NULL; + int len = 0; + + wxMessageBox(wxString::Format(_("Celeste: Scaling CPs")), _("Celeste"), wxICON_EXCLAMATION); + + // Scale control points by sizefactor + for (int j = 0; j < gNumLocs; j++){ + + + //cout << sizefactor << ": " << gLocations[j][0] << "," << gLocations[j][1] << " ---> "; + gLocations[j][0] = int(gLocations[j][0] * sizefactor); + gLocations[j][1] = int(gLocations[j][1] * sizefactor); + //cout << gLocations[j][0] << "," << gLocations[j][1] << endl; + + // Move CPs to border if the filter radius is out of bounds + if (gLocations[j][0] <= gRadius){ + //cout << "Moving CP to border" << endl; + gLocations[j][0] = gRadius + 1; + } + if (gLocations[j][1] <= gRadius){ + //cout << "Moving CP to border" << endl; + gLocations[j][1] = gRadius + 1; + } + if (gLocations[j][0] >= nw - gRadius){ + //cout << "Moving CP to border" << endl; + gLocations[j][0] = nw - gRadius - 1; + } + if (gLocations[j][1] >= nh - gRadius){ + //cout << "Moving CP to border" << endl; + gLocations[j][1] = nh - gRadius - 1; + } + } + + wxMessageBox(wxString::Format(_("Celeste: Gabor filtering")), _("Celeste"), wxICON_EXCLAMATION); + + // Do Gabor filtering + response = ProcessChannel( pixels, in.height(), in.width(), response, &len, basename ); + + // Turn the response into SVM vector, and add colour features + int vector_length = (int)len/gNumLocs; + + for (int j = 0; j < gNumLocs; j++){ + + wxMessageBox(wxString::Format(_("Celeste: Processing CP %d"),j), _("Celeste"), wxICON_EXCLAMATION); + + int pixel_number = gLocations[j][0] + (in.width() * (gLocations[j][1] - 1)) - 1; + unsigned int feature = 1; + double score = 0; + + //cout << "0 "; + for ( int v = (j * vector_length); v < ((j + 1) * vector_length); v++){ + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = response[v]; + //cout << feature << ":" << response[v] << " "; + feature++; + } + + // Work out average colour - U + V channels + float u_sum = 0, v_sum = 0; + unsigned int pixels_in_region = (gRadius * 2)*(gRadius * 2); + + for (int t = 1 - gRadius; t <= gRadius; t++){ + + unsigned int this_y_pixel = pixel_number + (t * in.width()); + + for (int r = 1 - gRadius; r <= gRadius; r++){ + + unsigned int this_x_pixel = this_y_pixel + r; + u_sum += u_values[this_x_pixel]; + v_sum += v_values[this_x_pixel]; + } + } + + + float u_ave = (float)u_sum/pixels_in_region; + float v_ave = (float)v_sum/pixels_in_region; + + // Now work out standard deviation for U and V channels + u_sum = 0, v_sum = 0; + + for (int t = 1 - gRadius; t <= gRadius; t++){ + + unsigned int this_y_pixel = pixel_number + (t * in.width()); + + for (int r = 1 - gRadius; r <= gRadius; r++){ + + unsigned int this_x_pixel = this_y_pixel + r; + + u_sum += pow(u_values[this_x_pixel]-u_ave,2); + v_sum += pow(v_values[this_x_pixel]-v_ave,2); + + } + } + + + float std_u = sqrt(u_sum/(pixels_in_region-1)); + float std_v = sqrt(v_sum/(pixels_in_region-1)); + + // Add these colour features to feature vector + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = u_ave; + //cout << feature << ":" << u_ave << " "; + feature++; + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = std_u; + //cout << feature << ":" << std_u << " "; + feature++; + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = v_ave; + //cout << feature << ":" << v_ave << " "; + feature++; + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = std_v; + //cout << feature << ":" << std_v << " "; + feature++; + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = u_values[pixel_number]; + //cout << feature << ":" << u_values[pixel_number] << " "; + feature++; + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = v_values[pixel_number]; + //cout << feature << ":" << v_values[pixel_number] << " " << endl; + gabor_responses[feature].index = -1; + + score = svm_predict_probability(model,gabor_responses,prob_estimates); + //cout << score << " " << prob_estimates[0] << endl; + + wxMessageBox(wxString::Format(_("Celeste: Getting SVM response")), _("Celeste"), wxICON_EXCLAMATION); + + svm_responses.push_back(prob_estimates[0]); + + wxMessageBox(wxString::Format(_("Celeste: CP classified")), _("Celeste"), wxICON_EXCLAMATION); + + + } + + delete[] response; + } + + wxMessageBox(wxString::Format(_("Celeste: All done. Enter masking?")), _("Celeste"), wxICON_EXCLAMATION); + + // Create mask + if (mask){ + + // Create mask file name + string mask_name = (""); + if (imagefile.substr(imagefile.length()-4,1) == (".")){ + + mask_name.append(imagefile.substr(0,imagefile.length()-4)); + + }else{ + + mask_name.append(imagefile.substr(0,imagefile.length()-4)); + } + mask_name.append("_mask."); + mask_name.append(mask_format); + + cout << "Generating mask:\t" << mask_name << endl; + // Create mask of same dimensions + vigra::BRGBImage mask_out(nw, nh); + + // Set mask to white + vigra::initImage(srcIterRange(mask_out.upperLeft(), + mask_out.upperLeft() + vigra::Diff2D(nw,nh)), + RGB(255,255,255) ); + + float *mask_response = NULL; + gLocations = NULL; + gNumLocs = 0; + + // Create grid of fiducial points + for (int i = gRadius; i < in.height() - gRadius; i += spacing ){ + for (int j = gRadius; j < in.width() - gRadius; j += spacing ){ + gNumLocs++; + } + // Add extra FP at the end of each row in case nw % gRadius + gNumLocs++; + } + + // Add extra FP at the end of each row in case nh % gRadius + for (int j = gRadius; j < in.width() - gRadius; j += spacing ){ + gNumLocs++; + } + + // Create the storage matrix + gLocations = CreateMatrix( (int)0, gNumLocs, 2); + gNumLocs = 0; + for (int i = gRadius; i < in.height() - gRadius; i += spacing ){ + for (int j = gRadius; j < in.width() - gRadius; j += spacing ){ + + gLocations[gNumLocs][0] = j; + gLocations[gNumLocs][1] = i; + //cout << "fPoint " << gNumLocs << ":\t" << i << " " << j << endl; + gNumLocs++; + } + + // Add extra FP at the end of each row in case nw % spacing + if (nw % spacing){ + + gLocations[gNumLocs][0] = nw - gRadius - 1; + gLocations[gNumLocs][1] = i; + //cout << "efPoint " << gNumLocs << ":\t" << i << " " << nw - gRadius - 1 << endl; + gNumLocs++; + } + + } + + // Add extra FP at the end of each row in case nh % spacing + if (nh % spacing){ + + for (int j = gRadius; j < in.width() - gRadius; j += spacing ){ + + gLocations[gNumLocs][0] = j; + gLocations[gNumLocs][1] = nh - gRadius - 1; + //cout << "efPoint " << gNumLocs << ":\t" << nh - gRadius - 1 << " " << j << endl; + gNumLocs++; + + } + } + + //cout << "Total FPs:\t" << gNumLocs << endl; + + int len = 0; + //cout << "Pre-response " << in.height() << ","<< in.width() << endl; + mask_response = ProcessChannel( pixels, in.height(), in.width(), mask_response, &len, basename ); + //cout << "Post-response" << endl; + + // Turn the response into SVM vector, and add colour features + + int vector_length = (int)len/gNumLocs; + + for ( int j = 0; j < gNumLocs; j++ ){ + + //cout << j << ":"<<endl; + + unsigned int pixel_number = gLocations[j][0] + (in.width() * (gLocations[j][1] - 1)) - 1; + unsigned int feature = 1; + double score = 0; + + // need one more for index = -1 + if(j >= max_nr_attr - 1){ + max_nr_attr *= 2; + gabor_responses = (struct svm_node *) realloc(gabor_responses,max_nr_attr*sizeof(struct svm_node)); + } + + + for ( int v = (j * vector_length); v < ((j + 1) * vector_length); v++){ + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = mask_response[v]; + //cout << feature << ":" << mask_response[v] << " "; + feature++; + } + + // Work out average colour - U + V channels + float u_sum = 0, v_sum = 0; + int pixels_in_region = (gRadius * 2)*(gRadius * 2); + + for (int t = 1 - gRadius; t <= gRadius; t++){ + + unsigned int this_y_pixel = pixel_number + (t * in.width()); + + for (int r = 1 - gRadius; r <= gRadius; r++){ + + unsigned int this_x_pixel = this_y_pixel + r; + + u_sum += u_values[this_x_pixel]; + v_sum += v_values[this_x_pixel]; + + } + } + + float u_ave = (float)u_sum/pixels_in_region; + float v_ave = (float)v_sum/pixels_in_region; + + // Now work out standard deviation for U and V channels + u_sum = 0, v_sum = 0; + + for (int t = 1 - gRadius; t <= gRadius; t++){ + + unsigned int this_y_pixel = pixel_number + (t * in.width()); + + for (int r = 1 - gRadius; r <= gRadius; r++){ + + unsigned int this_x_pixel = this_y_pixel + r; + + u_sum += pow(u_values[this_x_pixel]-u_ave,2); + v_sum += pow(v_values[this_x_pixel]-v_ave,2); + + } + } + + float std_u = sqrt(u_sum/(pixels_in_region-1)); + float std_v = sqrt(v_sum/(pixels_in_region-1)); + + // Add these colour features to feature vector + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = u_ave; + //cout << feature << ":" << u_ave << " "; + feature++; + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = std_u; + //cout << feature << ":" << std_u << " "; + feature++; + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = v_ave; + //cout << feature << ":" << v_ave << " "; + feature++; + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = std_v; + //cout << feature << ":" << std_v << " "; + feature++; + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = u_values[pixel_number]; + //cout << feature << ":" << u_values[pixel_number] << " "; + feature++; + gabor_responses[feature-1].index = feature; + gabor_responses[feature-1].value = v_values[pixel_number]; + //cout << feature << ":" << v_values[pixel_number] << " " << endl; + gabor_responses[feature].index = -1; + + score = svm_predict_probability(model,gabor_responses,prob_estimates); + //cout << score << " " << prob_estimates[0] << endl; + + if (prob_estimates[0] >= threshold){ + + //cout << "Cloud\t\t(score " << m.classify(feature_vector.c_str()) << " > " << threshold << ")" << endl; + + unsigned int sub_x0 = gLocations[j][0] - gRadius; + unsigned int sub_y0 = gLocations[j][1] - gRadius; + unsigned int sub_x1 = gLocations[j][0] + gRadius + 1; + unsigned int sub_y1 = gLocations[j][1] + gRadius + 1; + + //cout << sub_x0 << ","<< sub_y0 << " - " << sub_x1 << "," << sub_y1 << endl; + + // Set region to black + vigra::initImage(srcIterRange(mask_out.upperLeft() + vigra::Diff2D(sub_x0, sub_y0), + mask_out.upperLeft() + vigra::Diff2D(sub_x1, sub_y1)), + RGB(0,0,0) ); + + }else{ + //cout << "Non-cloud\t(score " << m.classify(feature_vector.c_str()) << " <= " << threshold << ")" << endl; + + } + //cout << feature_vector << endl; + + } + + delete [] mask_response; + + // Re-size mask to match original image + vigra::BRGBImage mask_resize(info.width(),info.height()); + resizeImageNoInterpolation(srcImageRange(mask_out),destImageRange(mask_resize)); + exportImage(srcImageRange(mask_resize), ImageExportInfo(mask_name.c_str()).setPixelType("UINT8")); + + } + + wxMessageBox(wxString::Format(_("Celeste: Clean up 1")), _("Celeste"), wxICON_EXCLAMATION); + + + DisposeMatrix( pixels, in.height() ); + delete[] frameBuf; + delete[] u_values; + delete[] v_values; + gNumLocs = 0; + cout << endl; + + }catch (vigra::StdException & e){ + + // catch any errors that might have occured and print their reason + cout << "Unable to open file:\t" << imagefile << endl << endl; + cout << e.what() << endl << endl; + for (int j = 0; j < gNumLocs; j++){ + svm_responses.push_back(0); + } + return; + + } + + wxMessageBox(wxString::Format(_("Celeste: Clean up 2")), _("Celeste"), wxICON_EXCLAMATION); + + + // Free up libsvm stuff + free(gabor_responses); + free(prob_estimates); + svm_destroy_model(model); + +} + Added: hugin/trunk/src/celeste/CelesteDebug.h =================================================================== --- hugin/trunk/src/celeste/CelesteDebug.h (rev 0) +++ hugin/trunk/src/celeste/CelesteDebug.h 2008-11-08 15:29:13 UTC (rev 3534) @@ -0,0 +1,13 @@ +#ifndef __CELESTEDEBUG__ +#define __CELESTEDEBUG__ + +#include "svm.h" +#include <string> +#include <vector> + +using namespace std; + +void get_gabor_response_debug(string&,unsigned int&,string&,double&,string&,vector<double>&); + +#endif + Modified: hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2008-11-08 04:53:14 UTC (rev 3533) +++ hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2008-11-08 15:29:13 UTC (rev 3534) @@ -53,7 +53,7 @@ #include "vigra_ext/Correlation.h" // Celeste header -#include "Celeste.h" +#include "CelesteDebug.h" #include "CelesteGlobals.h" #include "Utilities.h" #include <stdio.h> @@ -2119,9 +2119,9 @@ { // Windows debug stuff - freopen ("celeste.log","a",stdout); - cout << "Celeste: In subroutine.." << endl; - printf ("Celeste: In subroutine printf..\n"); + //freopen ("celeste.log","a",stdout); + //cout << "Celeste: In subroutine.." << endl; + //printf ("Celeste: In subroutine printf..\n"); if (currentPoints.size() == 0) { DEBUG_WARN("Cannot run celeste without at least one point"); @@ -2130,7 +2130,7 @@ // Windows debug end //cout << "Celeste: Setting locale" << endl; - wxMessageBox(wxString::Format(_("Celeste: Setting locale")), _("Celeste"), wxICON_EXCLAMATION, this); + //wxMessageBox(wxString::Format(_("Celeste: Setting locale")), _("Celeste"), wxICON_EXCLAMATION, this); // set numeric locale to C, for correct number output char * old_locale = setlocale(LC_NUMERIC,NULL); @@ -2140,7 +2140,7 @@ // Windows debug //cout << "Celeste: Creating storage matrix" << endl; - wxMessageBox(wxString::Format(_("Celeste: Creating storage matrix")), _("Celeste"), wxICON_EXCLAMATION, this); + //wxMessageBox(wxString::Format(_("Celeste: Creating storage matrix")), _("Celeste"), wxICON_EXCLAMATION, this); // Create the storage matrix gNumLocs = currentPoints.size(); @@ -2157,13 +2157,13 @@ glocation_counter++; //cout << "Celeste: Creating storage matrix" << endl; - wxMessageBox(wxString::Format(_("Celeste: Loading CP into matrix")), _("Celeste"), wxICON_EXCLAMATION, this); + //wxMessageBox(wxString::Format(_("Celeste: Loading CP into matrix")), _("Celeste"), wxICON_EXCLAMATION, this); } // Windows debug //cout << "Celeste: Storage matrix filled" << endl; - wxMessageBox(wxString::Format(_("Celeste: Storage matrix filled")), _("Celeste"), wxICON_EXCLAMATION, this); + //wxMessageBox(wxString::Format(_("Celeste: Storage matrix filled")), _("Celeste"), wxICON_EXCLAMATION, this); // Get Celeste paramaters @@ -2194,7 +2194,7 @@ // Windows debug //cout << "Celeste: Checking model file exists" << endl; - wxMessageBox(wxString::Format(_("Celeste: Checking model file exists")), _("Celeste"), wxICON_EXCLAMATION, this); + //wxMessageBox(wxString::Format(_("Celeste: Checking model file exists")), _("Celeste"), wxICON_EXCLAMATION, this); // SVM model file if (! wxFile::Exists(wxString::FromAscii(buf)) ) { @@ -2215,14 +2215,16 @@ // Windows debug //cout << "Celeste: Running get_gabor_response function" << endl; - wxMessageBox(wxString::Format(_("Celeste: Running get_gabor_response function")), _("Celeste"), wxICON_EXCLAMATION, this); + //wxMessageBox(wxString::Format(_("Celeste: Running get_gabor_response function")), _("Celeste"), wxICON_EXCLAMATION, this); - get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses); + //get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses); + get_gabor_response_debug(imagefile,mask,modelfile,threshold,mask_format,svm_responses); + // Windows debug //cout << "Celeste: Finished running get_gabor_response function" << endl; - wxMessageBox(wxString::Format(_("Celeste: Finished running get_gabor_response function")), _("Celeste"), wxICON_EXCLAMATION, this); + //wxMessageBox(wxString::Format(_("Celeste: Finished running get_gabor_response function")), _("Celeste"), wxICON_EXCLAMATION, this); // Print SVM results unsigned int removed = 0; @@ -2232,7 +2234,7 @@ // Windows debug //cout << "Celeste: Removing CPs" << endl; - wxMessageBox(wxString::Format(_("Celeste: Removing CPs")), _("Celeste"), wxICON_EXCLAMATION, this); + //wxMessageBox(wxString::Format(_("Celeste: Removing CPs")), _("Celeste"), wxICON_EXCLAMATION, this); unsigned int pNr = localPNr2GlobalPNr((c - removed)); DEBUG_DEBUG("about to delete point " << pNr); @@ -2247,7 +2249,7 @@ // Windows debug //cout << "Celeste: Finished removing CPs" << endl; - wxMessageBox(wxString::Format(_("Celeste: Finished removing CPs")), _("Celeste"), wxICON_EXCLAMATION, this); + //wxMessageBox(wxString::Format(_("Celeste: Finished removing CPs")), _("Celeste"), wxICON_EXCLAMATION, this); wxMessageBox(wxString::Format(_("Finished running Celeste.\n%d cloud-like control points removed."), removed), _("Celeste"), wxICON_EXCLAMATION, this); @@ -2257,7 +2259,7 @@ MainFrame::Get()->SetStatusText(_(""),0); // Windows debug - cout << "Celeste: Resetting locale" << endl; + //cout << "Celeste: Resetting locale" << endl; // reset locale setlocale(LC_NUMERIC,old_locale); @@ -2265,7 +2267,7 @@ } // Windows debug end - fclose (stdout); + //fclose (stdout); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bl...@us...> - 2008-11-12 12:55:01
|
Revision: 3545 http://hugin.svn.sourceforge.net/hugin/?rev=3545&view=rev Author: blimbo Date: 2008-11-12 12:54:54 +0000 (Wed, 12 Nov 2008) Log Message: ----------- Removed debug code, saved celeste model file as DOS format Modified Paths: -------------- hugin/trunk/src/celeste/CMakeLists.txt hugin/trunk/src/celeste/data/celeste.model hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp Removed Paths: ------------- hugin/trunk/src/celeste/CelesteDebug.cpp hugin/trunk/src/celeste/CelesteDebug.h Modified: hugin/trunk/src/celeste/CMakeLists.txt =================================================================== --- hugin/trunk/src/celeste/CMakeLists.txt 2008-11-11 19:02:21 UTC (rev 3544) +++ hugin/trunk/src/celeste/CMakeLists.txt 2008-11-12 12:54:54 UTC (rev 3545) @@ -2,20 +2,6 @@ # Linux and Apple are both OK without # Set this up here -include_directories( ../hugin1 ) - -SET(wxWidgets_USE_LIBS base core xrc html xml adv gl) -FIND_PACKAGE(wxWidgets REQUIRED) -IF(NOT wxWidgets_FOUND) - MESSAGE("wxWidgets was not found, GUI programs (hugin, nona_gui) disabled") -ENDIF(NOT wxWidgets_FOUND) - -# build gui only if wxWidgets was found -IF(wxWidgets_FOUND) - # message("Found wxWidgets") - INCLUDE(${wxWidgets_USE_FILE}) -ENDIF(wxWidgets_FOUND) - IF(WIN32) ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/Config.h @@ -39,8 +25,6 @@ CelesteGlobals.h Celeste.cpp Celeste.h -CelesteDebug.cpp -CelesteDebug.h Config.h ContrastFilter.cpp ContrastFilter.h @@ -69,7 +53,7 @@ #message("Using these CMAKE_CXX_FLAGS : ${CMAKE_CXX_FLAGS}") ENDIF (NOT WIN32) ADD_LIBRARY(celeste SHARED ${CELESTE_SRC}) - TARGET_LINK_LIBRARIES(celeste huginbasewx ${wxWidgets_LIBRARIES} ${common_libs}) + TARGET_LINK_LIBRARIES(celeste huginbasewx ${common_libs}) set_target_properties(celeste PROPERTIES VERSION ${HUGIN_LIB_VERSION}) install(TARGETS celeste DESTINATION ${LIBDIR}) ELSE (${HUGIN_SHARED_LIBS}) @@ -78,7 +62,7 @@ #message("Using these CMAKE_CXX_FLAGS : ${CMAKE_CXX_FLAGS}") ENDIF (NOT WIN32) ADD_LIBRARY(celeste STATIC ${CELESTE_SRC}) - TARGET_LINK_LIBRARIES(celeste huginbasewx ${wxWidgets_LIBRARIES} ${common_libs}) + TARGET_LINK_LIBRARIES(celeste huginbasewx ${common_libs}) set_target_properties(celeste PROPERTIES VERSION ${HUGIN_LIB_VERSION}) ENDIF (${HUGIN_SHARED_LIBS}) Deleted: hugin/trunk/src/celeste/CelesteDebug.cpp =================================================================== --- hugin/trunk/src/celeste/CelesteDebug.cpp 2008-11-11 19:02:21 UTC (rev 3544) +++ hugin/trunk/src/celeste/CelesteDebug.cpp 2008-11-12 12:54:54 UTC (rev 3545) @@ -1,584 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2008 by Tim Nugent * - * tim...@gm... * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -#include <iostream> -#include "vigra/stdimage.hxx" -#include "vigra/resizeimage.hxx" -#include "vigra/impex.hxx" -#include "vigra/colorconversions.hxx" -#include <sys/types.h> -#include <sys/stat.h> -#include <stdlib.h> -#include <string> -#include <vector> -#include "Gabor.h" -#include "Utilities.h" -#include "CelesteGlobals.h" -#include "svm.h" -#include <stdio.h> - -#include "panoinc_WX.h" - -#include "panoinc.h" - -#include "base_wx/platform.h" -#include <wx/string.h> - -using namespace vigra; -using namespace std; - -typedef vigra::BRGBImage::PixelType RGB; - -void get_gabor_response_debug(string& imagefile, unsigned int& mask, string& model_file, double& threshold,string& -mask_format,vector<double>& svm_responses){ - - wxMessageBox(wxString::Format(_("Celeste: Entered get_gabor_response")), _("Celeste"), wxICON_EXCLAMATION); - - // Open SVM model file - struct svm_model* model; - - if((model = svm_load_model(model_file.c_str())) == 0){ - cout << "Couldn't load model file '" << model_file << "'" << endl << endl; - for (int j = 0; j < gNumLocs; j++){ - svm_responses.push_back(0); - } - return; - }else{ - //cout << "Loaded model file " << model_file << endl; - } - - wxMessageBox(wxString::Format(_("Celeste: Loaded model")), _("Celeste"), wxICON_EXCLAMATION); - - // Integers and containers for libsvm - int nr_class=svm_get_nr_class(model); - int max_nr_attr = 56; - struct svm_node *gabor_responses = (struct svm_node *) malloc(max_nr_attr*sizeof(struct svm_node)); - double *prob_estimates = (double *) malloc(nr_class*sizeof(double)); - - // Open image using Vigra - try{ - - cout << "Generating feature vector by Gabor filtering..." << endl; - cout << "Opening image file:\t" << imagefile << endl; - - // Read image given as first argument - // File type is determined automatically - vigra::ImageImportInfo info(imagefile.c_str()); - - // Create RGB images of appropriate size - vigra::FRGBImage in(info.width(), info.height()); - - // Import the image - importImage(info, destImage(in)); - - wxMessageBox(wxString::Format(_("Celeste: Imported image")), _("Celeste"), wxICON_EXCLAMATION); - - // Max dimension - double sizefactor = 1; - int nw = info.width(), nh = info.height(); - - // In case we want to save filters - // Create this directory and change option in Globals.cpp - char basename[] = "gabor_filters/celeste"; - - if (info.width() >= info.height()){ - if (resize_dimension >= info.width() ){ - resize_dimension = info.width(); - } - }else{ - if (resize_dimension >= info.height()){ - resize_dimension = info.height(); - } - } - //cout << "Re-size dimenstion:\t" << resize_dimension << endl; - - cout << "Image dimensions:\t" << info.width() << " x " << info.height() << endl; - - // Re-size to max dimension - if (info.width() > resize_dimension || info.height() > resize_dimension){ - - if (info.width() >= info.height()){ - - - sizefactor = (double)resize_dimension/info.width(); - - // calculate new image size - nw = resize_dimension; - nh = static_cast<int>(0.5 + (sizefactor*info.height())); - - }else{ - sizefactor = (double)resize_dimension/info.height(); - - - // calculate new image size - nw = static_cast<int>(0.5 + (sizefactor*info.width())); - nh = resize_dimension; - - } - - cout << "Scaling by:\t\t" << sizefactor << endl; - cout << "New dimensions:\t\t" << nw << " x " << nh << endl; - - // create a RGB image of appropriate size - vigra::FRGBImage out(nw, nh); - - // resize the image, using a bi-cubic spline algorithm - resizeImageNoInterpolation(srcImageRange(in),destImageRange(out)); - - in = out; - - wxMessageBox(wxString::Format(_("Celeste: Re-sized image")), _("Celeste"), wxICON_EXCLAMATION); - - } - - // Convert to LUV colour space - FRGBImage luv(in.width(),in.height()); - transformImage(srcImageRange(in), destImage(luv), RGBPrime2LuvFunctor<double>() ); - - // Prepare Gabor API array - float *frameBuf = new float[in.width()*in.height()]; - float *u_values = new float[in.width()*in.height()]; - float *v_values = new float[in.width()*in.height()]; - float** pixels = CreateMatrix( (float)0, in.height(), in.width() ); - - wxMessageBox(wxString::Format(_("Celeste: Getting L channel values")), _("Celeste"), wxICON_EXCLAMATION); - - // Do something with each pixel... - unsigned int counter = 0; - vigra::FRGBImage::iterator img_iter(luv.begin()),end(luv.end()); - for(; img_iter != end; ++img_iter) { - - // [0] is L, [1] is U, [2] is V - // We only want L for Gabor filtering - frameBuf[counter] = (*img_iter)[0]; - - u_values[counter] = (*img_iter)[1]; - v_values[counter] = (*img_iter)[2]; - - //cout << "Pixel " << counter << " - L: " << (*img_iter)[0] << endl; - //cout << "Pixel " << counter << " - U: " << (*img_iter)[1] << endl; - //cout << "Pixel " << counter << " - V: " << (*img_iter)[2] << endl; - counter++; - } - - wxMessageBox(wxString::Format(_("Celeste: Preparing framebuf")), _("Celeste"), wxICON_EXCLAMATION); - - // Prepare framebuf for Gabor API - unsigned int k = 0; - for (int i = 0; i < in.height(); i++ ){ - for (int j = 0; j < in.width(); j++ ){ - pixels[i][j] = frameBuf[k]; - //cout << i << " " << j << " = " << k << " - " << frameBuf[k] << endl; - k++; - } - } - - wxMessageBox(wxString::Format(_("Celeste: Processing locations")), _("Celeste"), wxICON_EXCLAMATION); - - if (gNumLocs){ - - float *response = NULL; - int len = 0; - - wxMessageBox(wxString::Format(_("Celeste: Scaling CPs")), _("Celeste"), wxICON_EXCLAMATION); - - // Scale control points by sizefactor - for (int j = 0; j < gNumLocs; j++){ - - - //cout << sizefactor << ": " << gLocations[j][0] << "," << gLocations[j][1] << " ---> "; - gLocations[j][0] = int(gLocations[j][0] * sizefactor); - gLocations[j][1] = int(gLocations[j][1] * sizefactor); - //cout << gLocations[j][0] << "," << gLocations[j][1] << endl; - - // Move CPs to border if the filter radius is out of bounds - if (gLocations[j][0] <= gRadius){ - //cout << "Moving CP to border" << endl; - gLocations[j][0] = gRadius + 1; - } - if (gLocations[j][1] <= gRadius){ - //cout << "Moving CP to border" << endl; - gLocations[j][1] = gRadius + 1; - } - if (gLocations[j][0] >= nw - gRadius){ - //cout << "Moving CP to border" << endl; - gLocations[j][0] = nw - gRadius - 1; - } - if (gLocations[j][1] >= nh - gRadius){ - //cout << "Moving CP to border" << endl; - gLocations[j][1] = nh - gRadius - 1; - } - } - - wxMessageBox(wxString::Format(_("Celeste: Gabor filtering")), _("Celeste"), wxICON_EXCLAMATION); - - // Do Gabor filtering - response = ProcessChannel( pixels, in.height(), in.width(), response, &len, basename ); - - // Turn the response into SVM vector, and add colour features - int vector_length = (int)len/gNumLocs; - - for (int j = 0; j < gNumLocs; j++){ - - wxMessageBox(wxString::Format(_("Celeste: Processing CP %d"),j), _("Celeste"), wxICON_EXCLAMATION); - - int pixel_number = gLocations[j][0] + (in.width() * (gLocations[j][1] - 1)) - 1; - unsigned int feature = 1; - double score = 0; - - //cout << "0 "; - for ( int v = (j * vector_length); v < ((j + 1) * vector_length); v++){ - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = response[v]; - //cout << feature << ":" << response[v] << " "; - feature++; - } - - // Work out average colour - U + V channels - float u_sum = 0, v_sum = 0; - unsigned int pixels_in_region = (gRadius * 2)*(gRadius * 2); - - for (int t = 1 - gRadius; t <= gRadius; t++){ - - unsigned int this_y_pixel = pixel_number + (t * in.width()); - - for (int r = 1 - gRadius; r <= gRadius; r++){ - - unsigned int this_x_pixel = this_y_pixel + r; - u_sum += u_values[this_x_pixel]; - v_sum += v_values[this_x_pixel]; - } - } - - - float u_ave = (float)u_sum/pixels_in_region; - float v_ave = (float)v_sum/pixels_in_region; - - // Now work out standard deviation for U and V channels - u_sum = 0, v_sum = 0; - - for (int t = 1 - gRadius; t <= gRadius; t++){ - - unsigned int this_y_pixel = pixel_number + (t * in.width()); - - for (int r = 1 - gRadius; r <= gRadius; r++){ - - unsigned int this_x_pixel = this_y_pixel + r; - - u_sum += pow(u_values[this_x_pixel]-u_ave,2); - v_sum += pow(v_values[this_x_pixel]-v_ave,2); - - } - } - - - float std_u = sqrt(u_sum/(pixels_in_region-1)); - float std_v = sqrt(v_sum/(pixels_in_region-1)); - - // Add these colour features to feature vector - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = u_ave; - //cout << feature << ":" << u_ave << " "; - feature++; - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = std_u; - //cout << feature << ":" << std_u << " "; - feature++; - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = v_ave; - //cout << feature << ":" << v_ave << " "; - feature++; - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = std_v; - //cout << feature << ":" << std_v << " "; - feature++; - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = u_values[pixel_number]; - //cout << feature << ":" << u_values[pixel_number] << " "; - feature++; - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = v_values[pixel_number]; - //cout << feature << ":" << v_values[pixel_number] << " " << endl; - gabor_responses[feature].index = -1; - - score = svm_predict_probability(model,gabor_responses,prob_estimates); - //cout << score << " " << prob_estimates[0] << endl; - - wxMessageBox(wxString::Format(_("Celeste: Getting SVM response")), _("Celeste"), wxICON_EXCLAMATION); - - svm_responses.push_back(prob_estimates[0]); - - wxMessageBox(wxString::Format(_("Celeste: CP classified")), _("Celeste"), wxICON_EXCLAMATION); - - - } - - delete[] response; - } - - wxMessageBox(wxString::Format(_("Celeste: All done. Enter masking?")), _("Celeste"), wxICON_EXCLAMATION); - - // Create mask - if (mask){ - - // Create mask file name - string mask_name = (""); - if (imagefile.substr(imagefile.length()-4,1) == (".")){ - - mask_name.append(imagefile.substr(0,imagefile.length()-4)); - - }else{ - - mask_name.append(imagefile.substr(0,imagefile.length()-4)); - } - mask_name.append("_mask."); - mask_name.append(mask_format); - - cout << "Generating mask:\t" << mask_name << endl; - // Create mask of same dimensions - vigra::BRGBImage mask_out(nw, nh); - - // Set mask to white - vigra::initImage(srcIterRange(mask_out.upperLeft(), - mask_out.upperLeft() + vigra::Diff2D(nw,nh)), - RGB(255,255,255) ); - - float *mask_response = NULL; - gLocations = NULL; - gNumLocs = 0; - - // Create grid of fiducial points - for (int i = gRadius; i < in.height() - gRadius; i += spacing ){ - for (int j = gRadius; j < in.width() - gRadius; j += spacing ){ - gNumLocs++; - } - // Add extra FP at the end of each row in case nw % gRadius - gNumLocs++; - } - - // Add extra FP at the end of each row in case nh % gRadius - for (int j = gRadius; j < in.width() - gRadius; j += spacing ){ - gNumLocs++; - } - - // Create the storage matrix - gLocations = CreateMatrix( (int)0, gNumLocs, 2); - gNumLocs = 0; - for (int i = gRadius; i < in.height() - gRadius; i += spacing ){ - for (int j = gRadius; j < in.width() - gRadius; j += spacing ){ - - gLocations[gNumLocs][0] = j; - gLocations[gNumLocs][1] = i; - //cout << "fPoint " << gNumLocs << ":\t" << i << " " << j << endl; - gNumLocs++; - } - - // Add extra FP at the end of each row in case nw % spacing - if (nw % spacing){ - - gLocations[gNumLocs][0] = nw - gRadius - 1; - gLocations[gNumLocs][1] = i; - //cout << "efPoint " << gNumLocs << ":\t" << i << " " << nw - gRadius - 1 << endl; - gNumLocs++; - } - - } - - // Add extra FP at the end of each row in case nh % spacing - if (nh % spacing){ - - for (int j = gRadius; j < in.width() - gRadius; j += spacing ){ - - gLocations[gNumLocs][0] = j; - gLocations[gNumLocs][1] = nh - gRadius - 1; - //cout << "efPoint " << gNumLocs << ":\t" << nh - gRadius - 1 << " " << j << endl; - gNumLocs++; - - } - } - - //cout << "Total FPs:\t" << gNumLocs << endl; - - int len = 0; - //cout << "Pre-response " << in.height() << ","<< in.width() << endl; - mask_response = ProcessChannel( pixels, in.height(), in.width(), mask_response, &len, basename ); - //cout << "Post-response" << endl; - - // Turn the response into SVM vector, and add colour features - - int vector_length = (int)len/gNumLocs; - - for ( int j = 0; j < gNumLocs; j++ ){ - - //cout << j << ":"<<endl; - - unsigned int pixel_number = gLocations[j][0] + (in.width() * (gLocations[j][1] - 1)) - 1; - unsigned int feature = 1; - double score = 0; - - // need one more for index = -1 - if(j >= max_nr_attr - 1){ - max_nr_attr *= 2; - gabor_responses = (struct svm_node *) realloc(gabor_responses,max_nr_attr*sizeof(struct svm_node)); - } - - - for ( int v = (j * vector_length); v < ((j + 1) * vector_length); v++){ - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = mask_response[v]; - //cout << feature << ":" << mask_response[v] << " "; - feature++; - } - - // Work out average colour - U + V channels - float u_sum = 0, v_sum = 0; - int pixels_in_region = (gRadius * 2)*(gRadius * 2); - - for (int t = 1 - gRadius; t <= gRadius; t++){ - - unsigned int this_y_pixel = pixel_number + (t * in.width()); - - for (int r = 1 - gRadius; r <= gRadius; r++){ - - unsigned int this_x_pixel = this_y_pixel + r; - - u_sum += u_values[this_x_pixel]; - v_sum += v_values[this_x_pixel]; - - } - } - - float u_ave = (float)u_sum/pixels_in_region; - float v_ave = (float)v_sum/pixels_in_region; - - // Now work out standard deviation for U and V channels - u_sum = 0, v_sum = 0; - - for (int t = 1 - gRadius; t <= gRadius; t++){ - - unsigned int this_y_pixel = pixel_number + (t * in.width()); - - for (int r = 1 - gRadius; r <= gRadius; r++){ - - unsigned int this_x_pixel = this_y_pixel + r; - - u_sum += pow(u_values[this_x_pixel]-u_ave,2); - v_sum += pow(v_values[this_x_pixel]-v_ave,2); - - } - } - - float std_u = sqrt(u_sum/(pixels_in_region-1)); - float std_v = sqrt(v_sum/(pixels_in_region-1)); - - // Add these colour features to feature vector - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = u_ave; - //cout << feature << ":" << u_ave << " "; - feature++; - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = std_u; - //cout << feature << ":" << std_u << " "; - feature++; - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = v_ave; - //cout << feature << ":" << v_ave << " "; - feature++; - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = std_v; - //cout << feature << ":" << std_v << " "; - feature++; - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = u_values[pixel_number]; - //cout << feature << ":" << u_values[pixel_number] << " "; - feature++; - gabor_responses[feature-1].index = feature; - gabor_responses[feature-1].value = v_values[pixel_number]; - //cout << feature << ":" << v_values[pixel_number] << " " << endl; - gabor_responses[feature].index = -1; - - score = svm_predict_probability(model,gabor_responses,prob_estimates); - //cout << score << " " << prob_estimates[0] << endl; - - if (prob_estimates[0] >= threshold){ - - //cout << "Cloud\t\t(score " << m.classify(feature_vector.c_str()) << " > " << threshold << ")" << endl; - - unsigned int sub_x0 = gLocations[j][0] - gRadius; - unsigned int sub_y0 = gLocations[j][1] - gRadius; - unsigned int sub_x1 = gLocations[j][0] + gRadius + 1; - unsigned int sub_y1 = gLocations[j][1] + gRadius + 1; - - //cout << sub_x0 << ","<< sub_y0 << " - " << sub_x1 << "," << sub_y1 << endl; - - // Set region to black - vigra::initImage(srcIterRange(mask_out.upperLeft() + vigra::Diff2D(sub_x0, sub_y0), - mask_out.upperLeft() + vigra::Diff2D(sub_x1, sub_y1)), - RGB(0,0,0) ); - - }else{ - //cout << "Non-cloud\t(score " << m.classify(feature_vector.c_str()) << " <= " << threshold << ")" << endl; - - } - //cout << feature_vector << endl; - - } - - delete [] mask_response; - - // Re-size mask to match original image - vigra::BRGBImage mask_resize(info.width(),info.height()); - resizeImageNoInterpolation(srcImageRange(mask_out),destImageRange(mask_resize)); - exportImage(srcImageRange(mask_resize), ImageExportInfo(mask_name.c_str()).setPixelType("UINT8")); - - } - - wxMessageBox(wxString::Format(_("Celeste: Clean up 1")), _("Celeste"), wxICON_EXCLAMATION); - - - DisposeMatrix( pixels, in.height() ); - delete[] frameBuf; - delete[] u_values; - delete[] v_values; - gNumLocs = 0; - cout << endl; - - }catch (vigra::StdException & e){ - - // catch any errors that might have occured and print their reason - cout << "Unable to open file:\t" << imagefile << endl << endl; - cout << e.what() << endl << endl; - for (int j = 0; j < gNumLocs; j++){ - svm_responses.push_back(0); - } - return; - - } - - wxMessageBox(wxString::Format(_("Celeste: Clean up 2")), _("Celeste"), wxICON_EXCLAMATION); - - - // Free up libsvm stuff - free(gabor_responses); - free(prob_estimates); - svm_destroy_model(model); - -} - Deleted: hugin/trunk/src/celeste/CelesteDebug.h =================================================================== --- hugin/trunk/src/celeste/CelesteDebug.h 2008-11-11 19:02:21 UTC (rev 3544) +++ hugin/trunk/src/celeste/CelesteDebug.h 2008-11-12 12:54:54 UTC (rev 3545) @@ -1,13 +0,0 @@ -#ifndef __CELESTEDEBUG__ -#define __CELESTEDEBUG__ - -#include "svm.h" -#include <string> -#include <vector> - -using namespace std; - -void get_gabor_response_debug(string&,unsigned int&,string&,double&,string&,vector<double>&); - -#endif - Modified: hugin/trunk/src/celeste/data/celeste.model =================================================================== --- hugin/trunk/src/celeste/data/celeste.model 2008-11-11 19:02:21 UTC (rev 3544) +++ hugin/trunk/src/celeste/data/celeste.model 2008-11-12 12:54:54 UTC (rev 3545) @@ -1,13572 +1,13574 @@ -svm_type c_svc -kernel_type rbf -gamma 1e-05 -nr_class 2 -total_sv 13561 -rho 0.823739 -label 1 -1 -probA -1.96137 -probB 0.272719 -nr_sv 4357 9204 -SV -1 1:113.536 2:22.632 3:26.4447 4:45.1639 5:45.5912 6:25.2789 7:112.469 8:26.1402 9:28.3032 10:22.8339 11:14.127 12:17.3663 13:94.6087 14:10.5555 15:46.729 16:33.8102 17:1.97867 18:17.9705 19:81.1719 20:1.04815 21:33.9231 22:8.23855 23:17.4694 24:7.15891 25:71.3087 26:44.8404 27:32.7466 28:47.7732 29:5.76342 30:3.70073 31:61.7801 32:39.5802 33:5.76824 34:9.2565 35:14.576 36:9.04265 37:65.0054 38:8.22992 39:12.2539 40:18.0426 41:16.8896 42:13.0087 43:88.7572 44:31.0641 45:25.532 46:14.5006 47:8.58949 48:12.2478 49:-5.68331 50:7.04014 51:-32.8546 52:12.3891 53:-8.22254 54:-39.2079 -1 1:26.4923 2:19.0928 3:24.6815 4:13.0368 5:31.5955 6:3.10012 7:30.2336 8:17.7457 9:44.9675 10:26.679 11:7.78434 12:8.8687 13:29.0249 14:25.3374 15:44.9996 16:21.5575 17:7.95774 18:10.1826 19:24.1565 20:19.7558 21:43.4899 22:29.3446 23:19.6841 24:9.4994 25:21.8286 26:27.3147 27:59.614 28:69.9181 29:17.231 30:5.06745 31:23.5904 32:25.9561 33:26.3583 34:32.8983 35:18.5478 36:2.92608 37:25.0358 38:25.1012 39:9.81688 40:13.3676 41:9.2383 42:2.55669 43:24.7591 44:16.4157 45:9.44852 46:23.2123 47:5.64669 48:6.1799 49:-10.2562 50:2.68075 51:-40.1877 52:6.22393 53:-10.6971 54:-38.5048 -1 1:6.38819 2:43.4156 3:4.75159 4:54.3953 5:11.4061 6:9.33675 7:3.796 8:44.2321 9:36.8303 10:51.1916 11:20.705 12:14.7543 13:15.584 14:17.2123 15:10.5298 16:48.6517 17:9.94465 18:3.54408 19:23.4912 20:22.254 21:31.4719 22:55.1482 23:30.0855 24:10.8606 25:19.9441 26:24.6323 27:25.6433 28:12.143 29:3.7799 30:10.6107 31:12.3228 32:9.30264 33:35.0892 34:35.7364 35:22.8365 36:10.6342 37:13.5064 38:17.6705 39:56.0346 40:33.9812 41:12.227 42:11.7725 43:13.6244 44:27.452 45:47.2519 46:69.8085 47:10.5327 48:8.61806 49:-9.60956 50:2.44492 51:-39.3175 52:4.37806 53:-10.3711 54:-41.2789 -1 1:442.036 2:147.822 3:60.6531 4:55.9346 5:147.256 6:15.5582 7:381.265 8:212.114 9:85.2898 10:143.444 11:46.0827 12:10.6731 13:322.179 14:122.126 15:111.669 16:10.3809 17:50.0225 18:21.8416 19:281.769 20:186.269 21:60.3044 22:36.3348 23:39.9126 24:12.8552 25:280.775 26:81.7399 27:150.235 28:137.446 29:51.2568 30:17.2603 31:340.079 32:348.301 33:101.457 34:66.5946 35:15.9405 36:15.696 37:418.116 38:238.392 39:59.7586 40:70.1997 41:25.8983 42:8.09403 43:461.257 44:78.4445 45:171.299 46:112.692 47:31.0238 48:16.9048 49:0.82245 50:6.1548 51:-13.0046 52:15.4889 53:4.40392 54:6.87165 -1 1:52.9381 2:44.2624 3:14.3212 4:50.1825 5:43.0375 6:16.06 7:39.8929 8:47.0632 9:48.416 10:16.243 11:17.303 12:22.2174 13:11.9951 14:14.0835 15:29.8518 16:26.3184 17:9.1139 18:3.39034 19:23.0822 20:6.76059 21:13.413 22:37.2153 23:19.263 24:5.58958 25:29.3124 26:41.0088 27:42.8902 28:11.8445 29:19.5594 30:2.10928 31:28.5681 32:14.1833 33:13.8655 34:26.8879 35:16.7907 36:10.5369 37:32.1721 38:5.41629 39:47.5857 40:23.4631 41:16.0691 42:10.2464 43:44.0729 44:38.7415 45:21.9214 46:52.0938 47:24.6768 48:7.73529 49:-12.5619 50:2.26291 51:-46.4529 52:3.64644 53:-14.6252 54:-47.7444 -1 1:13.8392 2:27.26 3:30.307 4:18.9864 5:27.4999 6:17.9648 7:13.1542 8:9.8646 9:44.0671 10:8.67298 11:10.023 12:4.38273 13:10.6264 14:25.3198 15:31.4241 16:38.7445 17:4.11026 18:15.1201 19:7.36284 20:9.39982 21:18.7613 22:11.8755 23:3.95434 24:5.85914 25:7.10372 26:4.36057 27:31.0044 28:21.3918 29:22.2846 30:10.6695 31:10.4362 32:19.5853 33:11.0604 34:17.0314 35:23.1942 36:10.0138 37:12.6544 38:8.03458 39:29.0283 40:21.8473 41:16.2636 42:9.26921 43:13.3888 44:3.38242 45:14.5358 46:33.3776 47:14.8593 48:6.15398 49:-12.9087 50:1.46216 51:-45.312 52:2.17975 53:-13.6194 54:-43.9636 -1 1:1.53053 2:17.5806 3:33.6416 4:45.9058 5:5.2803 6:7.94141 7:3.0335 8:14.1071 9:3.77152 10:40.2968 11:16.8247 12:13.6757 13:5.22411 14:13.9252 15:36.3496 16:9.20017 17:4.21437 18:9.22551 19:5.81346 20:15.3984 21:35.4869 22:15.1894 23:22.8922 24:11.2817 25:5.56492 26:6.48552 27:8.05381 28:29.265 29:16.6357 30:16.2965 31:5.29493 32:23.0707 33:15.0032 34:12.3169 35:17.6221 36:3.92642 37:4.96097 38:7.60981 39:22.2893 40:55.8812 41:33.6138 42:9.69233 43:3.06826 44:23.3926 45:24.5601 46:12.4846 47:32.9957 48:2.91364 49:-12.9249 50:1.34801 51:-45.0133 52:2.23843 53:-11.0547 54:-48.6484 -1 1:10.1234 2:16.8171 3:12.6565 4:7.82152 5:15.5295 6:6.03158 7:12.2732 8:12.3733 9:9.45309 10:22.5599 11:18.1797 12:11.4 13:11.1287 14:19.0955 15:11.7944 16:30.0234 17:11.4001 18:3.10568 19:9.47921 20:18.7617 21:4.48999 22:26.6158 23:4.50547 24:9.28994 25:7.75637 26:22.1997 27:32.8128 28:36.5672 29:18.0976 30:4.28258 31:6.04372 32:16.1374 33:18.542 34:14.983 35:20.4865 36:3.79652 37:4.97197 38:10.3147 39:3.63874 40:18.449 41:18.4842 42:5.37509 43:6.0826 44:18.1868 45:9.72257 46:6.73065 47:18.9623 48:14.0269 49:-12.6949 50:1.15999 51:-42.3197 52:2.34162 53:-13.9252 54:-42.1895 -0.6551398378201793 1:180.465 2:69.8876 3:70.3477 4:13.764 5:67.4411 6:31.833 7:147.76 8:154.819 9:132.128 10:12.2942 11:9.00279 12:5.36723 13:151.445 14:240.815 15:60.1876 16:27.4634 17:57.815 18:3.78877 19:196.263 20:56.3163 21:70.5328 22:74.1367 23:56.5989 24:20.8259 25:243.488 26:52.7375 27:279.329 28:86.9465 29:64.0127 30:33.8999 31:255.611 32:213.959 33:57.995 34:92.6062 35:24.4165 36:9.91503 37:236.587 38:96.7845 39:16.2135 40:49.3855 41:30.5314 42:9.30726 43:211.276 44:82.635 45:33.2446 46:32.0098 47:36.9464 48:9.56969 49:-7.81841 50:4.92187 51:-22.0219 52:7.64764 53:5.04802 54:-7.41162 -0.1741509822322298 1:130.171 2:190.127 3:63.5201 4:68.399 5:30.0833 6:21.7114 7:134.954 8:9.79513 9:74.2588 10:45.4826 11:26.7488 12:10.5014 13:102.756 14:38.0851 15:66.4226 16:36.4162 17:7.78265 18:8.06992 19:64.6951 20:27.3916 21:18.9201 22:26.4597 23:16.0412 24:8.13588 25:38.1076 26:61.336 27:9.49839 28:18.976 29:14.1613 30:7.83622 31:24.8187 32:10.5897 33:26.6002 34:18.6456 35:10.6457 36:6.48568 37:37.5054 38:8.7152 39:25.1493 40:22.9969 41:11.7368 42:4.92788 43:84.7316 44:10.6695 45:21.8124 46:20.0103 47:21.5999 48:5.80057 49:-9.60537 50:5.379 51:-46.2403 52:15.9853 53:-5.84082 54:-38.7507 -0.8722106734863498 1:35.4818 2:14.5028 3:31.1818 4:12.7207 5:26.3591 6:6.39167 7:30.0985 8:18.4643 9:11.2845 10:23.5321 11:22.1454 12:5.47644 13:23.0148 14:14.6037 15:13.8264 16:22.4899 17:18.7267 18:8.92417 19:16.4413 20:5.60317 21:17.7028 22:21.6863 23:20.1632 24:10.1993 25:9.73709 26:25.6775 27:13.918 28:6.89313 29:5.76601 30:2.52673 31:10.979 32:16.2159 33:12.5498 34:12.4695 35:23.4158 36:5.71538 37:23.5069 38:15.1277 39:36.5723 40:19.8198 41:4.1493 42:6.98843 43:33.7646 44:23.4581 45:23.8712 46:6.72616 47:18.3768 48:15.66 49:-10.2752 50:1.21692 51:-46.7015 52:3.15731 53:-9.88462 54:-48.4124 -1 1:35.0866 2:87.1134 3:52.4163 4:57.7778 5:43.4933 6:15.1569 7:33.2329 8:49.9715 9:21.1677 10:42.0118 11:14.6581 12:7.02648 13:20.6991 14:26.6646 15:14.8066 16:21.5753 17:11.8834 18:14.09 19:7.21216 20:12.2776 21:34.1638 22:13.802 23:26.9935 24:4.81322 25:2.73433 26:20.8696 27:16.1154 28:38.5296 29:25.1179 30:7.16226 31:6.28592 32:22.796 33:13.1027 34:11.9612 35:23.7126 36:7.83185 37:15.0407 38:11.9132 39:25.0666 40:13.8284 41:25.635 42:10.6622 43:26.4336 44:58.6357 45:18.9457 46:38.6994 47:16.728 48:2.63121 49:-12.3904 50:1.54775 51:-46.7403 52:2.32783 53:-13.6885 54:-43.1653 -1 1:33.4697 2:39.9042 3:23.5046 4:26.5711 5:14.3995 6:5.72655 7:29.3317 8:31.2696 9:14.5808 10:40.4478 11:11.1337 12:8.76677 13:21.7547 14:7.36873 15:9.10275 16:4.18761 17:32.6101 18:2.31218 19:13.5756 20:8.24926 21:1.69169 22:37.4037 23:15.0214 24:3.52546 25:5.13882 26:47.6514 27:33.4036 28:27.7142 29:5.05242 30:5.43378 31:5.44111 32:21.6281 33:21.3987 34:33.1801 35:28.2583 36:0.897207 37:17.3248 38:4.53319 39:38.2906 40:46.4156 41:24.0674 42:2.42447 43:29.1156 44:11.0029 45:40.311 46:28.7253 47:8.81281 48:14.7376 49:-12.7096 50:1.37297 51:-46.4332 52:2.52772 53:-11.4969 54:-44.8274 -0.8822202090829305 1:35.739 2:24.8373 3:5.25707 4:15.0166 5:9.78166 6:9.81 7:32.9551 8:16.6016 9:47.1013 10:14.9424 11:5.56653 12:29.2274 13:26.6881 14:16.4948 15:9.6829 16:29.0948 17:12.7716 18:9.48387 19:17.8238 20:19.9521 21:7.53328 22:49.3528 23:47.9214 24:2.50142 25:6.05145 26:7.82098 27:45.408 28:31.7147 29:38.5512 30:15.1902 31:6.02235 32:11.3936 33:12.4166 34:15.8407 35:14.5219 36:11.6395 37:18.2632 38:23.731 39:17.3356 40:12.2611 41:2.8558 42:12.1997 43:30.5047 44:15.1622 45:29.997 46:12.2227 47:26.4151 48:4.69068 49:-12.013 50:1.56204 51:-43.2595 52:2.8519 53:-11.8513 54:-44.2773 -1 1:12.0011 2:32.1531 3:39.2304 4:22.1768 5:19.5579 6:12.6158 7:17.6972 8:21.2437 9:29.6609 10:41.9969 11:40.0277 12:3.63657 13:20.0753 14:14.1726 15:15.8023 16:29.5339 17:31.3503 18:22.6244 19:14.3266 20:18.5522 21:7.29409 22:28.7673 23:17.4274 24:16.1055 25:5.10403 26:5.01882 27:20.3811 28:31.2291 29:14.5793 30:8.48212 31:10.4598 32:12.3143 33:34.2114 34:36.5054 35:5.18633 36:14.8635 37:14.3842 38:20.5327 39:7.10133 40:5.86748 41:28.2758 42:15.6046 43:12.2263 44:10.4391 45:13.0922 46:28.5805 47:17.1552 48:9.73752 49:-12.0907 50:3.02399 51:-42.1542 52:4.43986 53:-12.1986 54:-42.7594 -1 1:13.4802 2:14.166 3:22.1457 4:42.8784 5:24.3289 6:15.7705 7:10.8058 8:28.3161 9:15.7407 10:31.4962 11:16.6321 12:6.91857 13:4.02904 14:5.66518 15:9.2493 16:33.7045 17:13.4082 18:2.74354 19:3.78372 20:14.9252 21:24.033 22:7.18859 23:32.9732 24:12.5254 25:7.81676 26:11.5472 27:28.4788 28:7.31129 29:6.17845 30:7.28429 31:7.83354 32:18.0985 33:20.8427 34:35.5416 35:11.887 36:15.241 37:2.7772 38:8.98102 39:3.73243 40:17.207 41:16.9393 42:4.97873 43:8.6799 44:26.2223 45:14.3573 46:31.2974 47:15.3141 48:2.28753 49:-13.1515 50:1.80932 51:-44.3899 52:1.97349 53:-11.5376 54:-45.0779 -0.3118668957532673 1:20.4131 2:212.19 3:300.715 4:119.061 5:41.6018 6:18.8845 7:47.897 8:33.9326 9:34.485 10:100.831 11:35.8025 12:11.467 13:85.9406 14:83.6285 15:72.5931 16:53.9822 17:32.962 18:5.22418 19:109.476 20:74.3211 21:72.8494 22:54.9684 23:31.6025 24:14.6805 25:110.705 26:49.7134 27:139.532 28:36.4531 29:39.3923 30:18.8937 31:92.0874 32:99.0711 33:128.909 34:61.4515 35:43.8647 36:3.83474 37:61.9776 38:245.816 39:53.2202 40:14.491 41:59.0182 42:6.22244 43:33.5929 44:297.84 45:67.3468 46:93.9417 47:40.2827 48:16.2665 49:-11.1072 50:3.24562 51:-41.8113 52:5.69706 53:-6.80867 54:-34.0047 -1 1:52.6518 2:32.3122 3:46.5797 4:32.2622 5:32.0785 6:9.73383 7:45.2956 8:54.7916 9:29.9479 10:30.1134 11:3.78201 12:5.67266 13:28.0082 14:2.50653 15:30.2544 16:34.6468 17:49.3813 18:13.3053 19:12.8293 20:17.2489 21:21.5842 22:18.1083 23:10.1858 24:3.5004 25:4.98562 26:7.34864 27:1.04336 28:38.6959 29:7.95922 30:7.23273 31:12.3912 32:18.787 33:15.1787 34:22.4697 35:23.1603 36:8.21137 37:28.0725 38:21.2608 39:28.2365 40:8.91504 41:27.7286 42:19.6177 43:44.8968 44:58.1375 45:27.9217 46:29.276 47:12.5959 48:2.38572 49:-14.443 50:1.81454 51:-47.0739 52:2.93804 53:-15.486 54:-49.7501 -1 1:22.4055 2:10.6399 3:27.9254 4:64.3475 5:21.9623 6:11.9737 7:16.6843 8:13.6468 9:20.8775 10:4.94253 11:26.5325 12:10.6299 13:11.6532 14:11.5788 15:46.9222 16:5.27312 17:12.1533 18:12.2322 19:10.2825 20:5.03115 21:18.4056 22:15.8871 23:19.8475 24:16.3383 25:10.4473 26:11.9488 27:17.17 28:26.1063 29:8.96612 30:11.1821 31:12.3954 32:8.12786 33:16.4928 34:3.23733 35:17.8957 36:10.6553 37:17.839 38:5.70996 39:3.64839 40:10.7673 41:11.8759 42:6.94961 43:22.959 44:22.1911 45:15.2718 46:28.7586 47:4.22443 48:14.1589 49:-14.6965 50:1.33376 51:-45.3846 52:2.21994 53:-16.1157 54:-46.513 -1 1:695.249 2:179.096 3:176.541 4:258.417 5:233.61 6:41.7424 7:539.424 8:28.5185 9:195.539 10:40.9197 11:80.6972 12:38.3346 13:293.108 14:30.6701 15:65.0479 16:29.2371 17:2.25372 18:11.6221 19:128.909 20:42.8856 21:66.1408 22:26.2082 23:39.4454 24:10.9167 25:117.535 26:60.9138 27:61.3011 28:27.9157 29:31.9237 30:15.8703 31:231.212 32:38.5082 33:5.53462 34:26.8988 35:7.69649 36:16.2942 37:435.925 38:96.9783 39:60.5102 40:36.819 41:55.8409 42:13.5415 43:640.818 44:211.35 45:67.5114 46:77.4759 47:49.9627 48:8.47167 49:11.1361 50:11.9293 51:-1.94935 52:17.0891 53:10.0072 54:-7.23431 -1 1:40.2214 2:51.1854 3:28.0346 4:39.7525 5:15.4702 6:1.56648 7:75.0078 8:12.7842 9:60.3353 10:31.2544 11:16.9486 12:6.64358 13:116.907 14:11.3439 15:6.00363 16:13.5157 17:19.6212 18:7.8363 19:134.061 20:47.0053 21:26.373 22:23.8564 23:12.1434 24:2.88646 25:109.062 26:37.2258 27:36.9383 28:39.0202 29:43.6536 30:7.84291 31:63.0899 32:7.4924 33:24.9791 34:45.8422 35:5.89444 36:7.59075 37:30.2645 38:6.63888 39:14.6974 40:12.0401 41:17.0268 42:3.98383 43:24.5013 44:10.2936 45:23.4489 46:26.9977 47:5.4563 48:5.50008 49:2.09377 50:10.909 51:-11.483 52:9.84029 53:-3.50551 54:-16.7276 -1 1:125.089 2:123.774 3:77.7894 4:23.4985 5:44.5951 6:19.2533 7:163.117 8:128.94 9:58.9871 10:45.3141 11:4.75434 12:2.54756 13:147.964 14:5.26603 15:30.4097 16:28.2406 17:19.2453 18:8.36711 19:88.9754 20:60.2341 21:10.2367 22:19.279 23:28.755 24:11.4757 25:46.9936 26:29.9766 27:52.5035 28:38.1208 29:12.2057 30:8.07735 31:43.0823 32:33.3633 33:12.2824 34:15.1607 35:24.6223 36:14.1596 37:39.5452 38:55.8524 39:29.9175 40:8.37763 41:16.9255 42:3.22675 43:72.516 44:28.4853 45:62.1506 46:23.2427 47:10.1828 48:16.0632 49:-19.9974 50:2.21655 51:-64.1464 52:10.083 53:-21.5689 54:-69.994 -1 1:236.767 2:217.324 3:290.576 4:115.471 5:18.2103 6:16.3719 7:206.698 8:42.8125 9:81.5039 10:52.1231 11:22.2321 12:1.76515 13:137.444 14:73.7266 15:17.5296 16:42.7748 17:13.0178 18:12.9818 19:87.423 20:52.6895 21:22.7949 22:50.3884 23:15.0102 24:14.6768 25:64.1778 26:70.9365 27:27.7994 28:12.6472 29:40.7749 30:23.6441 31:64.0806 32:39.189 33:4.01656 34:11.8158 35:29.9257 36:11.2339 37:105.99 38:33.4458 39:27.3692 40:30.0748 41:0.238372 42:8.45944 43:185.854 44:52.5467 45:43.2217 46:50.2682 47:49.3995 48:15.475 49:-18.1054 50:3.85778 51:-55.6312 52:7.03747 53:-16.5236 54:-58.4431 -1 1:212.572 2:135.774 3:74.881 4:115.493 5:44.9188 6:3.78911 7:187.655 8:29.9296 9:20.3314 10:5.66729 11:19.1201 12:5.15445 13:120.522 14:34.7783 15:10.0431 16:1.79372 17:29.4017 18:4.07902 19:82.3573 20:12.257 21:16.6403 22:24.9629 23:13.7457 24:7.06602 25:59.8009 26:11.1591 27:18.3201 28:41.6429 29:8.9284 30:9.91118 31:35.7431 32:20.3708 33:46.2462 34:46.2796 35:16.8027 36:4.17267 37:72.2645 38:23.5496 39:17.7937 40:15.7629 41:13.8646 42:2.61085 43:156.822 44:18.0513 45:34.6 46:45.5949 47:9.53788 48:6.62435 49:-17.7131 50:3.14246 51:-54.2469 52:3.16488 53:-17.8058 54:-56.3877 -1 1:29.3195 2:34.2556 3:43.5639 4:37.4938 5:18.3365 6:24.4978 7:28.5589 8:42.0914 9:7.32078 10:16.6382 11:11.4876 12:6.15847 13:20.9411 14:15.6569 15:10.9885 16:35.5525 17:24.8238 18:14.2747 19:12.932 20:15.2723 21:8.11712 22:10.0555 23:24.3391 24:11.3928 25:7.22484 26:25.6171 27:17.2404 28:45.9276 29:22.8326 30:17.1652 31:3.13175 32:24.7793 33:48.2519 34:14.1545 35:16.9932 36:12.729 37:6.36033 38:16.3379 39:11.8958 40:29.0871 41:25.2182 42:5.82607 43:19.3969 44:21.9438 45:48.9171 46:35.2516 47:27.9814 48:13.4082 49:-15.4001 50:1.77909 51:-46.3346 52:2.4006 53:-17.6108 54:-44.4987 -1 1:19.2725 2:34.9818 3:64.2923 4:43.6595 5:29.9515 6:19.6034 7:9.27968 8:40.645 9:19.8227 10:29.3808 11:28.7362 12:11.7469 13:1.45039 14:13.9293 15:33.7593 16:23.9716 17:22.2755 18:10.3867 19:3.62699 20:11.3318 21:60.5913 22:36.891 23:42.0339 24:6.27381 25:1.9489 26:21.3687 27:67.3682 28:32.4125 29:16.7835 30:9.20541 31:7.23078 32:24.816 33:22.4842 34:2.57261 35:14.714 36:12.0367 37:17.2577 38:10.831 39:20.1487 40:29.1198 41:6.7281 42:5.48396 43:22.4395 44:16.4229 45:33.5651 46:26.2363 47:48.94 48:12.9472 49:-13.9567 50:1.96729 51:-42.4683 52:2.05166 53:-14.4942 54:-41.6709 -1 1:22.5047 2:5.68212 3:38.5889 4:35.0084 5:21.3191 6:11.906 7:18.3662 8:37.0828 9:74.9869 10:25.0182 11:21.9395 12:5.68642 13:9.18069 14:24.8962 15:32.0948 16:33.048 17:8.03681 18:5.92441 19:10.3617 20:55.1545 21:40.2476 22:21.4013 23:11.9399 24:14.1331 25:14.174 26:44.6357 27:18.6934 28:12.432 29:34.3533 30:9.20891 31:14.8449 32:33.8551 33:24.3268 34:43.1806 35:24.1495 36:2.13205 37:13.5766 38:19.0452 39:48.7128 40:27.6961 41:33.6558 42:9.70587 43:16.4005 44:47.2001 45:36.892 46:26.6883 47:17.4175 48:15.2896 49:-12.6812 50:2.15965 51:-39.3714 52:2.41173 53:-15.0153 54:-37.44 -1 1:20.4489 2:37.7994 3:39.9575 4:36.2727 5:23.8135 6:9.93049 7:11.1762 8:9.92438 9:27.4771 10:22.8253 11:1.17233 12:9.70605 13:10.3482 14:21.7292 15:36.0137 16:22.8874 17:16.3938 18:15.8919 19:12.2868 20:18.9689 21:28.8815 22:39.8863 23:7.14357 24:17.8828 25:18.7161 26:21.2266 27:49.0219 28:5.24695 29:15.3125 30:4.32715 31:26.7753 32:19.3447 33:24.6036 34:24.7081 35:23.7816 36:1.59577 37:32.0912 38:15.824 39:47.6755 40:59.0186 41:12.4183 42:5.52814 43:30.2676 44:59.6763 45:51.2726 46:1.75801 47:15.7081 48:12.0462 49:-13.9549 50:1.97751 51:-41.8601 52:2.25564 53:-15.9196 54:-42.994 -1 1:31.2746 2:22.1717 3:16.1634 4:14.977 5:3.92325 6:9.66456 7:24.5431 8:25.9691 9:75.6087 10:9.30826 11:31.1315 12:19.7269 13:12.048 14:25.4313 15:34.5646 16:3.00176 17:6.42425 18:16.059 19:6.14259 20:17.9728 21:6.05796 22:22.7312 23:22.6492 24:6.35641 25:7.44635 26:13.87 27:43.7622 28:25.4593 29:21.7734 30:8.44975 31:9.19046 32:9.1522 33:14.7922 34:38.7533 35:18.5058 36:9.55344 37:15.0647 38:18.7672 39:34.9394 40:17.5895 41:8.99799 42:7.23691 43:25.4982 44:23.9317 45:36.3204 46:15.5748 47:23.5298 48:15.974 49:-14.2766 50:1.8035 51:-41.5326 52:2.52591 53:-16.1206 54:-42.9741 -1 1:14.5442 2:49.3413 3:34.1775 4:28.3939 5:16.4875 6:11.3435 7:15.2857 8:7.1482 9:4.25824 10:37.5847 11:10.4678 12:11.5273 13:9.76207 14:12.0701 15:27.9717 16:47.6034 17:32.9045 18:3.66594 19:4.69349 20:7.12647 21:16.7902 22:30.7899 23:9.96263 24:8.8684 25:2.16099 26:9.35239 27:20.8864 28:55.3402 29:11.318 30:13.3086 31:0.701796 32:16.1906 33:7.21246 34:22.3738 35:31.5786 36:5.51415 37:2.68938 38:21.0216 39:24.0992 40:21.9959 41:37.1874 42:5.05326 43:8.06204 44:22.5538 45:30.8382 46:24.466 47:32.858 48:9.43956 49:-13.0234 50:1.37738 51:-39.392 52:2.20227 53:-12.4662 54:-38.5951 -1 1:14.0143 2:61.9027 3:12.817 4:21.0346 5:6.36974 6:10.0182 7:13.7482 8:17.6008 9:24.4916 10:8.58209 11:14.3447 12:1.24753 13:8.54842 14:5.16755 15:14.017 16:11.2166 17:20.2791 18:1.75173 19:0.415391 20:16.4165 21:47.5618 22:10.7257 23:8.95725 24:6.99723 25:8.62216 26:16.8619 27:31.556 28:28.338 29:29.8462 30:8.2375 31:13.3743 32:5.61723 33:23.3515 34:18.1759 35:23.9988 36:8.20893 37:13.9868 38:7.94441 39:19.1705 40:33.5544 41:17.2979 42:12.678 43:13.2935 44:8.45774 45:26.4599 46:24.828 47:21.3119 48:7.46331 49:-10.7358 50:1.29234 51:-36.4324 52:2.44861 53:-11.7201 54:-34.0806 -1 1:196.955 2:1637.12 3:803.619 4:661.026 5:411.626 6:30.5136 7:162.002 8:383.154 9:340.053 10:98.9758 11:79.2589 12:42.7297 13:93.5382 14:44.2707 15:12.7048 16:97.9587 17:44.9256 18:12.0598 19:58.8659 20:50.5909 21:83.8425 22:32.2144 23:19.8897 24:10.328 25:40.8051 26:44.1473 27:45.301 28:51.1103 29:39.2665 30:26.2706 31:46.4326 32:4.09512 33:125.849 34:47.9332 35:25.0742 36:14.3365 37:94.9436 38:38.2806 39:70.2943 40:88.3901 41:31.3762 42:10.1202 43:158.825 44:341.564 45:134.416 46:32.2593 47:41.5583 48:12.2044 49:-5.71097 50:5.47829 51:-22.212 52:7.80589 53:-21.4495 54:-25.4394 -0.9699238913285175 1:322.355 2:1041.14 3:495.608 4:213.848 5:231.614 6:66.1677 7:315.158 8:496.419 9:369.027 10:51.0641 11:53.2168 12:30.8678 13:260.766 14:135.166 15:149.915 16:115.551 17:59.746 18:18.8716 19:179.558 20:40.9772 21:130.452 22:62.7745 23:36.3106 24:11.4048 25:129.392 26:88.3248 27:31.7165 28:42.4217 29:17.7745 30:23.6188 31:140.971 32:71.5623 33:65.3939 34:45.34 35:38.0201 36:9.59542 37:206.225 38:80.7636 39:54.7156 40:44.4762 41:38.7028 42:11.1612 43:283.526 44:156.144 45:90.2214 46:120.446 47:65.3503 48:6.99829 49:-8.4438 50:4.17046 51:-26.3186 52:10.658 53:-5.09371 54:-28.28 -0.5266427924030356 1:321.193 2:628.445 3:482.202 4:147.066 5:234.406 6:56.9865 7:295.617 8:300.709 9:105.639 10:140.734 11:20.547 12:3.5876 13:202.867 14:38.474 15:28.4528 16:52.3981 17:35.0642 18:20.8856 19:124.648 20:20.1433 21:52.9364 22:29.4467 23:20.8804 24:11.2142 25:84.9986 26:33.7855 27:8.91466 28:4.07022 29:41.2575 30:19.8547 31:97.4151 32:21.8443 33:50.9095 34:50.8506 35:39.4738 36:12.5216 37:157.415 38:16.5486 39:50.5744 40:18.1384 41:32.4321 42:13.9443 43:249.105 44:31.1403 45:52.4372 46:57.1848 47:24.7213 48:21.678 49:-8.16787 50:6.87593 51:-24.4712 52:17.6751 53:-0.552553 54:-7.66436 -1 1:648.243 2:957.894 3:624.901 4:115.685 5:178.331 6:42.2307 7:605.501 8:133.396 9:460.954 10:229.779 11:123.762 12:13.1084 13:445.536 14:320.737 15:69.0693 16:26.1645 17:85.8861 18:11.7013 19:276.628 20:219.552 21:49.6067 22:112.815 23:52.5609 24:1.39446 25:176.473 26:159.119 27:116.636 28:32.9336 29:33.756 30:22.2749 31:186.533 32:148.706 33:179.406 34:25.1755 35:8.70228 36:12.861 37:314.627 38:216.374 39:118.786 40:34.5701 41:65.0337 42:5.36029 43:516.338 44:237.888 45:183.772 46:151.14 47:20.8914 48:33.1546 49:-15.7437 50:7.84534 51:-38.8605 52:18.5721 53:-2.30936 54:-24.8411 -1 1:93.4576 2:1155.91 3:260.119 4:273.221 5:13.2602 6:23.1977 7:64.3038 8:1084.83 9:331.105 10:140.31 11:80.4951 12:17.9161 13:79.0433 14:138.058 15:339.94 16:247.355 17:52.9776 18:1.43952 19:55.3463 20:155.724 21:191.206 22:34.5365 23:29.6572 24:6.21206 25:42.7446 26:215.664 27:149.297 28:68.2296 29:5.5617 30:29.0776 31:91.0851 32:170.789 33:117.258 34:57.569 35:42.7555 36:10.5332 37:64.0333 38:249.574 39:113.209 40:69.34 41:32.3026 42:15.4598 43:100.723 44:301.479 45:154.785 46:45.1577 47:27.4064 48:6.44708 49:-16.4703 50:6.73131 51:-42.1228 52:16.1117 53:-19.301 54:-54.6955 -1 1:137.852 2:426.13 3:217.527 4:1.98377 5:18.1663 6:51.0276 7:76.6519 8:109.376 9:306.931 10:27.6705 11:53.3374 12:53.8947 13:56.3683 14:213.648 15:59.151 16:116.661 17:28.7823 18:3.11005 19:86.0609 20:120.135 21:65.3822 22:23.9964 23:10.2198 24:12.166 25:59.4217 26:21.5207 27:76.8753 28:100.255 29:36.9193 30:7.89166 31:51.939 32:25.3715 33:22.304 34:83.7087 35:16.1928 36:12.8577 37:60.9936 38:33.9902 39:17.8834 40:39.9544 41:20.6233 42:18.7043 43:103.556 44:277.174 45:98.5775 46:32.0765 47:22.4187 48:15.5962 49:-15.3645 50:5.58962 51:-38.2221 52:14.8254 53:-23.1998 54:-55.6394 -0.1622743140104998 1:196.161 2:101.588 3:147.962 4:162.805 5:70.0748 6:43.5013 7:174.246 8:63.0198 9:57.8346 10:76.5644 11:55.9093 12:20.9364 13:122.935 14:81.6793 15:65.9149 16:49.5923 17:36.6836 18:18.546 19:99.2756 20:33.2433 21:74.1397 22:28.0604 23:32.7192 24:23.5477 25:104.941 26:52.622 27:122.144 28:16.9592 29:47.971 30:19.9091 31:104.12 32:129.224 33:84.1877 34:21.1027 35:46.6986 36:14.7726 37:92.6179 38:170.125 39:56.5005 40:42.9414 41:47.3944 42:8.76961 43:145.295 44:83.9018 45:114.889 46:103.074 47:91.1698 48:21.0142 49:-13.2298 50:3.1178 51:-38.0324 52:6.52835 53:-14.5606 54:-36.6255 -0.6397402301851061 1:216.408 2:171.472 3:211.264 4:58.4929 5:89.6888 6:55.3584 7:195.882 8:173.178 9:109.057 10:79.4915 11:2.3683 12:5.71934 13:154.263 14:86.9553 15:84.3208 16:111.957 17:45.8574 18:14.2142 19:117.634 20:25.4175 21:104.038 22:9.83661 23:19.7298 24:4.44349 25:100.976 26:61.5985 27:86.9461 28:62.949 29:37.8736 30:22.5178 31:111.062 32:84.2308 33:35.0646 34:12.6091 35:29.4057 36:12.0187 37:147.659 38:94.1105 39:9.51586 40:35.5284 41:40.8804 42:24.8525 43:194.693 44:16.4334 45:58.575 46:102.876 47:14.1738 48:4.87338 49:-11.9643 50:2.66101 51:-36.3437 52:4.85956 53:-8.38922 54:-34.3372 -1 1:37.1369 2:120.399 3:99.213 4:64.4572 5:12.7888 6:11.0166 7:24.7886 8:67.1066 9:40.7783 10:43.9755 11:20.7094 12:8.68434 13:18.7256 14:47.991 15:36.9728 16:10.032 17:5.3926 18:13.6208 19:9.31841 20:15.4461 21:48.6655 22:61.8286 23:20.0891 24:7.02172 25:11.1281 26:44.1437 27:37.2504 28:26.7718 29:32.9732 30:11.3027 31:27.0725 32:39.1942 33:12.2143 34:13.7244 35:17.1284 36:5.35643 37:39.639 38:14.2408 39:31.0167 40:11.4199 41:22.7956 42:12.5464 43:44.9131 44:20.0326 45:27.6987 46:25.0677 47:18.887 48:6.36014 49:-11.8221 50:1.96231 51:-35.7796 52:3.09001 53:-11.7769 54:-38.1784 -1 1:41.2539 2:43.1336 3:46.0277 4:44.7963 5:30.5447 6:3.58882 7:36.1139 8:12.2369 9:25.0679 10:22.8275 11:6.08059 12:6.23263 13:26.3291 14:14.2537 15:6.92244 16:40.0144 17:31.2206 18:7.30054 19:20.2569 20:19.0715 21:3.32765 22:15.3262 23:1.49237 24:9.10643 25:13.3734 26:6.22887 27:27.7059 28:22.888 29:29.4495 30:1.53992 31:3.62649 32:12.6986 33:16.8287 34:12.3927 35:24.3424 36:13.3467 37:16.4994 38:10.9424 39:30.7905 40:38.4058 41:9.9072 42:3.67171 43:32.7548 44:18.4019 45:42.8767 46:39.4238 47:12.9991 48:5.13254 49:-14.0464 50:1.95802 51:-36.2688 52:2.28331 53:-15.0056 54:-36.5768 -0.239964965131883 1:265.296 2:346.301 3:469.6 4:189.647 5:85.6954 6:34.1846 7:270.265 8:466.42 9:148.371 10:8.73911 11:44.0248 12:15.6269 13:195.692 14:102.689 15:4.48046 16:53.0041 17:15.4908 18:3.29101 19:109.576 20:77.0352 21:74.9363 22:27.588 23:24.1917 24:9.11469 25:83.1112 26:91.9186 27:50.5121 28:14.4792 29:22.1477 30:11.9437 31:105.027 32:49.9378 33:10.8419 34:17.6684 35:7.71948 36:12.7631 37:137.049 38:43.0073 39:52.1325 40:23.1037 41:49.5577 42:13.0314 43:196.396 44:83.292 45:148.701 46:59.9322 47:41.2931 48:3.99699 49:-8.77726 50:5.13195 51:-22.2399 52:9.08649 53:-3.98076 54:-11.1911 -0.05092916854682818 1:379.676 2:397.72 3:152.936 4:123.645 5:104.726 6:10.0384 7:340.073 8:124.743 9:31.9462 10:23.0095 11:41.1565 12:6.57512 13:236.073 14:86.8259 15:77.7172 16:14.5964 17:8.59721 18:6.93347 19:169.297 20:39.8098 21:43.1239 22:57.3567 23:18.6395 24:13.4226 25:149.895 26:63.8013 27:51.2455 28:66.3677 29:35.9073 30:8.05618 31:155.629 32:43.9149 33:43.1626 34:19.59 35:19.803 36:2.33385 37:203.984 38:28.2743 39:15.7016 40:18.7041 41:6.9515 42:6.63154 43:307.67 44:56.4503 45:118.189 46:31.8184 47:23.5342 48:15.0044 49:-9.46659 50:4.11538 51:-25.3743 52:6.31065 53:-7.99979 54:-30.8927 -0.7150628045794889 1:455.709 2:286.571 3:206.518 4:183.27 5:98.4821 6:42.9476 7:476.831 8:68.6502 9:26.0288 10:25.5229 11:18.8353 12:7.17548 13:386.755 14:35.4662 15:9.41471 16:10.1038 17:15.5459 18:4.86258 19:249.026 20:17.2352 21:9.06127 22:19.6987 23:3.06241 24:4.48822 25:136.07 26:17.2476 27:26.1701 28:6.32153 29:17.8959 30:4.17988 31:115.434 32:15.2808 33:6.6185 34:14.752 35:25.8538 36:1.98126 37:195.668 38:9.49539 39:28.3221 40:13.8254 41:21.8169 42:7.13868 43:332.699 44:122.023 45:15.2675 46:58.0268 47:2.35481 48:4.06422 49:-8.11756 50:3.74017 51:-26.7205 52:10.4091 53:-8.27838 54:-28.722 -0.8770395477989812 1:545.073 2:218.831 3:138.422 4:79.6857 5:144.179 6:50.708 7:462.914 8:43.0594 9:32.1287 10:54.819 11:28.6157 12:3.54107 13:278.68 14:20.0433 15:17.833 16:6.40378 17:0.540446 18:6.17566 19:114.948 20:8.21638 21:14.2193 22:9.60787 23:19.4173 24:12.0027 25:46.3695 26:18.7131 27:18.1013 28:4.65296 29:16.3367 30:4.887 31:131.979 32:8.59512 33:41.4569 34:24.8149 35:17.4362 36:11.5334 37:281.434 38:17.5415 39:17.5352 40:57.4592 41:7.79919 42:16.1392 43:458.466 44:44.5124 45:8.75747 46:23.0097 47:6.81094 48:1.9055 49:-9.4824 50:4.95401 51:-33.172 52:12.4448 53:-3.87439 54:-16.9647 -0.1769977124504022 1:318.315 2:239.784 3:195.162 4:67.8613 5:179.015 6:35.1435 7:261.825 8:32.4122 9:37.3469 10:27.0828 11:21.5616 12:7.99682 13:176.047 14:24.8612 15:14.5749 16:7.50296 17:15.643 18:11.2632 19:98.2978 20:8.5064 21:15.1473 22:30.1094 23:18.4675 24:7.18159 25:72.4991 26:18.7543 27:24.9763 28:7.54584 29:23.2749 30:9.39027 31:133.913 32:12.9283 33:9.3055 34:10.796 35:6.54736 36:6.45436 37:230.552 38:30.7489 39:27.1832 40:13.9948 41:6.51472 42:3.88267 43:307.717 44:38.4039 45:48.0883 46:4.85344 47:24.1839 48:2.44005 49:-7.89732 50:3.30152 51:-33.4644 52:16.5805 53:-7.42601 54:-26.4085 -1 1:190.467 2:99.4515 3:16.1206 4:46.8058 5:74.4853 6:19.4213 7:140.652 8:19.8053 9:35.1506 10:43.5379 11:40.1925 12:9.6059 13:80.335 14:27.7145 15:24.3511 16:31.8149 17:23.4951 18:24.7246 19:46.0935 20:21.8976 21:8.57606 22:34.5422 23:6.29335 24:14.9266 25:31.1595 26:17.5536 27:76.2758 28:8.07561 29:5.97932 30:23.8453 31:55.3115 32:22.8312 33:40.0017 34:34.4298 35:20.3163 36:6.41705 37:126.112 38:33.5522 39:58.3249 40:27.9481 41:17.5372 42:5.13422 43:186.617 44:82.4182 45:46.3297 46:53.1616 47:57.3446 48:17.2538 49:-12.6179 50:1.63624 51:-38.3289 52:6.17375 53:-11.7626 54:-37.2362 -1 1:617.788 2:1408.39 3:187.437 4:577.372 5:263.598 6:139.323 7:511.416 8:432.057 9:394.777 10:180.618 11:45.7086 12:40.5698 13:337.541 14:243.341 15:33.3709 16:60.5339 17:74.7834 18:13.165 19:222.858 20:82.2061 21:66.1434 22:74.8509 23:22.8693 24:19.2485 25:194.235 26:123.669 27:39.1102 28:74.027 29:95.8019 30:27.0763 31:241.22 32:152.597 33:70.1745 34:22.3865 35:29.1847 36:24.1851 37:353.658 38:277.441 39:74.1198 40:11.9341 41:8.28724 42:15.3715 43:529.376 44:905.057 45:453.045 46:120.37 47:67.3345 48:31.0829 49:-6.17449 50:9.61222 51:-24.4201 52:12.0366 53:-6.14216 54:-2.87402 -1 1:2.90341 2:7.79153 3:24.9833 4:9.58037 5:21.6098 6:18.7747 7:3.77335 8:22.746 9:22.4055 10:20.7831 11:12.007 12:6.36833 13:3.88703 14:3.97792 15:10.5714 16:24.8742 17:17.7433 18:2.49712 19:3.61418 20:8.95066 21:40.0283 22:28.0896 23:22.4455 24:3.36092 25:2.85486 26:19.0719 27:13.7644 28:46.6931 29:11.4105 30:11.4366 31:1.97671 32:5.27052 33:32.9976 34:13.0644 35:22.2866 36:12.7393 37:0.895198 38:13.1033 39:17.216 40:38.7198 41:38.7577 42:5.3252 43:1.21549 44:7.22121 45:13.3707 46:17.7061 47:17.855 48:5.75238 49:-2.89444 50:2.39568 51:-22.3856 52:3.73075 53:-2.3352 54:-17.7158 -1 1:5.03183 2:15.9396 3:45.9537 4:40.859 5:9.95469 6:9.69594 7:3.66014 8:15.7076 9:21.5792 10:6.02719 11:5.40458 12:8.78543 13:1.4476 14:16.8623 15:19.6946 16:30.1317 17:10.1398 18:7.74428 19:0.700366 20:3.89201 21:8.3702 22:14.1164 23:18.9311 24:3.19894 25:1.89418 26:10.5719 27:20.5009 28:33.5281 29:15.3907 30:4.035 31:3.52965 32:7.76459 33:22.7264 34:18.6259 35:17.4377 36:4.00945 37:4.66372 38:8.50882 39:21.2889 40:48.0903 41:7.79828 42:6.47761 43:5.18996 44:23.2518 45:12.5017 46:30.0879 47:22.6281 48:9.15897 49:-3.3642 50:2.43649 51:-23.1125 52:3.41613 53:-4.40098 54:-25.6777 -1 1:3.57218 2:7.81507 3:20.7994 4:23.5231 5:12.7083 6:6.48892 7:3.8147 8:5.24893 9:19.7869 10:11.2581 11:30.8414 12:3.76953 13:1.85928 14:12.4483 15:45.7447 16:20.2756 17:23.7472 18:8.84644 19:1.08749 20:5.08748 21:23.2786 22:24.8187 23:9.91081 24:1.35942 25:1.31549 26:3.76611 27:9.53732 28:36.2184 29:36.8886 30:5.9089 31:0.704385 32:11.6137 33:27.1091 34:12.4031 35:14.1013 36:2.02921 37:0.170883 38:7.33633 39:11.0634 40:18.8734 41:17.1366 42:10.6904 43:1.39436 44:20.495 45:10.1279 46:31.7244 47:17.3966 48:3.30498 49:-3.31944 50:2.46864 51:-23.0317 52:3.34922 53:-1.1913 54:-30.6125 -1 1:3.2576 2:7.72958 3:32.5613 4:17.6842 5:10.7137 6:2.28517 7:2.44356 8:18.2628 9:22.7404 10:19.5402 11:28.9927 12:9.65994 13:1.14118 14:7.83201 15:9.91914 16:29.2904 17:11.1973 18:6.85506 19:1.89391 20:7.61359 21:29.0237 22:21.8273 23:6.76172 24:6.07971 25:1.97068 26:12.6978 27:23.7034 28:7.76803 29:18.0199 30:10.9439 31:1.01138 32:8.34871 33:13.5706 34:49.2749 35:5.74894 36:5.12213 37:0.86169 38:8.945 39:24.9785 40:26.7288 41:3.8772 42:6.11407 43:2.35174 44:5.20944 45:13.5045 46:4.86362 47:12.4441 48:3.71317 49:-3.47347 50:2.0725 51:-23.0964 52:2.94897 53:-5.32652 54:-24.168 -1 1:6.6591 2:19.2769 3:29.123 4:4.09913 5:7.47411 6:12.1608 7:6.57355 8:4.88971 9:27.3674 10:17.8652 11:21.0257 12:2.21779 13:4.73821 14:12.3327 15:17.1426 16:20.0494 17:26.0806 18:2.84837 19:2.42094 20:10.1836 21:25.0089 22:12.9094 23:14.3279 24:15.1473 25:0.833846 26:16.3576 27:17.8705 28:6.38658 29:9.12606 30:6.07391 31:1.59622 32:2.30541 33:31.6283 34:23.549 35:18.6208 36:3.63327 37:2.79243 38:6.22052 39:10.2473 40:3.45951 41:17.2187 42:9.30285 43:5.12298 44:11.3068 45:35.8074 46:19.7401 47:13.7825 48:3.30374 49:-4.37876 50:2.21354 51:-23.398 52:3.02518 53:1.37962 54:-18.2948 -1 1:3.54753 2:7.68003 3:36.7896 4:24.6842 5:13.7388 6:7.26957 7:4.15491 8:8.9437 9:24.0187 10:13.2419 11:12.9465 12:4.48662 13:4.12942 14:11.656 15:7.32907 16:14.533 17:14.5696 18:3.88325 19:2.62896 20:11.3059 21:21.7626 22:17.6892 23:28.0504 24:7.43988 25:1.64414 26:9.52065 27:21.5834 28:7.85448 29:17.802 30:2.38915 31:1.09248 32:4.0065 33:22.5734 34:26.6806 35:13.0094 36:5.83668 37:3.27328 38:4.17842 39:7.7249 40:16.301 41:15.2093 42:6.73373 43:3.98917 44:7.34772 45:18.0981 46:23.841 47:16.433 48:13.1794 49:-4.85338 50:2.35468 51:-23.9993 52:2.75966 53:-7.11607 54:-30.7034 -0.3443766528484622 1:6.05349 2:16.2432 3:21.9953 4:22.5653 5:3.46579 6:8.50164 7:5.09443 8:5.57653 9:18.6078 10:25.9637 11:20.8874 12:4.85323 13:3.79926 14:6.82751 15:39.2915 16:21.2756 17:33.3066 18:14.1619 19:3.06225 20:4.61384 21:11.4192 22:18.7018 23:6.41477 24:6.13725 25:2.78883 26:21.2725 27:5.67098 28:44.295 29:25.2742 30:8.75251 31:0.863483 32:10.4536 33:29.6025 34:29.1732 35:12.4972 36:3.5574 37:2.93686 38:3.431 39:10.5908 40:21.1733 41:23.0792 42:7.8644 43:5.61053 44:11.5221 45:15.8423 46:13.685 47:24.6291 48:10.992 49:-4.96375 50:2.12397 51:-24.1966 52:3.09745 53:-7.7333 54:-23.2285 -1 1:3.99394 2:8.75114 3:22.8476 4:7.46934 5:1.71169 6:3.52679 7:2.1578 8:8.86567 9:20.3627 10:23.0487 11:8.883 12:2.48627 13:0.368214 14:8.24188 15:35.9824 16:30.9779 17:34.9712 18:9.00146 19:0.258226 20:8.06426 21:34.7042 22:24.49 23:36.7165 24:16.6573 25:0.473541 26:21.542 27:11.6882 28:27.4543 29:16.0886 30:10.1646 31:1.24081 32:18.9708 33:27.6645 34:49.9656 35:17.5844 36:12.514 37:2.94415 38:5.08679 39:20.2896 40:0.639659 41:23.2816 42:5.55971 43:4.31932 44:4.07206 45:11.8758 46:19.004 47:11.8969 48:9.56592 49:-3.26606 50:2.37898 51:-23.478 52:3.35523 53:-1.56919 54:-21.7504 -1 1:3.38731 2:16.4089 3:20.8625 4:3.76023 5:9.04574 6:9.73806 7:1.61565 8:16.5232 9:16.1722 10:24.2899 11:14.0205 12:5.38804 13:0.641215 14:16.2813 15:11.5273 16:23.3832 17:28.1243 18:5.10593 19:1.50869 20:13.7083 21:10.5792 22:25.7876 23:16.1086 24:0.572054 25:1.01611 26:8.956 27:26.7832 28:33.1575 29:30.4632 30:15.9723 31:1.39499 32:8.64224 33:5.60509 34:29.6462 35:18.3537 36:2.63142 37:0.349795 38:16.8481 39:17.7779 40:37.1136 41:15.0576 42:2.36121 43:2.96962 44:22.8657 45:18.1747 46:21.4195 47:16.2684 48:1.95476 49:-3.65392 50:2.2744 51:-23.8091 52:3.32191 53:-3.41291 54:-26.4553 -1 1:5.37052 2:13.3265 3:8.53278 4:16.4304 5:8.80247 6:5.75066 7:5.11699 8:4.69746 9:33.7737 10:5.2567 11:12.8854 12:6.47896 13:4.20047 14:5.6554 15:8.65943 16:25.1643 17:8.8014 18:8.56984 19:3.01995 20:8.39382 21:30.0262 22:28.0384 23:6.19696 24:10.4754 25:1.72185 26:9.34817 27:9.09531 28:27.2827 29:4.27201 30:12.412 31:1.53431 32:8.97121 33:22.9785 34:22.5455 35:8.63533 36:1.56815 37:2.86841 38:5.25924 39:11.8807 40:7.90002 41:13.3016 42:2.61445 43:4.43998 44:8.92233 45:44.6195 46:15.0209 47:8.39304 48:3.4629 49:-3.52414 50:2.02327 51:-24.143 52:2.68287 53:-4.34436 54:-24.8862 -0.1771519881586926 1:6.0994 2:7.31545 3:32.1058 4:17.1691 5:23.2754 6:6.32845 7:5.0276 8:15.353 9:17.189 10:14.5072 11:26.5851 12:2.03569 13:4.04331 14:10.3325 15:14.1056 16:16.3396 17:9.00774 18:6.84353 19:4.03219 20:6.72143 21:17.2915 22:8.51926 23:6.05868 24:4.93725 25:3.02891 26:2.97057 27:20.1578 28:22.9948 29:10.5391 30:9.75525 31:1.13569 32:11.5607 33:8.447 34:28.6705 35:28.608 36:8.14978 37:2.659 38:5.56546 39:13.7702 40:16.0238 41:3.24776 42:4.26818 43:5.19588 44:8.74172 45:8.40426 46:17.1813 47:10.7093 48:8.95261 49:-4.10245 50:2.06256 51:-22.8628 52:2.85865 53:-2.44791 54:-19.2872 -1 1:2.75048 2:9.71441 3:22.8855 4:1.97155 5:14.9812 6:7.336 7:4.37923 8:2.12687 9:18.5354 10:23.1779 11:10.6429 12:3.62089 13:5.79402 14:3.09764 15:13.2464 16:24.6657 17:16.824 18:2.57768 19:6.0764 20:11.3085 21:13.5881 22:45.2372 23:4.07756 24:2.01843 25:5.8057 26:18.5858 27:13.235 28:11.3577 29:19.9539 30:5.25797 31:5.18453 32:6.06918 33:3.88842 34:45.0328 35:14.2489 36:12.4615 37:3.83542 38:11.922 39:24.3422 40:12.0385 41:9.53124 42:14.4524 43:2.51395 44:6.22518 45:17.6116 46:16.5965 47:16.3882 48:6.50641 49:-4.50088 50:2.11194 51:-23.2959 52:3.09915 53:-4.34724 54:-24.8508 -1 1:3.39851 2:19.8729 3:26.5169 4:19.5973 5:10.7969 6:6.65389 7:2.99316 8:7.99875 9:11.7176 10:20.6228 11:21.5512 12:6.32178 13:2.41562 14:7.37668 15:13.8836 16:28.8227 17:5.49311 18:1.60947 19:2.46767 20:8.01164 21:11.1323 22:13.2504 23:25.2346 24:3.60183 25:3.55256 26:14.3457 27:29.9999 28:16.6216 29:11.3818 30:6.64263 31:4.2316 32:3.10571 33:7.57606 34:9.66447 35:13.5678 36:6.94492 37:3.7693 38:3.46884 39:7.21484 40:14.9552 41:16.6266 42:10.5142 43:3.45938 44:8.66156 45:23.7956 46:22.3701 47:17.8995 48:2.64243 49:-4.92685 50:2.1499 51:-23.5233 52:2.85305 53:-7.07071 54:-19.7 -1 1:1.21924 2:4.99835 3:18.0524 4:12.7216 5:8.23103 6:3.91757 7:1.86605 8:8.00091 9:20.3568 10:29.4228 11:20.492 12:10.8812 13:2.22587 14:9.09618 15:16.6658 16:22.7601 17:16.7429 18:6.28937 19:0.815875 20:11.329 21:18.3126 22:47.9542 23:26.2334 24:2.59488 25:0.793402 26:6.33879 27:27.6771 28:11.6491 29:6.12119 30:3.77922 31:1.34725 32:9.3771 33:19.5542 34:13.4803 35:16.0082 36:5.79714 37:1.44511 38:1.52034 39:6.60611 40:9.98263 41:14.085 42:0.513024 43:1.47369 44:9.38119 45:25.4378 46:28.6441 47:12.6474 48:8.52254 49:-4.83785 50:2.10084 51:-23.3447 52:3.36978 53:-3.42702 54:-26.2786 -0.9113702659546989 1:7.76331 2:9.43419 3:16.5266 4:6.25841 5:6.93057 6:11.1283 7:7.86474 8:7.73816 9:24.8947 10:7.79237 11:24.6046 12:3.61156 13:6.5903 14:3.07508 ... [truncated message content] |
From: <bl...@us...> - 2008-11-14 16:14:26
|
Revision: 3553 http://hugin.svn.sourceforge.net/hugin/?rev=3553&view=rev Author: blimbo Date: 2008-11-14 16:14:14 +0000 (Fri, 14 Nov 2008) Log Message: ----------- Changed to svm.cpp to read model file + license properly Modified Paths: -------------- hugin/trunk/src/celeste/data/celeste.model hugin/trunk/src/celeste/svm.cpp hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp Modified: hugin/trunk/src/celeste/data/celeste.model =================================================================== --- hugin/trunk/src/celeste/data/celeste.model 2008-11-14 04:12:42 UTC (rev 3552) +++ hugin/trunk/src/celeste/data/celeste.model 2008-11-14 16:14:14 UTC (rev 3553) @@ -8,7 +8,7 @@ probA -1.96137 probB 0.272719 nr_sv 4357 9204 -license Copyright (C) 2008 by Tim Nugent under the GNU General Public License version 2 or later +license Copyright_2008_Tim_Nugent_under_the_GNU_General_Public_License_version_2_or_later SV 1 1:113.536 2:22.632 3:26.4447 4:45.1639 5:45.5912 6:25.2789 7:112.469 8:26.1402 9:28.3032 10:22.8339 11:14.127 12:17.3663 13:94.6087 14:10.5555 15:46.729 16:33.8102 17:1.97867 18:17.9705 19:81.1719 20:1.04815 21:33.9231 22:8.23855 23:17.4694 24:7.15891 25:71.3087 26:44.8404 27:32.7466 28:47.7732 29:5.76342 30:3.70073 31:61.7801 32:39.5802 33:5.76824 34:9.2565 35:14.576 36:9.04265 37:65.0054 38:8.22992 39:12.2539 40:18.0426 41:16.8896 42:13.0087 43:88.7572 44:31.0641 45:25.532 46:14.5006 47:8.58949 48:12.2478 49:-5.68331 50:7.04014 51:-32.8546 52:12.3891 53:-8.22254 54:-39.2079 1 1:26.4923 2:19.0928 3:24.6815 4:13.0368 5:31.5955 6:3.10012 7:30.2336 8:17.7457 9:44.9675 10:26.679 11:7.78434 12:8.8687 13:29.0249 14:25.3374 15:44.9996 16:21.5575 17:7.95774 18:10.1826 19:24.1565 20:19.7558 21:43.4899 22:29.3446 23:19.6841 24:9.4994 25:21.8286 26:27.3147 27:59.614 28:69.9181 29:17.231 30:5.06745 31:23.5904 32:25.9561 33:26.3583 34:32.8983 35:18.5478 36:2.92608 37:25.0358 38:25.1012 39:9.81688 40:13.3676 41:9.2383 42:2.55669 43:24.7591 44:16.4157 45:9.44852 46:23.2123 47:5.64669 48:6.1799 49:-10.2562 50:2.68075 51:-40.1877 52:6.22393 53:-10.6971 54:-38.5048 Modified: hugin/trunk/src/celeste/svm.cpp =================================================================== --- hugin/trunk/src/celeste/svm.cpp 2008-11-14 04:12:42 UTC (rev 3552) +++ hugin/trunk/src/celeste/svm.cpp 2008-11-14 16:14:14 UTC (rev 3553) @@ -6,6 +6,7 @@ #include <string.h> #include <stdarg.h> #include "svm.h" + typedef float Qfloat; typedef signed char schar; #ifndef min @@ -2717,10 +2718,10 @@ model->label = NULL; model->nSV = NULL; - char cmd[81]; + char cmd[100]; while(1) { - fscanf(fp,"%80s",cmd); + fscanf(fp,"%100s",cmd); if(strcmp(cmd,"svm_type")==0) { @@ -2811,6 +2812,12 @@ for(int i=0;i<n;i++) fscanf(fp,"%d",&model->nSV[i]); } + else if(strcmp(cmd,"license")==0) + { + fscanf(fp,"%100s",cmd); + //std::cout << "License: " << cmd << std::endl; + + } else if(strcmp(cmd,"SV")==0) { while(1) @@ -2820,9 +2827,6 @@ } break; } - else if(strcmp(cmd,"license")==0) - { - } else { fprintf(stderr,"unknown text in model file: [%s]\n",cmd); Modified: hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp 2008-11-14 04:12:42 UTC (rev 3552) +++ hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp 2008-11-14 16:14:14 UTC (rev 3553) @@ -838,7 +838,7 @@ string mask_format = "PNG"; unsigned int mask = 0; - wxMessageBox(wxString::Format(_("Processing image number %d - %d control points loaded."),imgNr,gNumLocs), _("Celeste"), wxICON_EXCLAMATION, this); + //wxMessageBox(wxString::Format(_("Processing image number %d - %d control points loaded."),imgNr,gNumLocs), _("Celeste"), wxICON_EXCLAMATION, this); get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses); @@ -861,7 +861,7 @@ } } - wxMessageBox(wxString::Format(_("Processing image number %d - %d control points removed."),imgNr,removed), _("Celeste"), wxICON_EXCLAMATION, this); + //wxMessageBox(wxString::Format(_("Processing image number %d - %d control points removed."),imgNr,removed), _("Celeste"), wxICON_EXCLAMATION, this); if (removed) cout << endl; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bl...@us...> - 2008-11-17 22:34:59
|
Revision: 3557 http://hugin.svn.sourceforge.net/hugin/?rev=3557&view=rev Author: blimbo Date: 2008-11-17 22:34:55 +0000 (Mon, 17 Nov 2008) Log Message: ----------- cpeditor mac debug code Modified Paths: -------------- hugin/trunk/src/celeste/Celeste.cpp hugin/trunk/src/hugin1/hugin/AssistantPanel.cpp hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp Modified: hugin/trunk/src/celeste/Celeste.cpp =================================================================== --- hugin/trunk/src/celeste/Celeste.cpp 2008-11-17 17:49:01 UTC (rev 3556) +++ hugin/trunk/src/celeste/Celeste.cpp 2008-11-17 22:34:55 UTC (rev 3557) @@ -42,6 +42,9 @@ void get_gabor_response(string& imagefile, unsigned int& mask, string& model_file, double& threshold,string& mask_format,vector<double>& svm_responses){ + cout << "Initial size of vector in get_gabor_response = " << svm_responses.size() << endl; + vector<double> test_vec; + // Open SVM model file struct svm_model* model; @@ -298,7 +301,12 @@ cout << "Pushing score onto response vector..." << endl; cout << "Current size:" << svm_responses.size() << endl; svm_responses.push_back(prob_estimates[0]); + test_vec.push_back(prob_estimates[0]); cout << "Done. New size:" << svm_responses.size() << endl; + + + cout << "Size of test_vec:" << test_vec.size() << endl; + cout << "End of loop." << endl; } Modified: hugin/trunk/src/hugin1/hugin/AssistantPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/AssistantPanel.cpp 2008-11-17 17:49:01 UTC (rev 3556) +++ hugin/trunk/src/hugin1/hugin/AssistantPanel.cpp 2008-11-17 22:34:55 UTC (rev 3557) @@ -487,9 +487,6 @@ gRadius = 10; spacing = (gRadius * 2) + 1; } - - // Vector to store Gabor filter responses - vector<double> svm_responses; // Image to analyse string imagefile = m_pano->getImage(imgNr).getFilename(); @@ -497,27 +494,29 @@ // Print progress MainFrame::Get()->SetStatusText(_("searching for cloud-like control points..."),0); - cout << "Running Celeste" << endl; + cout << "Running Celeste" << endl; - // Get responses - bool verbose = true; + // Vector to store Gabor filter responses + vector<double> svm_responses_ap; string mask_format = "PNG"; unsigned int mask = 0; - get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses); + + // Get responses + get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses_ap); // Print SVM results - for (unsigned int c = 0; c < svm_responses.size(); c++){ + for (unsigned int c = 0; c < svm_responses_ap.size(); c++){ unsigned int pNr = global_cp_nr[c] - removed; - if (svm_responses[c] >= threshold){ + if (svm_responses_ap[c] >= threshold){ DEBUG_DEBUG("about to delete point " << pNr); GlobalCmdHist::getInstance().addCommand( new PT::RemoveCtrlPointCmd(*m_pano,pNr) ); removed++; - cout << "CP: " << c << "\tSVM Score: " << svm_responses[c] << "\tremoved." << endl; + cout << "CP: " << c << "\tSVM Score: " << svm_responses_ap[c] << "\tremoved." << endl; } } if (removed) cout << endl; Modified: hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2008-11-17 17:49:01 UTC (rev 3556) +++ hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2008-11-17 22:34:55 UTC (rev 3557) @@ -43,6 +43,7 @@ // more standard includes if needed #include <algorithm> #include <float.h> +#include <vector> // standard hugin include #include "panoinc.h" @@ -2157,9 +2158,6 @@ spacing = (gRadius * 2) + 1; } - // Vector to store Gabor filter responses - vector<double> svm_responses; - // SVM model file #if __WXMAC__ && defined MAC_SELF_CONTAINED_BUNDLE wxString strFile; @@ -2190,19 +2188,25 @@ progress.increaseProgress(1.0, std::string(wxString(_("Running Celeste")).mb_str(wxConvLocal))); - // Get responses - bool verbose = true; + // Vector to store Gabor filter responses + vector<double> svm_responses_cp; string mask_format = "PNG"; unsigned int mask = 0; - get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses); + + cout << "Initial size of vector in cp_editor = " << svm_responses_cp.size() << endl; + + // Get responses + get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses_cp); + cout << "Final size of vector in cp_editor = " << svm_responses_cp.size() << endl; + progress.increaseProgress(1.0, std::string(wxString(_("Running Celeste")).mb_str(wxConvLocal))); // Print SVM results unsigned int removed = 0; - for (unsigned int c = 0; c < svm_responses.size(); c++){ + for (unsigned int c = 0; c < svm_responses_cp.size(); c++){ - if (svm_responses[c] >= threshold){ + if (svm_responses_cp[c] >= threshold){ unsigned int pNr = localPNr2GlobalPNr((c - removed)); DEBUG_DEBUG("about to delete point " << pNr); @@ -2210,11 +2214,13 @@ new PT::RemoveCtrlPointCmd(*m_pano,pNr) ); removed++; - cout << "CP: " << c << "\tSVM Score: " << svm_responses[c] << "\tremoved." << endl; + cout << "CP: " << c << "\tSVM Score: " << svm_responses_cp[c] << "\tremoved." << endl; } if (removed) cout << endl; } + progress.increaseProgress(1.0, std::string(wxString(_("Running Celeste")).mb_str(wxConvLocal))); + wxMessageBox(wxString::Format(_("Finished running Celeste.\n%d cloud-like control points removed."), removed), _("Celeste"), wxICON_EXCLAMATION, this); Modified: hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp 2008-11-17 17:49:01 UTC (rev 3556) +++ hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp 2008-11-17 22:34:55 UTC (rev 3557) @@ -30,7 +30,7 @@ #include "panoinc.h" #include "base_wx/platform.h" - +#include <vector> #include <map> //#include <vigra_ext/PointMatching.h> @@ -821,9 +821,6 @@ gRadius = 10; spacing = (gRadius * 2) + 1; } - - // Vector to store Gabor filter responses - vector<double> svm_responses; // Image to analyse string imagefile = pano->getImage(*itr).getFilename(); @@ -833,15 +830,14 @@ cout << "Running Celeste" << endl; - // Get responses - bool verbose = true; + // Vector to store Gabor filter responses + vector<double> svm_responses_im; string mask_format = "PNG"; unsigned int mask = 0; + + // Get responses + get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses_im); - //wxMessageBox(wxString::Format(_("Processing image number %d - %d control points loaded."),imgNr,gNumLocs), _("Celeste"), wxICON_EXCLAMATION, this); - - get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses); - MainFrame::Get()->SetStatusText(_("classifying control points..."),0); // Print SVM results This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bl...@us...> - 2008-11-18 17:38:19
|
Revision: 3561 http://hugin.svn.sourceforge.net/hugin/?rev=3561&view=rev Author: blimbo Date: 2008-11-18 17:38:17 +0000 (Tue, 18 Nov 2008) Log Message: ----------- removed celeste debug stuff Modified Paths: -------------- hugin/trunk/src/celeste/Celeste.cpp hugin/trunk/src/hugin1/hugin/AssistantPanel.cpp hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp Modified: hugin/trunk/src/celeste/Celeste.cpp =================================================================== --- hugin/trunk/src/celeste/Celeste.cpp 2008-11-18 14:04:49 UTC (rev 3560) +++ hugin/trunk/src/celeste/Celeste.cpp 2008-11-18 17:38:17 UTC (rev 3561) @@ -42,9 +42,6 @@ void get_gabor_response(string& imagefile, unsigned int& mask, string& model_file, double& threshold,string& mask_format,vector<double>& svm_responses){ - cout << "Initial size of vector in get_gabor_response = " << svm_responses.size() << endl; - vector<double> test_vec; - // Open SVM model file struct svm_model* model; @@ -55,7 +52,7 @@ } return; }else{ - //cout << "Loaded model file " << model_file << endl; + cout << "Loaded model file:\t" << model_file << endl; } // Integers and containers for libsvm @@ -67,7 +64,6 @@ // Open image using Vigra try{ - cout << "Generating feature vector by Gabor filtering..." << endl; cout << "Opening image file:\t" << imagefile << endl; // Read image given as first argument @@ -206,16 +202,16 @@ } } - // Do Gabor filtering + // Do Gabor filtering + cout << "Generating feature vector by Gabor filtering..." << endl; response = ProcessChannel( pixels, in.height(), in.width(), response, &len, basename ); - + // Turn the response into SVM vector, and add colour features int vector_length = (int)len/gNumLocs; + cout << "Classifying control points using SVM..." << endl; for (int j = 0; j < gNumLocs; j++){ - cout << "Start of loop. j:" << j << "/" << gNumLocs << endl; - int pixel_number = gLocations[j][0] + (in.width() * (gLocations[j][1] - 1)) - 1; unsigned int feature = 1; double score = 0; @@ -294,20 +290,9 @@ gabor_responses[feature-1].value = v_values[pixel_number]; //cout << feature << ":" << v_values[pixel_number] << " " << endl; gabor_responses[feature].index = -1; - - cout << "Running svm_predict_probability..." << endl; - score = svm_predict_probability(model,gabor_responses,prob_estimates); - cout << "Scores/Prob. est.:" << score << " " << prob_estimates[0] << endl; - cout << "Pushing score onto response vector..." << endl; - cout << "Current size:" << svm_responses.size() << endl; + + score = svm_predict_probability(model,gabor_responses,prob_estimates); svm_responses.push_back(prob_estimates[0]); - test_vec.push_back(prob_estimates[0]); - cout << "Done. New size:" << svm_responses.size() << endl; - - - cout << "Size of test_vec:" << test_vec.size() << endl; - - cout << "End of loop." << endl; } Modified: hugin/trunk/src/hugin1/hugin/AssistantPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/AssistantPanel.cpp 2008-11-18 14:04:49 UTC (rev 3560) +++ hugin/trunk/src/hugin1/hugin/AssistantPanel.cpp 2008-11-18 17:38:17 UTC (rev 3561) @@ -394,7 +394,7 @@ bool createCtrlP = m_pano->getNrOfCtrlPoints() == 0; - ProgressReporterDialog progress(6, _("Aligning images"), _("Finding corresponding points"),this); + ProgressReporterDialog progress(5, _("Aligning images"), _("Finding corresponding points"),this); wxString alignMsg; if (createCtrlP) { AutoCtrlPointCreator matcher; @@ -409,6 +409,7 @@ if (t && m_pano->getNrOfCtrlPoints()){ DEBUG_TRACE("Running Celeste"); + progress.increaseProgress(1, std::string(wxString(_("Running Celeste")).mb_str(wxConvLocal))); // set numeric locale to C, for correct number output char * old_locale = setlocale(LC_NUMERIC,NULL); @@ -494,8 +495,6 @@ // Print progress MainFrame::Get()->SetStatusText(_("searching for cloud-like control points..."),0); - cout << "Running Celeste" << endl; - // Vector to store Gabor filter responses vector<double> svm_responses_ap; string mask_format = "PNG"; Modified: hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2008-11-18 14:04:49 UTC (rev 3560) +++ hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2008-11-18 17:38:17 UTC (rev 3561) @@ -2184,7 +2184,6 @@ string imagefile = m_pano->getImage(m_leftImageNr).getFilename(); DEBUG_TRACE("Running Celeste"); - cout << "Running Celeste" << endl; progress.increaseProgress(1.0, std::string(wxString(_("Running Celeste")).mb_str(wxConvLocal))); @@ -2192,14 +2191,10 @@ vector<double> svm_responses_cp; string mask_format = "PNG"; unsigned int mask = 0; - - cout << "Initial size of vector in cp_editor = " << svm_responses_cp.size() << endl; - + // Get responses get_gabor_response(imagefile,mask,modelfile,threshold,mask_format,svm_responses_cp); - cout << "Final size of vector in cp_editor = " << svm_responses_cp.size() << endl; - progress.increaseProgress(1.0, std::string(wxString(_("Running Celeste")).mb_str(wxConvLocal))); // Print SVM results Modified: hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp 2008-11-18 14:04:49 UTC (rev 3560) +++ hugin/trunk/src/hugin1/hugin/ImagesPanel.cpp 2008-11-18 17:38:17 UTC (rev 3561) @@ -828,8 +828,6 @@ // Print progress MainFrame::Get()->SetStatusText(_("searching for cloud-like control points..."),0); - cout << "Running Celeste" << endl; - // Vector to store Gabor filter responses vector<double> svm_responses_im; string mask_format = "PNG"; @@ -856,11 +854,7 @@ cout << "CP: " << c << "\tSVM Score: " << svm_responses_im[c] << "\tremoved." << endl; } } - - //wxMessageBox(wxString::Format(_("Processing image number %d - %d control points removed."),imgNr,removed), _("Celeste"), wxICON_EXCLAMATION, this); - if (removed) cout << endl; - } MainFrame::Get()->SetStatusText(_(""),0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yu...@us...> - 2008-12-29 21:00:08
|
Revision: 3575 http://hugin.svn.sourceforge.net/hugin/?rev=3575&view=rev Author: yuv Date: 2008-12-29 21:00:03 +0000 (Mon, 29 Dec 2008) Log Message: ----------- support for libpano13's panini Modified Paths: -------------- hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp hugin/trunk/src/hugin1/hugin/VertexCoordRemapper.cpp hugin/trunk/src/hugin1/tests/test_projections.cpp hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h hugin/trunk/src/hugin_base/panotools/PanoToolsInterface.cpp Modified: hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp =================================================================== --- hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp 2008-12-23 07:57:32 UTC (rev 3574) +++ hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp 2008-12-29 21:00:03 UTC (rev 3575) @@ -335,7 +335,8 @@ _T("LAMBERT"), _T("LAMBERT_AZIMUTHAL"), _T("ALBERS_EQUAL_AREA_CONIC"), - _T("MILLER_CYLINDRICAL")}; + _T("MILLER_CYLINDRICAL"), + _T("PANINI")}; const wxString ProjectListBox::fileFormat[] = {_T("JPEG"), _T("PNG"), Modified: hugin/trunk/src/hugin1/hugin/VertexCoordRemapper.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/VertexCoordRemapper.cpp 2008-12-23 07:57:32 UTC (rev 3574) +++ hugin/trunk/src/hugin1/hugin/VertexCoordRemapper.cpp 2008-12-29 21:00:03 UTC (rev 3575) @@ -611,6 +611,7 @@ case HuginBase::PanoramaOptions::MERCATOR: case HuginBase::PanoramaOptions::LAMBERT: case HuginBase::PanoramaOptions::MILLER_CYLINDRICAL: + case HuginBase::PanoramaOptions::PANINI: // Cylinderical-like projections have the seam across the left // and right edge. We'll take any face within the middle third // to be continuous, the rest possibly noncontinuous. Modified: hugin/trunk/src/hugin1/tests/test_projections.cpp =================================================================== --- hugin/trunk/src/hugin1/tests/test_projections.cpp 2008-12-23 07:57:32 UTC (rev 3574) +++ hugin/trunk/src/hugin1/tests/test_projections.cpp 2008-12-29 21:00:03 UTC (rev 3575) @@ -17,7 +17,7 @@ for (int srcp=0; srcp < (int) SrcPanoImage::EQUIRECTANGULAR; srcp++) { src.setProjection( (SrcPanoImage::Projection) srcp); - for (int destp=0; destp < (int) PanoramaOptions::LAMBERT_AZIMUTHAL; destp++) + for (int destp=0; destp < (int) PanoramaOptions::PANINI; destp++) { opts.setProjection((PanoramaOptions::ProjectionFormat) destp); opts.setHFOV(100, false); Modified: hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp =================================================================== --- hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp 2008-12-23 07:57:32 UTC (rev 3574) +++ hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp 2008-12-29 21:00:03 UTC (rev 3575) @@ -447,6 +447,7 @@ case SINUSOIDAL: case LAMBERT: case LAMBERT_AZIMUTHAL: + case PANINI: default: return 360; } @@ -479,6 +480,7 @@ case FULL_FRAME_FISHEYE: case TRANSVERSE_MERCATOR: case LAMBERT_AZIMUTHAL: + case PANINI: return 360; } #endif Modified: hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h =================================================================== --- hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h 2008-12-23 07:57:32 UTC (rev 3574) +++ hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h 2008-12-29 21:00:03 UTC (rev 3575) @@ -106,7 +106,8 @@ LAMBERT = 8, LAMBERT_AZIMUTHAL = 9, ALBERS_EQUAL_AREA_CONIC = 10, - MILLER_CYLINDRICAL = 11 + MILLER_CYLINDRICAL = 11, + PANINI = 12 }; /** PTStitcher acceleration */ Modified: hugin/trunk/src/hugin_base/panotools/PanoToolsInterface.cpp =================================================================== --- hugin/trunk/src/hugin_base/panotools/PanoToolsInterface.cpp 2008-12-23 07:57:32 UTC (rev 3574) +++ hugin/trunk/src/hugin_base/panotools/PanoToolsInterface.cpp 2008-12-29 21:00:03 UTC (rev 3575) @@ -581,6 +581,9 @@ case PanoramaOptions::LAMBERT_AZIMUTHAL: image.format = _lambertazimuthal; break; + case PanoramaOptions::PANINI: + image.format = _panini; + break; #endif default: PrintError("unsupported projection"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yu...@us...> - 2008-12-31 17:13:12
|
Revision: 3576 http://hugin.svn.sourceforge.net/hugin/?rev=3576&view=rev Author: yuv Date: 2008-12-31 17:13:08 +0000 (Wed, 31 Dec 2008) Log Message: ----------- support for new libpano projections architectural, ortographic, equisolid Modified Paths: -------------- hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp hugin/trunk/src/hugin1/hugin/ChoosyRemapper.cpp hugin/trunk/src/hugin1/hugin/OutputProjectionInfo.cpp hugin/trunk/src/hugin1/hugin/VertexCoordRemapper.cpp hugin/trunk/src/hugin1/tests/test_projections.cpp hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h hugin/trunk/src/hugin_base/panotools/PanoToolsInterface.cpp Modified: hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp =================================================================== --- hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp 2008-12-29 21:00:03 UTC (rev 3575) +++ hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp 2008-12-31 17:13:08 UTC (rev 3576) @@ -336,7 +336,10 @@ _T("LAMBERT_AZIMUTHAL"), _T("ALBERS_EQUAL_AREA_CONIC"), _T("MILLER_CYLINDRICAL"), - _T("PANINI")}; + _T("PANINI"), + _T("ARCHITECTURAL"), + _T("ORTOGRAPHIC"), + _T("EQUISOLID")}; const wxString ProjectListBox::fileFormat[] = {_T("JPEG"), _T("PNG"), Modified: hugin/trunk/src/hugin1/hugin/ChoosyRemapper.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/ChoosyRemapper.cpp 2008-12-29 21:00:03 UTC (rev 3575) +++ hugin/trunk/src/hugin1/hugin/ChoosyRemapper.cpp 2008-12-31 17:13:08 UTC (rev 3576) @@ -54,6 +54,7 @@ case HuginBase::PanoramaOptions::CYLINDRICAL: case HuginBase::PanoramaOptions::LAMBERT: case HuginBase::PanoramaOptions::MILLER_CYLINDRICAL: + case HuginBase::PanoramaOptions::ARCHITECTURAL: // the circular ones are especially important, they tend to stretch the // area over the pole covers over the entire image, it is difficult to // correct those. @@ -61,6 +62,8 @@ case HuginBase::PanoramaOptions::FULL_FRAME_FISHEYE: case HuginBase::PanoramaOptions::LAMBERT_AZIMUTHAL: case HuginBase::PanoramaOptions::ALBERS_EQUAL_AREA_CONIC: + case HuginBase::PanoramaOptions::ORTHOGRAPHIC: + case HuginBase::PanoramaOptions::EQUISOLID: // Add any projections where the poles maps to a big set of points here. // check for pole crossing { Modified: hugin/trunk/src/hugin1/hugin/OutputProjectionInfo.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/OutputProjectionInfo.cpp 2008-12-29 21:00:03 UTC (rev 3575) +++ hugin/trunk/src/hugin1/hugin/OutputProjectionInfo.cpp 2008-12-31 17:13:08 UTC (rev 3576) @@ -62,6 +62,9 @@ case HuginBase::PanoramaOptions::STEREOGRAPHIC: case HuginBase::PanoramaOptions::LAMBERT_AZIMUTHAL: case HuginBase::PanoramaOptions::FULL_FRAME_FISHEYE: + case HuginBase::PanoramaOptions::ARCHITECTURAL: + case HuginBase::PanoramaOptions::ORTHOGRAPHIC: + case HuginBase::PanoramaOptions::EQUISOLID: // The poles are on the sides. // ...or at least they can be detected from the sides (disk-likes) // I've offset the noth pole slightly as the detection rate was Modified: hugin/trunk/src/hugin1/hugin/VertexCoordRemapper.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/VertexCoordRemapper.cpp 2008-12-29 21:00:03 UTC (rev 3575) +++ hugin/trunk/src/hugin1/hugin/VertexCoordRemapper.cpp 2008-12-31 17:13:08 UTC (rev 3576) @@ -261,6 +261,8 @@ case HuginBase::PanoramaOptions::FULL_FRAME_FISHEYE: case HuginBase::PanoramaOptions::STEREOGRAPHIC: case HuginBase::PanoramaOptions::LAMBERT_AZIMUTHAL: + case HuginBase::PanoramaOptions::ORTHOGRAPHIC: + case HuginBase::PanoramaOptions::EQUISOLID: // circular projections. These stretch rather nastily over the // centre, and correcting them doesn't help much, so any image // covering the outer circle is switched to a TexCoordRemapper. @@ -270,6 +272,7 @@ case HuginBase::PanoramaOptions::MERCATOR: case HuginBase::PanoramaOptions::LAMBERT: case HuginBase::PanoramaOptions::MILLER_CYLINDRICAL: + case HuginBase::PanoramaOptions::ARCHITECTURAL: // flip to the other direction of the other side horizontally. if (vertex_c[0] < x_midpoint) vertex_c[0] += x_add_360; else vertex_c[0] -= x_add_360; Modified: hugin/trunk/src/hugin1/tests/test_projections.cpp =================================================================== --- hugin/trunk/src/hugin1/tests/test_projections.cpp 2008-12-29 21:00:03 UTC (rev 3575) +++ hugin/trunk/src/hugin1/tests/test_projections.cpp 2008-12-31 17:13:08 UTC (rev 3576) @@ -17,7 +17,7 @@ for (int srcp=0; srcp < (int) SrcPanoImage::EQUIRECTANGULAR; srcp++) { src.setProjection( (SrcPanoImage::Projection) srcp); - for (int destp=0; destp < (int) PanoramaOptions::PANINI; destp++) + for (int destp=0; destp < (int) PanoramaOptions::EQUISOLID; destp++) { opts.setProjection((PanoramaOptions::ProjectionFormat) destp); opts.setHFOV(100, false); Modified: hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp =================================================================== --- hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp 2008-12-29 21:00:03 UTC (rev 3575) +++ hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp 2008-12-31 17:13:08 UTC (rev 3576) @@ -438,6 +438,8 @@ case RECTILINEAR: case TRANSVERSE_MERCATOR: return 175; + case PANINI: + return 220; case STEREOGRAPHIC: return 355; case CYLINDRICAL: @@ -447,7 +449,9 @@ case SINUSOIDAL: case LAMBERT: case LAMBERT_AZIMUTHAL: - case PANINI: + case ARCHITECTURAL: + case ORTHOGRAPHIC: + case EQUISOLID: default: return 360; } @@ -474,13 +478,16 @@ case EQUIRECTANGULAR: case LAMBERT: case SINUSOIDAL: + case PANINI: return 180; case STEREOGRAPHIC: return 355; case FULL_FRAME_FISHEYE: case TRANSVERSE_MERCATOR: case LAMBERT_AZIMUTHAL: - case PANINI: + case ARCHITECTURAL: + case ORTHOGRAPHIC: + case EQUISOLID: return 360; } #endif Modified: hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h =================================================================== --- hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h 2008-12-29 21:00:03 UTC (rev 3575) +++ hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h 2008-12-31 17:13:08 UTC (rev 3576) @@ -107,7 +107,11 @@ LAMBERT_AZIMUTHAL = 9, ALBERS_EQUAL_AREA_CONIC = 10, MILLER_CYLINDRICAL = 11, - PANINI = 12 + PANINI = 12, + ARCHITECTURAL = 13, + ORTHOGRAPHIC = 14, + EQUISOLID = 15 + }; /** PTStitcher acceleration */ Modified: hugin/trunk/src/hugin_base/panotools/PanoToolsInterface.cpp =================================================================== --- hugin/trunk/src/hugin_base/panotools/PanoToolsInterface.cpp 2008-12-29 21:00:03 UTC (rev 3575) +++ hugin/trunk/src/hugin_base/panotools/PanoToolsInterface.cpp 2008-12-31 17:13:08 UTC (rev 3576) @@ -584,6 +584,15 @@ case PanoramaOptions::PANINI: image.format = _panini; break; + case PanoramaOptions::ARCHITECTURAL: + image.format = _architectural; + break; + case PanoramaOptions::ORTHOGRAPHIC: + image.format = _ortographic; + break; + case PanoramaOptions::EQUISOLID: + image.format = _equisolid; + break; #endif default: PrintError("unsupported projection"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yu...@us...> - 2009-01-03 15:47:12
|
Revision: 3577 http://hugin.svn.sourceforge.net/hugin/?rev=3577&view=rev Author: yuv Date: 2009-01-03 15:47:09 +0000 (Sat, 03 Jan 2009) Log Message: ----------- fixed pannini / equi_pannini to mirror Daniel's changes in libpano13 Modified Paths: -------------- hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp hugin/trunk/src/hugin1/hugin/ChoosyRemapper.cpp hugin/trunk/src/hugin1/tests/test_projections.cpp hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h hugin/trunk/src/hugin_base/panotools/PanoToolsInterface.cpp Modified: hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp =================================================================== --- hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp 2008-12-31 17:13:08 UTC (rev 3576) +++ hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp 2009-01-03 15:47:09 UTC (rev 3577) @@ -339,7 +339,8 @@ _T("PANINI"), _T("ARCHITECTURAL"), _T("ORTOGRAPHIC"), - _T("EQUISOLID")}; + _T("EQUISOLID"), + _T("EQUI_PANINI")}; const wxString ProjectListBox::fileFormat[] = {_T("JPEG"), _T("PNG"), Modified: hugin/trunk/src/hugin1/hugin/ChoosyRemapper.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/ChoosyRemapper.cpp 2008-12-31 17:13:08 UTC (rev 3576) +++ hugin/trunk/src/hugin1/hugin/ChoosyRemapper.cpp 2009-01-03 15:47:09 UTC (rev 3577) @@ -54,6 +54,8 @@ case HuginBase::PanoramaOptions::CYLINDRICAL: case HuginBase::PanoramaOptions::LAMBERT: case HuginBase::PanoramaOptions::MILLER_CYLINDRICAL: +// FIXME ARCHITECTURAL is top MILLER and bottom LAMBERT. Will need different remapper for top and bottom half +// currently the least distorted result is by treating it like a 'stretchy pole' case HuginBase::PanoramaOptions::ARCHITECTURAL: // the circular ones are especially important, they tend to stretch the // area over the pole covers over the entire image, it is difficult to @@ -65,6 +67,8 @@ case HuginBase::PanoramaOptions::ORTHOGRAPHIC: case HuginBase::PanoramaOptions::EQUISOLID: // Add any projections where the poles maps to a big set of points here. + case HuginBase::PanoramaOptions::PANINI: + case HuginBase::PanoramaOptions::EQUI_PANINI: // check for pole crossing { OutputProjectionInfo *info = view_state->GetProjectionInfo(); Modified: hugin/trunk/src/hugin1/tests/test_projections.cpp =================================================================== --- hugin/trunk/src/hugin1/tests/test_projections.cpp 2008-12-31 17:13:08 UTC (rev 3576) +++ hugin/trunk/src/hugin1/tests/test_projections.cpp 2009-01-03 15:47:09 UTC (rev 3577) @@ -17,7 +17,7 @@ for (int srcp=0; srcp < (int) SrcPanoImage::EQUIRECTANGULAR; srcp++) { src.setProjection( (SrcPanoImage::Projection) srcp); - for (int destp=0; destp < (int) PanoramaOptions::EQUISOLID; destp++) + for (int destp=0; destp < (int) PanoramaOptions::EQUI_PANINI; destp++) { opts.setProjection((PanoramaOptions::ProjectionFormat) destp); opts.setHFOV(100, false); Modified: hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp =================================================================== --- hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp 2008-12-31 17:13:08 UTC (rev 3576) +++ hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp 2009-01-03 15:47:09 UTC (rev 3577) @@ -438,8 +438,9 @@ case RECTILINEAR: case TRANSVERSE_MERCATOR: return 175; - case PANINI: - return 220; +// case PANINI: +// case EQUI_PANINI: +// return 220; case STEREOGRAPHIC: return 355; case CYLINDRICAL: @@ -449,9 +450,9 @@ case SINUSOIDAL: case LAMBERT: case LAMBERT_AZIMUTHAL: - case ARCHITECTURAL: - case ORTHOGRAPHIC: - case EQUISOLID: + case ARCHITECTURAL: +// case ORTHOGRAPHIC: +// case EQUISOLID: default: return 360; } @@ -478,7 +479,6 @@ case EQUIRECTANGULAR: case LAMBERT: case SINUSOIDAL: - case PANINI: return 180; case STEREOGRAPHIC: return 355; @@ -486,9 +486,6 @@ case TRANSVERSE_MERCATOR: case LAMBERT_AZIMUTHAL: case ARCHITECTURAL: - case ORTHOGRAPHIC: - case EQUISOLID: - return 360; } #endif } Modified: hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h =================================================================== --- hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h 2008-12-31 17:13:08 UTC (rev 3576) +++ hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h 2009-01-03 15:47:09 UTC (rev 3577) @@ -108,10 +108,10 @@ ALBERS_EQUAL_AREA_CONIC = 10, MILLER_CYLINDRICAL = 11, PANINI = 12, - ARCHITECTURAL = 13, - ORTHOGRAPHIC = 14, - EQUISOLID = 15 - + ARCHITECTURAL = 13, + ORTHOGRAPHIC = 14, + EQUISOLID = 15, + EQUI_PANINI = 16 }; /** PTStitcher acceleration */ Modified: hugin/trunk/src/hugin_base/panotools/PanoToolsInterface.cpp =================================================================== --- hugin/trunk/src/hugin_base/panotools/PanoToolsInterface.cpp 2008-12-31 17:13:08 UTC (rev 3576) +++ hugin/trunk/src/hugin_base/panotools/PanoToolsInterface.cpp 2009-01-03 15:47:09 UTC (rev 3577) @@ -593,6 +593,9 @@ case PanoramaOptions::EQUISOLID: image.format = _equisolid; break; + case PanoramaOptions::EQUI_PANINI: + image.format = _equi_panini; + break; #endif default: PrintError("unsupported projection"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <st...@us...> - 2009-01-27 07:56:06
|
Revision: 3595 http://hugin.svn.sourceforge.net/hugin/?rev=3595&view=rev Author: stativ Date: 2009-01-27 07:56:03 +0000 (Tue, 27 Jan 2009) Log Message: ----------- Use default values for external programs in makefile. Fixes bug 2292979 (enblend set as 'false' in the Makefile). Modified Paths: -------------- hugin/trunk/src/hugin1/base_wx/huginConfig.cpp hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp Modified: hugin/trunk/src/hugin1/base_wx/huginConfig.cpp =================================================================== --- hugin/trunk/src/hugin1/base_wx/huginConfig.cpp 2009-01-25 22:35:32 UTC (rev 3594) +++ hugin/trunk/src/hugin1/base_wx/huginConfig.cpp 2009-01-27 07:56:03 UTC (rev 3595) @@ -33,11 +33,11 @@ using namespace PT; -std::string getProgram(wxConfigBase * config, wxString bindir, wxString file, wxString name) +std::string getProgram(wxConfigBase * config, wxString bindir, wxString file, wxString name) throw (wxString) { std::string pname; #if defined __WXMAC__ && defined MAC_SELF_CONTAINED_BUNDLE - + if (config->Read(name + wxT("/Custom"), 0l)) { wxString fn = config->Read(name + wxT("/Exe"),wxT("")); if (wxFileName::FileExists(fn)) { @@ -59,11 +59,11 @@ } return pname; } - + CFStringRef filename = MacCreateCFStringWithWxString(file); wxString fn = MacGetPathToBundledExecutableFile(filename); CFRelease(filename); - + if(fn == wxT("")) { wxMessageBox(wxString::Format(_("External program %s not found in the bundle, reverting to system path"), file.c_str()), _("Error")); @@ -91,6 +91,8 @@ if (config->Read(name + wxT("/Custom"), 0l)) { wxString fn = config->Read(name + wxT("/Exe"),wxT("")); pname = fn.mb_str(HUGIN_CONV_FILENAME); + if (pname == "") + throw wxString::Format(_("Program %s not found in preferences, reverting to default value"), file.c_str()); return pname; // TODO: need to search path, a simple FileExists() doesn't work as expected. /* @@ -103,6 +105,8 @@ */ } pname = file.mb_str(HUGIN_CONV_FILENAME); + if (pname == "") + throw wxString::Format(_("Program %s not found in preferences, reverting to default value"), file.c_str()); return pname; #endif } @@ -119,25 +123,81 @@ bindir = bindirFN.GetPath(); #endif - progs.nona = getProgram(config,bindir, wxT("nona"), wxT("nona")); - progs.hdrmerge= getProgram(config,bindir, wxT("hugin_hdrmerge"), wxT("hugin_hdrmerge")); + try { + progs.nona = getProgram(config,bindir, wxT("nona"), wxT("nona")); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } + try { + progs.hdrmerge= getProgram(config,bindir, wxT("hugin_hdrmerge"), wxT("hugin_hdrmerge")); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } - progs.PTmender = getProgram(config,bindir, wxT("PTmender"), wxT("PTmender")); - progs.PTblender= getProgram(config,bindir, wxT("PTblender"), wxT("PTblender")); - progs.PTmasker= getProgram(config,bindir, wxT("PTmasker"), wxT("PTmasker")); - progs.PTroller= getProgram(config,bindir, wxT("PTroller"), wxT("PTroller")); + try { + progs.PTmender = getProgram(config,bindir, wxT("PTmender"), wxT("PTmender")); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } + try { + progs.PTblender= getProgram(config,bindir, wxT("PTblender"), wxT("PTblender")); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } + try { + progs.PTmasker= getProgram(config,bindir, wxT("PTmasker"), wxT("PTmasker")); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } + try { + progs.PTroller= getProgram(config,bindir, wxT("PTroller"), wxT("PTroller")); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } - progs.enblend = getProgram(config,bindir, wxT("enblend"), wxT("Enblend")); - progs.enblend_opts = config->Read(wxT("/Enblend/Args"), wxT(HUGIN_ENBLEND_ARGS)).mb_str(wxConvLocal); - progs.enfuse = getProgram(config,bindir, wxT("enfuse"), wxT("Enfuse")); - progs.enfuse_opts = config->Read(wxT("/Enfuse/Args"), wxT(HUGIN_ENFUSE_ARGS)).mb_str(wxConvLocal); + try { + progs.enblend = getProgram(config,bindir, wxT("enblend"), wxT("Enblend")); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } + try { + progs.enblend_opts = config->Read(wxT("/Enblend/Args"), wxT(HUGIN_ENBLEND_ARGS)).mb_str(wxConvLocal); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } + try { + progs.enfuse = getProgram(config,bindir, wxT("enfuse"), wxT("Enfuse")); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } + try { + progs.enfuse_opts = config->Read(wxT("/Enfuse/Args"), wxT(HUGIN_ENFUSE_ARGS)).mb_str(wxConvLocal); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } - progs.exiftool = getProgram(config,bindir, wxT("exiftool"), wxT("Exiftool")); - progs.exiftool_opts = config->Read(wxT("/Exiftool/CopyArgs"), wxT(HUGIN_EXIFTOOL_COPY_ARGS)).mb_str(wxConvLocal); + try { + progs.exiftool = getProgram(config,bindir, wxT("exiftool"), wxT("Exiftool")); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } + try { + progs.exiftool_opts = config->Read(wxT("/Exiftool/CopyArgs"), wxT(HUGIN_EXIFTOOL_COPY_ARGS)).mb_str(wxConvLocal); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } // smartblend (never bundled) - progs.smartblend = config->Read(wxT("/Smartblend/SmartblendExe"),wxT("smartblend.exe")).mb_str(HUGIN_CONV_FILENAME); - progs.smartblend_opts = config->Read(wxT("/Smartblend/SmartblendArgs"),wxT(HUGIN_SMARTBLEND_ARGS)).mb_str(wxConvLocal); + try { + progs.smartblend = config->Read(wxT("/Smartblend/SmartblendExe"),wxT("smartblend.exe")).mb_str(HUGIN_CONV_FILENAME); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } + try { + progs.smartblend_opts = config->Read(wxT("/Smartblend/SmartblendArgs"),wxT(HUGIN_SMARTBLEND_ARGS)).mb_str(wxConvLocal); + } catch (wxString s) { + wxMessageBox(s, _("Warning")); + } return progs; } Modified: hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp =================================================================== --- hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp 2009-01-25 22:35:32 UTC (rev 3594) +++ hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp 2009-01-27 07:56:03 UTC (rev 3595) @@ -193,14 +193,15 @@ << "EXIFTOOL=" << quoteStringShell(progs.exiftool) << endl #endif << endl - << "ifndef ENBLEND" << endl - << " ENBLEND=false" << endl - << "endif" << endl - << endl - << "ifndef ENFUSE" << endl - << " ENFUSE=false" << endl - << "endif" << endl - << endl +// This is completely unnecessary because it should be handled by default values in struct progs +// << "ifndef ENBLEND" << endl +// << " ENBLEND=false" << endl +// << "endif" << endl +// << endl +// << "ifndef ENFUSE" << endl +// << " ENFUSE=false" << endl +// << "endif" << endl +// << endl << "# options for the programs" << endl << endl; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2009-01-27 23:23:59
|
Revision: 3599 http://hugin.svn.sourceforge.net/hugin/?rev=3599&view=rev Author: brunopostle Date: 2009-01-27 23:23:55 +0000 (Tue, 27 Jan 2009) Log Message: ----------- Fix #2047073 pto2mk doesn't write EXIFTOOL variables (nobody) Modified Paths: -------------- hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.h hugin/trunk/src/tools/pto2mk.cpp Modified: hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.h =================================================================== --- hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.h 2009-01-27 22:56:49 UTC (rev 3598) +++ hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.h 2009-01-27 23:23:55 UTC (rev 3599) @@ -76,6 +76,7 @@ enfuse = "enfuse"; smartblend = "smartblend.exe"; hdrmerge = "hugin_hdrmerge"; + exiftool = "exiftool"; } }; Modified: hugin/trunk/src/tools/pto2mk.cpp =================================================================== --- hugin/trunk/src/tools/pto2mk.cpp 2009-01-27 22:56:49 UTC (rev 3598) +++ hugin/trunk/src/tools/pto2mk.cpp 2009-01-27 23:23:55 UTC (rev 3599) @@ -25,6 +25,7 @@ #include <hugin_config.h> #include <hugin_version.h> +#include <../hugin1/hugin/config_defaults.h> #include <fstream> #include <sstream> @@ -125,6 +126,7 @@ // todo: populate from user preferences? HuginBase::PanoramaMakefileExport::PTPrograms progs; + progs.exiftool_opts = HUGIN_EXIFTOOL_COPY_ARGS; // stitch only active images UIntSet activeImgs = pano.getActiveImages(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <st...@us...> - 2009-01-28 17:34:28
|
Revision: 3600 http://hugin.svn.sourceforge.net/hugin/?rev=3600&view=rev Author: stativ Date: 2009-01-28 17:34:25 +0000 (Wed, 28 Jan 2009) Log Message: ----------- Some changes to desktop files as Bruno suggested in #2538740. I've also removed some deprecated stuff from them. Modified Paths: -------------- hugin/trunk/src/PTBatcher/CMakeLists.txt hugin/trunk/src/PTBatcher/PTBatcher.desktop hugin/trunk/src/PTBatcherGUI/PTBatcherGUI.desktop hugin/trunk/src/hugin1/hugin/hugin.desktop hugin/trunk/src/hugin1/stitch_project/hugin_stitch_project.desktop Modified: hugin/trunk/src/PTBatcher/CMakeLists.txt =================================================================== --- hugin/trunk/src/PTBatcher/CMakeLists.txt 2009-01-27 23:23:55 UTC (rev 3599) +++ hugin/trunk/src/PTBatcher/CMakeLists.txt 2009-01-28 17:34:25 UTC (rev 3600) @@ -1,8 +1,11 @@ -include_directories( ${CMAKE_SOURCE_DIR}/src/hugin1 ) - -set( PROGNAME PTBatcher ) - -add_executable(PTBatcher PTBatcher.cpp PTBatcher.h PTBatcher_rc.rc Batch.cpp Batch.h RunStitchFrame.cpp RunStitchFrame.h ProjectArray.cpp ProjectArray.h) -target_link_libraries(${PROGNAME} huginbasewx ${common_libs} ${image_libs} ${wxWidgets_LIBRARIES}) -install(TARGETS PTBatcher - DESTINATION ${BINDIR}) \ No newline at end of file +include_directories( ${CMAKE_SOURCE_DIR}/src/hugin1 ) + +set( PROGNAME PTBatcher ) + +add_executable(PTBatcher PTBatcher.cpp PTBatcher.h PTBatcher_rc.rc Batch.cpp Batch.h RunStitchFrame.cpp RunStitchFrame.h ProjectArray.cpp ProjectArray.h) +target_link_libraries(${PROGNAME} huginbasewx ${common_libs} ${image_libs} ${wxWidgets_LIBRARIES}) +install(TARGETS PTBatcher + DESTINATION ${BINDIR}) +if (UNIX) + install(FILES PTBatcher.desktop DESTINATION ${DATADIR}/applications) +endif (UNIX) Modified: hugin/trunk/src/PTBatcher/PTBatcher.desktop =================================================================== --- hugin/trunk/src/PTBatcher/PTBatcher.desktop 2009-01-27 23:23:55 UTC (rev 3599) +++ hugin/trunk/src/PTBatcher/PTBatcher.desktop 2009-01-28 17:34:25 UTC (rev 3600) @@ -1,11 +1,12 @@ -[Desktop Entry] -Name=PTBatcher -GenericName=Panorama batch processor -Categories=Application;Graphics; -Encoding=UTF-8 -Exec=PTBatcher -Icon=hugin -StartupNotify=false -Terminal=false -Type=Application -MimeType=application/x-ptoptimizer-script; +[Desktop Entry] +Name=Hugin PTBatcher +Comment=Add Hugin project to stitching queue +GenericName=Add project to batch processor +NoDisplay=true +Categories=Graphics; +Exec=PTBatcher -a %f +Icon=hugin +StartupNotify=false +Terminal=false +Type=Application +MimeType=application/x-ptoptimizer-script; Modified: hugin/trunk/src/PTBatcherGUI/PTBatcherGUI.desktop =================================================================== --- hugin/trunk/src/PTBatcherGUI/PTBatcherGUI.desktop 2009-01-27 23:23:55 UTC (rev 3599) +++ hugin/trunk/src/PTBatcherGUI/PTBatcherGUI.desktop 2009-01-28 17:34:25 UTC (rev 3600) @@ -1,13 +1,12 @@ [Desktop Entry] -Name=PTBatcher GUI +Name=Hugin PTBatcher GUI Name[ru]=Графический интерфейс к PTBatcher +Comment=Hugin project stitching queue manager GenericName=Panorama batch processor GUI GenericName[ru]=Пакетная сборка панорам -Categories=Application;Graphics; -Encoding=UTF-8 +Categories=Graphics; Exec=PTBatcherGUI Icon=hugin StartupNotify=false Terminal=false Type=Application -MimeType=application/x-ptoptimizer-script; Modified: hugin/trunk/src/hugin1/hugin/hugin.desktop =================================================================== --- hugin/trunk/src/hugin1/hugin/hugin.desktop 2009-01-27 23:23:55 UTC (rev 3599) +++ hugin/trunk/src/hugin1/hugin/hugin.desktop 2009-01-28 17:34:25 UTC (rev 3600) @@ -14,8 +14,7 @@ GenericName[fr]=Assemblage de panoramas GenericName[cs]=Nástroj pro skládání panoramat GenericName[ru]=Сшиватель панорам -Categories=Application;Graphics; -Encoding=UTF-8 +Categories=Graphics; Exec=hugin Icon=hugin StartupNotify=false Modified: hugin/trunk/src/hugin1/stitch_project/hugin_stitch_project.desktop =================================================================== --- hugin/trunk/src/hugin1/stitch_project/hugin_stitch_project.desktop 2009-01-27 23:23:55 UTC (rev 3599) +++ hugin/trunk/src/hugin1/stitch_project/hugin_stitch_project.desktop 2009-01-28 17:34:25 UTC (rev 3600) @@ -1,8 +1,8 @@ [Desktop Entry] -Name=Hugin batch stitcher +Name=Hugin project stitcher +Comment=Stitch an existing Hugin project GenericName=Panorama batch stitcher -Categories=Application;Graphics; -Encoding=UTF-8 +Categories=Graphics; Exec=hugin_stitch_project Icon=hugin StartupNotify=false This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2009-02-01 22:33:06
|
Revision: 3621 http://hugin.svn.sourceforge.net/hugin/?rev=3621&view=rev Author: brunopostle Date: 2009-02-01 21:30:38 +0000 (Sun, 01 Feb 2009) Log Message: ----------- Fix typo s/paramaters/parameters/ (Simon Oosthoek) Modified Paths: -------------- hugin/trunk/src/celeste/training/README hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp hugin/trunk/src/hugin1/hugin/xrc/pref_dialog.xrc hugin/trunk/src/translations/bg.po hugin/trunk/src/translations/ca_ES.po hugin/trunk/src/translations/cs_CZ.po hugin/trunk/src/translations/de.po hugin/trunk/src/translations/en_GB.po hugin/trunk/src/translations/es.po hugin/trunk/src/translations/fr.po hugin/trunk/src/translations/hu.po hugin/trunk/src/translations/hugin.pot hugin/trunk/src/translations/it.po hugin/trunk/src/translations/ja.po hugin/trunk/src/translations/ko.po hugin/trunk/src/translations/nl.po hugin/trunk/src/translations/pl.po hugin/trunk/src/translations/pt_BR.po hugin/trunk/src/translations/ru.po hugin/trunk/src/translations/sk.po hugin/trunk/src/translations/sv.po hugin/trunk/src/translations/uk.po hugin/trunk/src/translations/zh_CN.po Modified: hugin/trunk/src/celeste/training/README =================================================================== --- hugin/trunk/src/celeste/training/README 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/celeste/training/README 2009-02-01 21:30:38 UTC (rev 3621) @@ -35,7 +35,7 @@ 5. Run ./parse_results.pl to show the results for each run, using MCC as the scoring metric, and the number of folds complete in brackets. -6 Adjust paramaters string in create_svm_data_10_fold.pl (and possibly in the +6 Adjust parameters string in create_svm_data_10_fold.pl (and possibly in the CelesteGlobals.cpp file, in which case recompile then goto step 3). 7. Go back to step 4. Modified: hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/hugin1/hugin/CPEditorPanel.cpp 2009-02-01 21:30:38 UTC (rev 3621) @@ -2143,7 +2143,7 @@ glocation_counter++; } - // Get Celeste paramaters + // Get Celeste parameters wxConfigBase *cfg = wxConfigBase::Get(); // SVM threshold Modified: hugin/trunk/src/hugin1/hugin/xrc/pref_dialog.xrc =================================================================== --- hugin/trunk/src/hugin1/hugin/xrc/pref_dialog.xrc 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/hugin1/hugin/xrc/pref_dialog.xrc 2009-02-01 21:30:38 UTC (rev 3621) @@ -927,7 +927,7 @@ </object> <object class="sizeritem"> <object class="wxStaticBoxSizer"> - <label>Celeste paramaters</label> + <label>Celeste parameters</label> <orient>wxVERTICAL</orient> <object class="sizeritem"> <object class="wxFlexGridSizer"> Modified: hugin/trunk/src/translations/bg.po =================================================================== --- hugin/trunk/src/translations/bg.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/bg.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3989,7 +3989,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Зареждане на параметри на обектива" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/ca_ES.po =================================================================== --- hugin/trunk/src/translations/ca_ES.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/ca_ES.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3993,7 +3993,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Obrir el fitxer dels paràmetres de l'objectiu" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/cs_CZ.po =================================================================== --- hugin/trunk/src/translations/cs_CZ.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/cs_CZ.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3971,7 +3971,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Nahrát parametry objektivu" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/de.po =================================================================== --- hugin/trunk/src/translations/de.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/de.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -4018,7 +4018,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Objektivparameter laden" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/en_GB.po =================================================================== --- hugin/trunk/src/translations/en_GB.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/en_GB.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3707,7 +3707,7 @@ msgstr "" #: translations/xrc.cpp:529 xrc.cpp:529 -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/es.po =================================================================== --- hugin/trunk/src/translations/es.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/es.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3975,7 +3975,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Cargar parámetros del objetivo" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/fr.po =================================================================== --- hugin/trunk/src/translations/fr.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/fr.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -4017,7 +4017,7 @@ "contrôle ?" #: translations/xrc.cpp:529 xrc.cpp:529 -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Paramètres de Celeste" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/hu.po =================================================================== --- hugin/trunk/src/translations/hu.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/hu.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3959,7 +3959,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Objektív paramétereinek betöltése" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/hugin.pot =================================================================== --- hugin/trunk/src/translations/hugin.pot 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/hugin.pot 2009-02-01 21:30:38 UTC (rev 3621) @@ -3644,7 +3644,7 @@ msgstr "" #: translations/xrc.cpp:529 xrc.cpp:529 -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/it.po =================================================================== --- hugin/trunk/src/translations/it.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/it.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -4030,7 +4030,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Carica parametri obiettivo" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/ja.po =================================================================== --- hugin/trunk/src/translations/ja.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/ja.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3924,7 +3924,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "レンズの設定を読み込み" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/ko.po =================================================================== --- hugin/trunk/src/translations/ko.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/ko.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3930,7 +3930,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "렌즈 파라미터 불러오기" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/nl.po =================================================================== --- hugin/trunk/src/translations/nl.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/nl.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3945,7 +3945,7 @@ msgstr "Celeste (wolkopschoning) automatisch starten na zoeken van ijkpunten" #: translations/xrc.cpp:529 xrc.cpp:529 -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Celeste parameters" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/pl.po =================================================================== --- hugin/trunk/src/translations/pl.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/pl.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3988,7 +3988,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Wczytaj parametry obiektywu" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/pt_BR.po =================================================================== --- hugin/trunk/src/translations/pt_BR.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/pt_BR.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3959,7 +3959,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Ler parâmetros de lente" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/ru.po =================================================================== --- hugin/trunk/src/translations/ru.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/ru.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3973,7 +3973,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Загрузить параметры объектива" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/sk.po =================================================================== --- hugin/trunk/src/translations/sk.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/sk.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3967,7 +3967,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Nahrať parametre šošovky" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/sv.po =================================================================== --- hugin/trunk/src/translations/sv.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/sv.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3966,7 +3966,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Läs in objektivparametrar" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/uk.po =================================================================== --- hugin/trunk/src/translations/uk.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/uk.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -4008,7 +4008,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "Завантажити параметри об'єктиву" #: translations/xrc.cpp:530 xrc.cpp:530 Modified: hugin/trunk/src/translations/zh_CN.po =================================================================== --- hugin/trunk/src/translations/zh_CN.po 2009-02-01 20:36:06 UTC (rev 3620) +++ hugin/trunk/src/translations/zh_CN.po 2009-02-01 21:30:38 UTC (rev 3621) @@ -3890,7 +3890,7 @@ #: translations/xrc.cpp:529 xrc.cpp:529 #, fuzzy -msgid "Celeste paramaters" +msgid "Celeste parameters" msgstr "装载镜头参数" #: translations/xrc.cpp:530 xrc.cpp:530 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <da...@us...> - 2009-02-02 22:31:10
|
Revision: 3623 http://hugin.svn.sourceforge.net/hugin/?rev=3623&view=rev Author: dangelo Date: 2009-02-02 21:54:35 +0000 (Mon, 02 Feb 2009) Log Message: ----------- Applied patch for biplane and triplane projections (unknown author), http://sourceforge.net/tracker/?func=detail&atid=550443&aid=2556303&group_id=77506 Modified Paths: -------------- hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp hugin/trunk/src/hugin1/hugin/ChoosyRemapper.cpp hugin/trunk/src/hugin1/hugin/GLPreviewFrame.cpp hugin/trunk/src/hugin1/hugin/PreviewFrame.cpp hugin/trunk/src/hugin1/hugin/VertexCoordRemapper.cpp hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h Modified: hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp =================================================================== --- hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp 2009-02-02 20:46:05 UTC (rev 3622) +++ hugin/trunk/src/PTBatcherGUI/ProjectListBox.cpp 2009-02-02 21:54:35 UTC (rev 3623) @@ -340,7 +340,9 @@ _T("ARCHITECTURAL"), _T("ORTOGRAPHIC"), _T("EQUISOLID"), - _T("EQUI_PANINI")}; + _T("EQUI_PANINI"), + _T("BIPLANE"), + _T("TRIPLANE")}; const wxString ProjectListBox::fileFormat[] = {_T("JPEG"), _T("PNG"), Modified: hugin/trunk/src/hugin1/hugin/ChoosyRemapper.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/ChoosyRemapper.cpp 2009-02-02 20:46:05 UTC (rev 3622) +++ hugin/trunk/src/hugin1/hugin/ChoosyRemapper.cpp 2009-02-02 21:54:35 UTC (rev 3623) @@ -69,6 +69,8 @@ // Add any projections where the poles maps to a big set of points here. case HuginBase::PanoramaOptions::PANINI: case HuginBase::PanoramaOptions::EQUI_PANINI: + case HuginBase::PanoramaOptions::BIPLANE: + case HuginBase::PanoramaOptions::TRIPLANE: // check for pole crossing { OutputProjectionInfo *info = view_state->GetProjectionInfo(); Modified: hugin/trunk/src/hugin1/hugin/GLPreviewFrame.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/GLPreviewFrame.cpp 2009-02-02 20:46:05 UTC (rev 3622) +++ hugin/trunk/src/hugin1/hugin/GLPreviewFrame.cpp 2009-02-02 21:54:35 UTC (rev 3623) @@ -811,6 +811,8 @@ } } opt.setProjectionParameters(para); + opt.setHFOV(m_HFOVSlider->GetValue()); + opt.setVFOV(m_VFOVSlider->GetValue()); #endif } Modified: hugin/trunk/src/hugin1/hugin/PreviewFrame.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/PreviewFrame.cpp 2009-02-02 20:46:05 UTC (rev 3622) +++ hugin/trunk/src/hugin1/hugin/PreviewFrame.cpp 2009-02-02 21:54:35 UTC (rev 3623) @@ -826,6 +826,8 @@ } } opt.setProjectionParameters(para); + opt.setHFOV(m_HFOVSlider->GetValue()); + opt.setVFOV(m_VFOVSlider->GetValue()); #endif } Modified: hugin/trunk/src/hugin1/hugin/VertexCoordRemapper.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/VertexCoordRemapper.cpp 2009-02-02 20:46:05 UTC (rev 3622) +++ hugin/trunk/src/hugin1/hugin/VertexCoordRemapper.cpp 2009-02-02 21:54:35 UTC (rev 3623) @@ -615,6 +615,8 @@ case HuginBase::PanoramaOptions::LAMBERT: case HuginBase::PanoramaOptions::MILLER_CYLINDRICAL: case HuginBase::PanoramaOptions::PANINI: + case HuginBase::PanoramaOptions::BIPLANE: + case HuginBase::PanoramaOptions::TRIPLANE: // Cylinderical-like projections have the seam across the left // and right edge. We'll take any face within the middle third // to be continuous, the rest possibly noncontinuous. Modified: hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp =================================================================== --- hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp 2009-02-02 20:46:05 UTC (rev 3622) +++ hugin/trunk/src/hugin_base/panodata/PanoramaOptions.cpp 2009-02-02 21:54:35 UTC (rev 3623) @@ -178,6 +178,14 @@ m_projectionParams[0] = 0; m_projectionParams[1] = 60; }; + if (f == BIPLANE) + { + m_projectionParams[0] = 45; + }; + if (f == TRIPLANE) + { + m_projectionParams[0] = 60; + }; } #endif setHFOV(hfov, false); @@ -192,6 +200,14 @@ m_projectionParams[0] = 0; m_projectionParams[1] = 60; }; + if (f == BIPLANE) + { + m_projectionParams[0] = 45; + }; + if (f == TRIPLANE) + { + m_projectionParams[0] = 60; + }; } #endif double hfov = std::min(getHFOV(), getMaxHFOV()); @@ -240,7 +256,9 @@ || f == MILLER_CYLINDRICAL || f == PANINI || f == ARCHITECTURAL - || f == EQUI_PANINI); + || f == EQUI_PANINI + || f == BIPLANE + || f == TRIPLANE); //#endif } @@ -429,9 +447,26 @@ double PanoramaOptions::getMaxHFOV() const { #ifdef HasPANO13 + double angle; pano_projection_features pfeat; if (panoProjectionFeaturesQuery((int)m_projectionFormat, &pfeat)) { - return pfeat.maxHFOV; + switch(m_projectionFormat) + { + case BIPLANE: + if (m_projectionParams.size()>0) + angle = m_projectionParams[0]; + else + angle = 0; + return angle + 179; + case TRIPLANE: + if (m_projectionParams.size()>0) + angle = m_projectionParams[0]; + else + angle = 0; + return 2 * angle + 179; + default: + return pfeat.maxHFOV; + } } else { return 360; } Modified: hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h =================================================================== --- hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h 2009-02-02 20:46:05 UTC (rev 3622) +++ hugin/trunk/src/hugin_base/panodata/PanoramaOptions.h 2009-02-02 21:54:35 UTC (rev 3623) @@ -111,7 +111,9 @@ ARCHITECTURAL = 13, ORTHOGRAPHIC = 14, EQUISOLID = 15, - EQUI_PANINI = 16 + EQUI_PANINI = 16, + BIPLANE = 17, + TRIPLANE = 18 }; /** PTStitcher acceleration */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bru...@us...> - 2009-02-08 18:11:10
|
Revision: 3632 http://hugin.svn.sourceforge.net/hugin/?rev=3632&view=rev Author: brunopostle Date: 2009-02-08 18:11:02 +0000 (Sun, 08 Feb 2009) Log Message: ----------- Attempt to provide translatable strings for projection names Modified Paths: -------------- hugin/trunk/src/hugin1/hugin/PanoPanel.cpp hugin/trunk/src/translations/bg.po hugin/trunk/src/translations/ca_ES.po hugin/trunk/src/translations/cs_CZ.po hugin/trunk/src/translations/de.po hugin/trunk/src/translations/en_GB.po hugin/trunk/src/translations/es.po hugin/trunk/src/translations/fr.po hugin/trunk/src/translations/hu.po hugin/trunk/src/translations/hugin.pot hugin/trunk/src/translations/it.po hugin/trunk/src/translations/ja.po hugin/trunk/src/translations/ko.po hugin/trunk/src/translations/nl.po hugin/trunk/src/translations/pl.po hugin/trunk/src/translations/pt_BR.po hugin/trunk/src/translations/ru.po hugin/trunk/src/translations/sk.po hugin/trunk/src/translations/sv.po hugin/trunk/src/translations/uk.po hugin/trunk/src/translations/zh_CN.po Modified: hugin/trunk/src/hugin1/hugin/PanoPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/PanoPanel.cpp 2009-02-08 16:29:07 UTC (rev 3631) +++ hugin/trunk/src/hugin1/hugin/PanoPanel.cpp 2009-02-08 18:11:02 UTC (rev 3632) @@ -143,6 +143,26 @@ m_keepViewOnResize = true; m_hasStacks=false; +#ifdef ThisNeverHappens +// provide some translatable strings for the drop down menu + wxLogMessage(_("Fisheye")); + wxLogMessage(_("Stereographic")); + wxLogMessage(_("Mercator")); + wxLogMessage(_("Trans Mercator")); + wxLogMessage(_("Sinusoidal")); + wxLogMessage(_("Lambert Cylindrical Equal Area")); + wxLogMessage(_("Lambert Equal Area Azimuthal")); + wxLogMessage(_("Albers Equal Area Conic")); + wxLogMessage(_("Miller Cylindrical")); + wxLogMessage(_("Panini")); + wxLogMessage(_("Architectural")); + wxLogMessage(_("Orthographic")); + wxLogMessage(_("Equisolid")); + wxLogMessage(_("Equirectangular Panini")); + wxLogMessage(_("Biplane")); + wxLogMessage(_("Triplane")); +#endif + /* populate with all available projection types */ #ifdef HasPANO13 int nP = panoProjectionFormatCount(); Modified: hugin/trunk/src/translations/bg.po =================================================================== --- hugin/trunk/src/translations/bg.po 2009-02-08 16:29:07 UTC (rev 3631) +++ hugin/trunk/src/translations/bg.po 2009-02-08 18:11:02 UTC (rev 3632) @@ -8,7 +8,7 @@ "Project-Id-Version: bg\n" "Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?" "group_id=77506&atid=550441\n" -"POT-Creation-Date: 2009-02-01 00:10+0000\n" +"POT-Creation-Date: 2009-02-08 17:54+0000\n" "PO-Revision-Date: 2008-07-10 10:12+0200\n" "Last-Translator: Svetoslav Stefanov <lfu...@gm...>\n" "Language-Team: Bulgarian <bg...@li...>\n" @@ -199,7 +199,7 @@ msgstr "Грешка при синтактическия разбор на скрипта panotools: %s" #: hugin1/base_wx/RunStitchPanel.cpp:177 hugin1/base_wx/RunStitchPanel.cpp:194 -#: hugin1/hugin/PanoPanel.cpp:890 +#: hugin1/hugin/PanoPanel.cpp:910 msgid "Could not create temporary file" msgstr "Не може да бъде създаден временен файл" @@ -462,7 +462,7 @@ #: hugin1/hugin/AutoCtrlPointCreator.cpp:434 #: hugin1/hugin/AutoCtrlPointCreator.cpp:539 #: hugin1/hugin/AutoCtrlPointCreator.cpp:548 -#: hugin1/hugin/NonaStitcherPanel.cpp:427 hugin1/hugin/PanoPanel.cpp:986 +#: hugin1/hugin/NonaStitcherPanel.cpp:427 hugin1/hugin/PanoPanel.cpp:1006 msgid "Could not execute command: " msgstr "Не може да се изпълни команда: " @@ -852,7 +852,7 @@ #: hugin1/hugin/GLPreviewFrame.cpp:760 hugin1/hugin/GLPreviewFrame.cpp:776 #: hugin1/hugin/huginApp.cpp:66 hugin1/hugin/ImagesPanel.cpp:299 #: hugin1/hugin/ImagesPanel.cpp:320 hugin1/hugin/ImagesPanel.cpp:340 -#: hugin1/hugin/PanoPanel.cpp:566 hugin1/hugin/PanoPanel.cpp:597 +#: hugin1/hugin/PanoPanel.cpp:586 hugin1/hugin/PanoPanel.cpp:617 #: hugin1/hugin/PreviewFrame.cpp:772 hugin1/hugin/PreviewFrame.cpp:788 msgid "Value must be numeric." msgstr "Стойността трябва да е число" @@ -1644,53 +1644,124 @@ "размер на крайното изображение (в пиксели), чрез натискане на бутон \n" "«Изчисли оптимален размер размер» в подпрозореца «Събиране»." -#: hugin1/hugin/PanoPanel.cpp:572 +#: hugin1/hugin/PanoPanel.cpp:148 +msgid "Fisheye" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:149 +msgid "Stereographic" +msgstr "Стереографическая" + +#: hugin1/hugin/PanoPanel.cpp:150 +msgid "Mercator" +msgstr "Меркатора" + +#: hugin1/hugin/PanoPanel.cpp:151 +#, fuzzy +msgid "Trans Mercator" +msgstr "Поперечная Меркатора" + +#: hugin1/hugin/PanoPanel.cpp:152 +#, fuzzy +msgid "Sinusoidal" +msgstr "Синусоидная" + +#: hugin1/hugin/PanoPanel.cpp:153 +msgid "Lambert Cylindrical Equal Area" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:154 +msgid "Lambert Equal Area Azimuthal" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:155 +msgid "Albers Equal Area Conic" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:156 +#, fuzzy +msgid "Miller Cylindrical" +msgstr "Цилиндрична" + +#: hugin1/hugin/PanoPanel.cpp:157 +#, fuzzy +msgid "Panini" +msgstr "Предупреждение" + +#: hugin1/hugin/PanoPanel.cpp:158 +msgid "Architectural" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:159 +#, fuzzy +msgid "Orthographic" +msgstr "Стереографическая" + +#: hugin1/hugin/PanoPanel.cpp:160 +msgid "Equisolid" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:161 +#, fuzzy +msgid "Equirectangular Panini" +msgstr "Географска проекция" + +#: hugin1/hugin/PanoPanel.cpp:162 +#, fuzzy +msgid "Biplane" +msgstr "Билинеен" + +#: hugin1/hugin/PanoPanel.cpp:163 +msgid "Triplane" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:592 #, c-format msgid "Invalid HFOV value. Maximum HFOV for this projection is %lf." msgstr "Неправилен HFOV. Максимално възможното за тази проекция е %lf." -#: hugin1/hugin/PanoPanel.cpp:603 +#: hugin1/hugin/PanoPanel.cpp:623 #, c-format msgid "Invalid VFOV value. Maximum VFOV for this projection is %lf." msgstr "Неправилен VFOV. Максимално възможното за тази проекция е %lf." -#: hugin1/hugin/PanoPanel.cpp:649 +#: hugin1/hugin/PanoPanel.cpp:669 msgid "width needs to be an integer bigger than 0" msgstr "ширината трябва да е цяло число > 0" -#: hugin1/hugin/PanoPanel.cpp:666 +#: hugin1/hugin/PanoPanel.cpp:686 msgid "height needs to be an integer bigger than 0" msgstr "височината трябва да е цяло число > 0" -#: hugin1/hugin/PanoPanel.cpp:676 +#: hugin1/hugin/PanoPanel.cpp:696 msgid "Top needs to be an integer bigger than 0" msgstr "горната страна трябва да е цяло число > 0" -#: hugin1/hugin/PanoPanel.cpp:680 +#: hugin1/hugin/PanoPanel.cpp:700 msgid "left needs to be an integer bigger than 0" msgstr "лявата страна трябва да е цяло число > 0" -#: hugin1/hugin/PanoPanel.cpp:684 +#: hugin1/hugin/PanoPanel.cpp:704 msgid "right needs to be an integer bigger than 0" msgstr "дясната страна трябва да е цяло число > 0" -#: hugin1/hugin/PanoPanel.cpp:688 +#: hugin1/hugin/PanoPanel.cpp:708 msgid "bottom needs to be an integer bigger than 0" msgstr "долната страна трябва да е цяло число > 0" -#: hugin1/hugin/PanoPanel.cpp:749 +#: hugin1/hugin/PanoPanel.cpp:769 msgid " PTmender options not yet implemented" msgstr "Все още няма поддръжка на настройките на PTmender" -#: hugin1/hugin/PanoPanel.cpp:799 +#: hugin1/hugin/PanoPanel.cpp:819 msgid " PTblender options not yet implemented" msgstr "Все още няма поддръжка на настройките на PTblender" -#: hugin1/hugin/PanoPanel.cpp:837 +#: hugin1/hugin/PanoPanel.cpp:857 msgid "Not yet implemented" msgstr "Все още няма поддръжка" -#: hugin1/hugin/PanoPanel.cpp:986 +#: hugin1/hugin/PanoPanel.cpp:1006 msgid "ShellExecuteEx failed" msgstr "ShellExecuteEx се провали" @@ -5020,18 +5091,6 @@ #~ msgid "blue (K2):" #~ msgstr "синий (K2):" -#~ msgid "Stereographic" -#~ msgstr "Стереографическая" - -#~ msgid "Mercator" -#~ msgstr "Меркатора" - -#~ msgid "Transverse mercator" -#~ msgstr "Поперечная Меркатора" - -#~ msgid "Sinusiodal" -#~ msgstr "Синусоидная" - #~ msgid "pixel width:" #~ msgstr "Ширина в пикселах:" Modified: hugin/trunk/src/translations/ca_ES.po =================================================================== --- hugin/trunk/src/translations/ca_ES.po 2009-02-08 16:29:07 UTC (rev 3631) +++ hugin/trunk/src/translations/ca_ES.po 2009-02-08 18:11:02 UTC (rev 3632) @@ -11,7 +11,7 @@ "Project-Id-Version: Hugin 0.5\n" "Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?" "group_id=77506&atid=550441\n" -"POT-Creation-Date: 2009-02-01 00:10+0000\n" +"POT-Creation-Date: 2009-02-08 17:54+0000\n" "PO-Revision-Date: 2005-11-10 18:48+0100\n" "Last-Translator: Albert Capellades Badia <alb...@gm...>\n" "Language-Team: Translation Project Catalan Team <alb...@gm...>\n" @@ -184,7 +184,7 @@ msgstr "Error durant la obertura del projecte: " #: hugin1/base_wx/RunStitchPanel.cpp:177 hugin1/base_wx/RunStitchPanel.cpp:194 -#: hugin1/hugin/PanoPanel.cpp:890 +#: hugin1/hugin/PanoPanel.cpp:910 #, fuzzy msgid "Could not create temporary file" msgstr "No es pot llegir la mida de la imatge" @@ -433,7 +433,7 @@ #: hugin1/hugin/AutoCtrlPointCreator.cpp:434 #: hugin1/hugin/AutoCtrlPointCreator.cpp:539 #: hugin1/hugin/AutoCtrlPointCreator.cpp:548 -#: hugin1/hugin/NonaStitcherPanel.cpp:427 hugin1/hugin/PanoPanel.cpp:986 +#: hugin1/hugin/NonaStitcherPanel.cpp:427 hugin1/hugin/PanoPanel.cpp:1006 msgid "Could not execute command: " msgstr "Impossible d'executar la comanda : " @@ -828,7 +828,7 @@ #: hugin1/hugin/GLPreviewFrame.cpp:760 hugin1/hugin/GLPreviewFrame.cpp:776 #: hugin1/hugin/huginApp.cpp:66 hugin1/hugin/ImagesPanel.cpp:299 #: hugin1/hugin/ImagesPanel.cpp:320 hugin1/hugin/ImagesPanel.cpp:340 -#: hugin1/hugin/PanoPanel.cpp:566 hugin1/hugin/PanoPanel.cpp:597 +#: hugin1/hugin/PanoPanel.cpp:586 hugin1/hugin/PanoPanel.cpp:617 #: hugin1/hugin/PreviewFrame.cpp:772 hugin1/hugin/PreviewFrame.cpp:788 msgid "Value must be numeric." msgstr "El valor ha de ser numèric." @@ -1601,58 +1601,125 @@ "per determinar les dimensions de píxel per a una\n" "millor qualitat." -#: hugin1/hugin/PanoPanel.cpp:572 +#: hugin1/hugin/PanoPanel.cpp:148 +msgid "Fisheye" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:149 +msgid "Stereographic" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:150 +msgid "Mercator" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:151 +msgid "Trans Mercator" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:152 +msgid "Sinusoidal" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:153 +msgid "Lambert Cylindrical Equal Area" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:154 +msgid "Lambert Equal Area Azimuthal" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:155 +msgid "Albers Equal Area Conic" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:156 +#, fuzzy +msgid "Miller Cylindrical" +msgstr "Cilíndric" + +#: hugin1/hugin/PanoPanel.cpp:157 +msgid "Panini" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:158 +msgid "Architectural" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:159 +msgid "Orthographic" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:160 +msgid "Equisolid" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:161 +#, fuzzy +msgid "Equirectangular Panini" +msgstr "Equirectangular" + +#: hugin1/hugin/PanoPanel.cpp:162 +#, fuzzy +msgid "Biplane" +msgstr "Bilinear" + +#: hugin1/hugin/PanoPanel.cpp:163 +msgid "Triplane" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:592 #, c-format msgid "Invalid HFOV value. Maximum HFOV for this projection is %lf." msgstr "" -#: hugin1/hugin/PanoPanel.cpp:603 +#: hugin1/hugin/PanoPanel.cpp:623 #, c-format msgid "Invalid VFOV value. Maximum VFOV for this projection is %lf." msgstr "" -#: hugin1/hugin/PanoPanel.cpp:649 +#: hugin1/hugin/PanoPanel.cpp:669 msgid "width needs to be an integer bigger than 0" msgstr "l'amplada ha de ser un enter més gran que 0" -#: hugin1/hugin/PanoPanel.cpp:666 +#: hugin1/hugin/PanoPanel.cpp:686 #, fuzzy msgid "height needs to be an integer bigger than 0" msgstr "l'amplada ha de ser un enter més gran que 0" -#: hugin1/hugin/PanoPanel.cpp:676 +#: hugin1/hugin/PanoPanel.cpp:696 #, fuzzy msgid "Top needs to be an integer bigger than 0" msgstr "l'amplada ha de ser un enter més gran que 0" -#: hugin1/hugin/PanoPanel.cpp:680 +#: hugin1/hugin/PanoPanel.cpp:700 #, fuzzy msgid "left needs to be an integer bigger than 0" msgstr "l'amplada ha de ser un enter més gran que 0" -#: hugin1/hugin/PanoPanel.cpp:684 +#: hugin1/hugin/PanoPanel.cpp:704 #, fuzzy msgid "right needs to be an integer bigger than 0" msgstr "l'amplada ha de ser un enter més gran que 0" -#: hugin1/hugin/PanoPanel.cpp:688 +#: hugin1/hugin/PanoPanel.cpp:708 #, fuzzy msgid "bottom needs to be an integer bigger than 0" msgstr "l'amplada ha de ser un enter més gran que 0" -#: hugin1/hugin/PanoPanel.cpp:749 +#: hugin1/hugin/PanoPanel.cpp:769 msgid " PTmender options not yet implemented" msgstr "" -#: hugin1/hugin/PanoPanel.cpp:799 +#: hugin1/hugin/PanoPanel.cpp:819 msgid " PTblender options not yet implemented" msgstr "" -#: hugin1/hugin/PanoPanel.cpp:837 +#: hugin1/hugin/PanoPanel.cpp:857 msgid "Not yet implemented" msgstr "" -#: hugin1/hugin/PanoPanel.cpp:986 +#: hugin1/hugin/PanoPanel.cpp:1006 msgid "ShellExecuteEx failed" msgstr "Fallada de ShellExecuteEx" Modified: hugin/trunk/src/translations/cs_CZ.po =================================================================== --- hugin/trunk/src/translations/cs_CZ.po 2009-02-08 16:29:07 UTC (rev 3631) +++ hugin/trunk/src/translations/cs_CZ.po 2009-02-08 18:11:02 UTC (rev 3632) @@ -31,7 +31,7 @@ "Project-Id-Version: cs_CZ\n" "Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?" "group_id=77506&atid=550441\n" -"POT-Creation-Date: 2009-02-01 00:10+0000\n" +"POT-Creation-Date: 2009-02-08 17:54+0000\n" "PO-Revision-Date: 2008-06-05 11:57+0100\n" "Last-Translator: Václav Černý <va...@se...>\n" "Language-Team: Čeština\n" @@ -221,7 +221,7 @@ msgstr "chyba při parsování panotools skriptu: %s" #: hugin1/base_wx/RunStitchPanel.cpp:177 hugin1/base_wx/RunStitchPanel.cpp:194 -#: hugin1/hugin/PanoPanel.cpp:890 +#: hugin1/hugin/PanoPanel.cpp:910 msgid "Could not create temporary file" msgstr "Nelze vytvořit dočasný soubor" @@ -474,7 +474,7 @@ #: hugin1/hugin/AutoCtrlPointCreator.cpp:434 #: hugin1/hugin/AutoCtrlPointCreator.cpp:539 #: hugin1/hugin/AutoCtrlPointCreator.cpp:548 -#: hugin1/hugin/NonaStitcherPanel.cpp:427 hugin1/hugin/PanoPanel.cpp:986 +#: hugin1/hugin/NonaStitcherPanel.cpp:427 hugin1/hugin/PanoPanel.cpp:1006 msgid "Could not execute command: " msgstr "Nelze spustit příkaz: " @@ -859,7 +859,7 @@ #: hugin1/hugin/GLPreviewFrame.cpp:760 hugin1/hugin/GLPreviewFrame.cpp:776 #: hugin1/hugin/huginApp.cpp:66 hugin1/hugin/ImagesPanel.cpp:299 #: hugin1/hugin/ImagesPanel.cpp:320 hugin1/hugin/ImagesPanel.cpp:340 -#: hugin1/hugin/PanoPanel.cpp:566 hugin1/hugin/PanoPanel.cpp:597 +#: hugin1/hugin/PanoPanel.cpp:586 hugin1/hugin/PanoPanel.cpp:617 #: hugin1/hugin/PreviewFrame.cpp:772 hugin1/hugin/PreviewFrame.cpp:788 msgid "Value must be numeric." msgstr "Hodnota musí být číselná." @@ -1650,53 +1650,120 @@ "použijte tlačítko Vypočítat optimální velikost\n" "na panelu Nastavení Panoramatu." -#: hugin1/hugin/PanoPanel.cpp:572 +#: hugin1/hugin/PanoPanel.cpp:148 +msgid "Fisheye" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:149 +msgid "Stereographic" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:150 +msgid "Mercator" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:151 +msgid "Trans Mercator" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:152 +msgid "Sinusoidal" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:153 +msgid "Lambert Cylindrical Equal Area" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:154 +msgid "Lambert Equal Area Azimuthal" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:155 +msgid "Albers Equal Area Conic" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:156 +#, fuzzy +msgid "Miller Cylindrical" +msgstr "Cylindrická" + +#: hugin1/hugin/PanoPanel.cpp:157 +msgid "Panini" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:158 +msgid "Architectural" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:159 +msgid "Orthographic" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:160 +msgid "Equisolid" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:161 +#, fuzzy +msgid "Equirectangular Panini" +msgstr "Equirectangular" + +#: hugin1/hugin/PanoPanel.cpp:162 +#, fuzzy +msgid "Biplane" +msgstr "Bilineárně" + +#: hugin1/hugin/PanoPanel.cpp:163 +msgid "Triplane" +msgstr "" + +#: hugin1/hugin/PanoPanel.cpp:592 #, c-format msgid "Invalid HFOV value. Maximum HFOV for this projection is %lf." msgstr "Neplatné HFOV. Maximální HFOV pro vybranou projekci je %lf." -#: hugin1/hugin/PanoPanel.cpp:603 +#: hugin1/hugin/PanoPanel.cpp:623 #, c-format msgid "Invalid VFOV value. Maximum VFOV for this projection is %lf." msgstr "Neplatné VFOV. Maximální VFOV pro vybranou projekci je %lf." -#: hugin1/hugin/PanoPanel.cpp:649 +#: hugin1/hugin/PanoPanel.cpp:669 msgid "width needs to be an integer bigger than 0" msgstr "šířka musí být číslo větší než 0" -#: hugin1/hugin/PanoPanel.cpp:666 +#: hugin1/hugin/PanoPanel.cpp:686 msgid "height needs to be an integer bigger than 0" msgstr "výška musí být číslo větší než 0" -#: hugin1/hugin/PanoPanel.cpp:676 +#: hugin1/hugin/PanoPanel.cpp:696 msgid "Top needs to be an integer bigger than 0" msgstr "Vrchní okraj musí být číslo větší než 0" -#: hugin1/hugin/PanoPanel.cpp:680 +#: hugin1/hugin/PanoPanel.cpp:700 msgid "left needs to be an integer bigger than 0" msgstr "Levý okraj musí být číslo větší než 0" -#: hugin1/hugin/PanoPanel.cpp:684 +#: hugin1/hugin/PanoPanel.cpp:704 msgid "right needs to be an integer bigger than 0" msgstr "Pravý okraj musí být číslo větší než 0" -#: hugin1/hugin/PanoPanel.cpp:688 +#: hugin1/hugin/PanoPanel.cpp:708 msgid "bottom needs to be an integer bigger than 0" msgstr "Spodní okraj musí být číslo větší než 0" -#: hugin1/hugin/PanoPanel.cpp:749 +#: hugin1/hugin/PanoPanel.cpp:769 msgid " PTmender options not yet implemented" msgstr "ZNastavení pro PTMender zatím nejsou dostupná" -#: hugin1/hugin/PanoPanel.cpp:799 +#: hugin1/hugin/PanoPanel.cpp:819 msgid " PTblender options not yet implemented" msgstr "Nastavení pro PTBlender zatím nejsou dostupná" -#: hugin1/hugin/PanoPanel.cpp:837 +#: hugin1/hugin/PanoPanel.cpp:857 msgid "Not yet implemented" msgstr "Zatím není dostupné" -#: hugin1/hugin/PanoPanel.cpp:986 +#: hugin1/hugin/PanoPanel.cpp:1006 msgid "ShellExecuteEx failed" msgstr "ShellExecuteEx selhalo" Modified: hugin/trunk/src/translations/de.po =================================================================== --- hugin/trunk/src/translations/de.po 2009-02-08 16:29:07 UTC (rev 3631) +++ hugin/trunk/src/translations/de.po 2009-02-08 18:11:02 UTC (rev 3632) @@ -5,11 +5,14 @@ # Pablo dAngelo <pab...@we...>, 2004. # Lorenz Trischberger <tri...@il...>, 2004. # +#: hugin1/hugin/AssistantPanel.cpp:528 hugin1/hugin/CPEditorPanel.cpp:2224 +#: hugin1/hugin/ImagesPanel.cpp:860 PTBatcher/Batch.cpp:147 msgid "" msgstr "" "Project-Id-Version: de\n" -"Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?group_id=77506&atid=550441\n" -"POT-Creation-Date: 2009-01-24 22:12+0000\n" +"Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?" +"group_id=77506&atid=550441\n" +"POT-Creation-Date: 2009-02-08 17:54+0000\n" "PO-Revision-Date: 2009-01-30 23:52+0100\n" "Last-Translator: J. Schneider <j-s...@gm...>\n" "Language-Team: deutsch <de...@li...>\n" @@ -22,33 +25,49 @@ "X-Poedit-Language: German\n" "X-Poedit-Country: GERMANY\n" -#: hugin1/base_wx/huginConfig.cpp:47 -#: hugin1/base_wx/huginConfig.cpp:82 +#: hugin1/base_wx/huginConfig.cpp:47 hugin1/base_wx/huginConfig.cpp:82 #, c-format -msgid "External program %s not found as specified in preferences, reverting to bundled version" -msgstr "Externe Anwendung %s wurde nicht gefunden. Die Version aus dem Paket wird benutzt." +msgid "" +"External program %s not found as specified in preferences, reverting to " +"bundled version" +msgstr "" +"Externe Anwendung %s wurde nicht gefunden. Die Version aus dem Paket wird " +"benutzt." -#: hugin1/base_wx/huginConfig.cpp:47 -#: hugin1/base_wx/huginConfig.cpp:57 -#: hugin1/base_wx/huginConfig.cpp:69 -#: hugin1/base_wx/huginConfig.cpp:82 -#: hugin1/base_wx/RunStitchPanel.cpp:244 -#: hugin1/hugin/AssistantPanel.cpp:377 -#: hugin1/hugin/AssistantPanel.cpp:552 -#: hugin1/hugin/AssistantPanel.cpp:684 +#: hugin1/base_wx/huginConfig.cpp:47 hugin1/base_wx/huginConfig.cpp:57 +#: hugin1/base_wx/huginConfig.cpp:69 hugin1/base_wx/huginConfig.cpp:82 +#: hugin1/base_wx/RunStitchPanel.cpp:244 hugin1/hugin/AssistantPanel.cpp:377 +#: hugin1/hugin/AssistantPanel.cpp:552 hugin1/hugin/AssistantPanel.cpp:684 #: hugin1/hugin/CPEditorPanel.cpp:2122 #: hugin1/hugin/OptimizePhotometricPanel.cpp:487 #: hugin1/hugin/OptimizePhotometricPanel.cpp:507 msgid "Error" msgstr "Fehler" -#: hugin1/base_wx/huginConfig.cpp:57 -#: hugin1/base_wx/huginConfig.cpp:69 +#: hugin1/base_wx/huginConfig.cpp:57 hugin1/base_wx/huginConfig.cpp:69 #: hugin1/base_wx/RunStitchPanel.cpp:244 #, c-format msgid "External program %s not found in the bundle, reverting to system path" -msgstr "Externe Anwendung %s wurde nicht im Paket gefunden. Verwende Systempfad." +msgstr "" +"Externe Anwendung %s wurde nicht im Paket gefunden. Verwende Systempfad." +#: hugin1/base_wx/huginConfig.cpp:95 hugin1/base_wx/huginConfig.cpp:109 +#, fuzzy, c-format +msgid "Program %s not found in preferences, reverting to default value" +msgstr "" +"Externe Anwendung %s wurde nicht gefunden. Die Version aus dem Paket wird " +"benutzt." + +#: hugin1/base_wx/huginConfig.cpp:129 hugin1/base_wx/huginConfig.cpp:134 +#: hugin1/base_wx/huginConfig.cpp:140 hugin1/base_wx/huginConfig.cpp:145 +#: hugin1/base_wx/huginConfig.cpp:150 hugin1/base_wx/huginConfig.cpp:155 +#: hugin1/base_wx/huginConfig.cpp:161 hugin1/base_wx/huginConfig.cpp:166 +#: hugin1/base_wx/huginConfig.cpp:171 hugin1/base_wx/huginConfig.cpp:176 +#: hugin1/base_wx/huginConfig.cpp:182 hugin1/base_wx/huginConfig.cpp:187 +#: hugin1/base_wx/huginConfig.cpp:194 hugin1/base_wx/huginConfig.cpp:199 +msgid "Warning" +msgstr "Warnung" + #: hugin1/base_wx/ImageCache.cpp:539 #, c-format msgid "Loading image %s" @@ -59,8 +78,7 @@ msgid "Error reading image: %s" msgstr "Fehler beim Laden des Bildes %s" -#: hugin1/base_wx/ImageCache.cpp:691 -#: hugin_base/huginapp/ImageCache.cpp:660 +#: hugin1/base_wx/ImageCache.cpp:691 hugin_base/huginapp/ImageCache.cpp:660 msgid "Cannot load image: " msgstr "Konnte Bild nicht laden:" @@ -79,28 +97,25 @@ msgid "Creating pyramid image for %s, level %d" msgstr "Erzeuge Auflösungspyramide für %s, Stufe %d" -#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:148 +#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:160 #, c-format msgid "Failed to kill process %ld, error %d: %s" msgstr "Konnte Prozess %ld nicht beenden (Fehler %d: %s)." -#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:167 +#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:179 #, c-format msgid "Error pausing process %ld, code 1" msgstr "Fehler beim Anhalten des Prozesses %ld, Code 1" -#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:184 +#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:196 #, c-format msgid "Error pausing process %ld, code 2" msgstr "Fehler beim Pausieren des Prozesses %ld, code 2" -#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:547 +#: hugin1/base_wx/MyExternalCmdExecDialog.cpp:593 #: hugin1/stitch_project/hugin_stitch_project.cpp:123 -#: PTBatcher/RunStitchFrame.cpp:43 -#: translations/xrc.cpp:87 -#: translations/xrc.cpp:537 -#: xrc.cpp:87 -#: xrc.cpp:537 +#: PTBatcher/RunStitchFrame.cpp:43 translations/xrc.cpp:87 +#: translations/xrc.cpp:538 xrc.cpp:87 xrc.cpp:538 msgid "Cancel" msgstr "Abbrechen" @@ -117,14 +132,20 @@ msgstr "Optimiere Panorama" #: hugin1/base_wx/platform.h:39 -msgid "All Image files|*.jpg;*.JPG;*jpeg;*JPEG;*.tif;*.TIF;*.tiff;*.TIFF;*.png;*.PNG;*.bmp;*.BMP;*.gif;*.GIF;*.pnm;*.PNM;*.sun;*.viff;*.hdr|JPEG files (*.jpg,*.jpeg)|*.jpg;*.JPG;*.jpeg;*.JPEG|All files (*)|*" -msgstr "Alle Bilddateien|*.jpg;*.JPG;*jpeg;*JPEG;*.tif;*.TIF;*.tiff;*.TIFF;*.png;*.PNG;*.bmp;*.BMP;*.gif;*.GIF;*.pnm;*.PNM;*.sun;*.viff;*.hdr|JPEG-Bilder (*.jpg,*.jpeg)|*.jpg;*.JPG;;*.jpeg;*.JPEG|Alle Dateien (*)|*" +#, fuzzy +msgid "" +"All Image files|*.jpg;*.JPG;*jpeg;*JPEG;*.tif;*.TIF;*.tiff;*.TIFF;*.png;*." +"PNG;*.bmp;*.BMP;*.gif;*.GIF;*.pnm;*.PNM;*.sun;*.viff;*.hdr;*.HDR;*.exr;*.EXR|" +"JPEG files (*.jpg,*.jpeg)|*.jpg;*.JPG;*.jpeg;*.JPEG|TIFF files (*.tif,*." +"tiff)|*.tif;*.TIF;*.tiff;*.TIFF|PNG files (*.png)|*.png;*.PNG|HDR files (*." +"hdr)|*.hdr;*.HDR|EXR files (*.exr)|*.exr;*.EXR|All files (*)|*" +msgstr "" +"Alle Bilddateien|*.jpg;*.JPG;*jpeg;*JPEG;*.tif;*.TIF;*.tiff;*.TIFF;*.png;*." +"PNG;*.bmp;*.BMP;*.gif;*.GIF;*.pnm;*.PNM;*.sun;*.viff;*.hdr|JPEG-Bilder (*." +"jpg,*.jpeg)|*.jpg;*.JPG;;*.jpeg;*.JPEG|Alle Dateien (*)|*" -#: hugin1/base_wx/PTWXDlg.cpp:65 -#: hugin1/base_wx/PTWXDlg.cpp:83 -#: hugin1/base_wx/PTWXDlg.cpp:135 -#: translations/xrc.cpp:539 -#: xrc.cpp:539 +#: hugin1/base_wx/PTWXDlg.cpp:65 hugin1/base_wx/PTWXDlg.cpp:83 +#: hugin1/base_wx/PTWXDlg.cpp:135 translations/xrc.cpp:540 xrc.cpp:540 msgid "Panorama Tools" msgstr "Panorama Tools" @@ -166,23 +187,20 @@ msgid "Could not open project file:" msgstr "Konnte Projektdatei nicht öffnen:" -#: hugin1/base_wx/RunStitchPanel.cpp:118 -#: hugin1/nona_gui/nona_gui.cpp:232 +#: hugin1/base_wx/RunStitchPanel.cpp:118 hugin1/nona_gui/nona_gui.cpp:232 #: PTBatcher/ProjectArray.cpp:84 #, c-format msgid "could not open script : %s" msgstr "Konnte Skriptdatei %s nicht öffnen." -#: hugin1/base_wx/RunStitchPanel.cpp:138 -#: hugin1/nona_gui/nona_gui.cpp:239 +#: hugin1/base_wx/RunStitchPanel.cpp:138 hugin1/nona_gui/nona_gui.cpp:239 #: PTBatcher/ProjectArray.cpp:107 #, c-format msgid "error while parsing panotools script: %s" msgstr "Fehler beim Einlesen des Skriptes %s" -#: hugin1/base_wx/RunStitchPanel.cpp:177 -#: hugin1/base_wx/RunStitchPanel.cpp:194 -#: hugin1/hugin/PanoPanel.cpp:890 +#: hugin1/base_wx/RunStitchPanel.cpp:177 hugin1/base_wx/RunStitchPanel.cpp:194 +#: hugin1/hugin/PanoPanel.cpp:910 msgid "Could not create temporary file" msgstr "Konnte temporäre Datei nicht erzeugen." @@ -212,8 +230,7 @@ "Fehler beim Zusammenfügen von Projekt\n" "%s" -#: hugin1/base_wx/RunStitchPanel.cpp:253 -#: hugin1/base_wx/RunStitchPanel.cpp:259 +#: hugin1/base_wx/RunStitchPanel.cpp:253 hugin1/base_wx/RunStitchPanel.cpp:259 #: hugin1/hugin/NonaStitcherPanel.cpp:326 #: hugin1/hugin/NonaStitcherPanel.cpp:331 #: hugin1/stitch_project/hugin_stitch_project.cpp:172 @@ -241,12 +258,17 @@ msgstr "%d unverbundene Bildgruppen gefunden:" #: hugin1/hugin/AssistantPanel.cpp:316 -msgid "Please use the Control Points tab to connect all images with control points.\n" -msgstr "Benutzen Sie den Kontrollpunkte-Reiter, um alle Bilder mit Kontrollpunkten zu verbinden.\n" +msgid "" +"Please use the Control Points tab to connect all images with control " +"points.\n" +msgstr "" +"Benutzen Sie den Kontrollpunkte-Reiter, um alle Bilder mit Kontrollpunkten " +"zu verbinden.\n" #: hugin1/hugin/AssistantPanel.cpp:319 msgid "Images or control points have changed, new alignment is needed." -msgstr "Bilder oder Kontrollpunkte haben sich geändert, Neuausrichtung erforderlich." +msgstr "" +"Bilder oder Kontrollpunkte haben sich geändert, Neuausrichtung erforderlich." #: hugin1/hugin/AssistantPanel.cpp:330 msgid "Very good fit." @@ -257,12 +279,22 @@ msgstr "Die Bilder passen gut." #: hugin1/hugin/AssistantPanel.cpp:334 -msgid "Bad fit, some control points might be bad, or there are parallax and movement errors" -msgstr "Die Bilder passen schlecht. Einige Kontrollpunkte könnten falsch sein oder es liegen Fehler durch Parallaxe oder Kamarabewegung vor." +msgid "" +"Bad fit, some control points might be bad, or there are parallax and " +"movement errors" +msgstr "" +"Die Bilder passen schlecht. Einige Kontrollpunkte könnten falsch sein oder " +"es liegen Fehler durch Parallaxe oder Kamarabewegung vor." #: hugin1/hugin/AssistantPanel.cpp:336 -msgid "Very bad fit. Check for bad control points, lens parameters, or images with parallax or movement. The optimizer might have failed. Manual intervention required." -msgstr "Die Bilder passen sehr schlecht. Überprüfen Sie Kontrollpunkte, Objektivparameter oder Bilder mit Parallaxenfehler oder Bewegung. Der Optmierer könnte versagt haben. Ein manueller Eingriff ist erforderlich." +msgid "" +"Very bad fit. Check for bad control points, lens parameters, or images with " +"parallax or movement. The optimizer might have failed. Manual intervention " +"required." +msgstr "" +"Die Bilder passen sehr schlecht. Überprüfen Sie Kontrollpunkte, " +"Objektivparameter oder Bilder mit Parallaxenfehler oder Bewegung. Der " +"Optmierer könnte versagt haben. Ein manueller Eingriff ist erforderlich." #: hugin1/hugin/AssistantPanel.cpp:338 #, c-format @@ -285,38 +317,30 @@ msgid "Finding corresponding points" msgstr "Suche übereinstimmende Punkte" -#: hugin1/hugin/AssistantPanel.cpp:412 -#: hugin1/hugin/AssistantPanel.cpp:441 -#: hugin1/hugin/CPEditorPanel.cpp:2126 -#: hugin1/hugin/CPEditorPanel.cpp:2188 -#: hugin1/hugin/CPEditorPanel.cpp:2198 -#: hugin1/hugin/CPEditorPanel.cpp:2217 -#: hugin1/hugin/ImagesPanel.cpp:739 -#: hugin1/hugin/ImagesPanel.cpp:770 +#: hugin1/hugin/AssistantPanel.cpp:412 hugin1/hugin/AssistantPanel.cpp:441 +#: hugin1/hugin/CPEditorPanel.cpp:2126 hugin1/hugin/CPEditorPanel.cpp:2188 +#: hugin1/hugin/CPEditorPanel.cpp:2198 hugin1/hugin/CPEditorPanel.cpp:2217 +#: hugin1/hugin/ImagesPanel.cpp:739 hugin1/hugin/ImagesPanel.cpp:770 msgid "Running Celeste" msgstr "Starte Celeste" -#: hugin1/hugin/AssistantPanel.cpp:496 -#: hugin1/hugin/CPEditorPanel.cpp:2132 +#: hugin1/hugin/AssistantPanel.cpp:496 hugin1/hugin/CPEditorPanel.cpp:2132 #: hugin1/hugin/ImagesPanel.cpp:829 msgid "searching for cloud-like control points..." msgstr "Suche wolkenähnliche Kontrollpunkte ..." -#: hugin1/hugin/AssistantPanel.cpp:525 -#: hugin1/hugin/CPEditorPanel.cpp:2179 +#: hugin1/hugin/AssistantPanel.cpp:525 hugin1/hugin/CPEditorPanel.cpp:2179 #: hugin1/hugin/ImagesPanel.cpp:764 msgid "Celeste model file not found, Hugin needs to be properly installed." -msgstr "Celeste Modell-Datei nicht gefunden, Hugin muss ordentlich installiert werden." +msgstr "" +"Celeste Modell-Datei nicht gefunden, Hugin muss ordentlich installiert " +"werden." -#: hugin1/hugin/AssistantPanel.cpp:525 -#: hugin1/hugin/CPEditorPanel.cpp:2179 -#: hugin1/hugin/huginApp.cpp:143 -#: hugin1/hugin/huginApp.cpp:154 -#: hugin1/hugin/huginApp.cpp:166 -#: hugin1/hugin/ImagesPanel.cpp:764 +#: hugin1/hugin/AssistantPanel.cpp:525 hugin1/hugin/CPEditorPanel.cpp:2179 +#: hugin1/hugin/huginApp.cpp:143 hugin1/hugin/huginApp.cpp:154 +#: hugin1/hugin/huginApp.cpp:166 hugin1/hugin/ImagesPanel.cpp:764 #: hugin1/stitch_project/hugin_stitch_project.cpp:272 -#: PTBatcherGUI/PTBatcherGUI.cpp:67 -#: PTBatcherGUI/PTBatcherGUI.cpp:79 +#: PTBatcherGUI/PTBatcherGUI.cpp:67 PTBatcherGUI/PTBatcherGUI.cpp:79 msgid "Fatal Error" msgstr "Nicht behebbarer Fehler" @@ -331,11 +355,13 @@ #: hugin1/hugin/AssistantPanel.cpp:552 msgid "" -"Please create control points between unconnected images using the Control Points tab.\n" +"Please create control points between unconnected images using the Control " +"Points tab.\n" "\n" "After adding the points, press the \"Align\" button again" msgstr "" -"Bitte fügen Sie Kontrollpunkte zwischen unverbundenen Bildern mit Hilfe des Kontrollpunkte-Reiters hinzu.\n" +"Bitte fügen Sie Kontrollpunkte zwischen unverbundenen Bildern mit Hilfe des " +"Kontrollpunkte-Reiters hinzu.\n" "\n" "Drücken Sie danach noch einmal die Ausrichten-Schaltfläche." @@ -382,11 +408,8 @@ msgid "Would you like to use Autopano-Sift instead?" msgstr "Möchten Sie stattdessen Autopano-SIFT verwenden?" -#: hugin1/hugin/AutoCtrlPointCreator.cpp:279 -#: translations/xrc.cpp:496 -#: translations/xrc.cpp:505 -#: xrc.cpp:496 -#: xrc.cpp:505 +#: hugin1/hugin/AutoCtrlPointCreator.cpp:279 translations/xrc.cpp:499 +#: translations/xrc.cpp:508 xrc.cpp:499 xrc.cpp:508 msgid "Autopano" msgstr "Autopano" @@ -394,12 +417,17 @@ #: hugin1/hugin/AutoCtrlPointCreator.cpp:300 #: hugin1/hugin/AutoCtrlPointCreator.cpp:311 msgid "Autopano-SIFT not found. Please specify a valid path in the preferences" -msgstr "Autopano-SIFT nicht gefunden. Bitte gültigen Pfad in den Einstellungen angeben." +msgstr "" +"Autopano-SIFT nicht gefunden. Bitte gültigen Pfad in den Einstellungen " +"angeben." #: hugin1/hugin/AutoCtrlPointCreator.cpp:362 #, c-format -msgid "Please use %namefile, %i or %s to specify the input files for autopano-sift" -msgstr "Bitte benutzen Sie %namefile, %i oder %s für die Eingabedateien von Autopano-SIFT" +msgid "" +"Please use %namefile, %i or %s to specify the input files for autopano-sift" +msgstr "" +"Bitte benutzen Sie %namefile, %i oder %s für die Eingabedateien von Autopano-" +"SIFT" #: hugin1/hugin/AutoCtrlPointCreator.cpp:363 msgid "Error in Autopano command" @@ -428,8 +456,7 @@ #: hugin1/hugin/AutoCtrlPointCreator.cpp:434 #: hugin1/hugin/AutoCtrlPointCreator.cpp:539 #: hugin1/hugin/AutoCtrlPointCreator.cpp:548 -#: hugin1/hugin/NonaStitcherPanel.cpp:427 -#: hugin1/hugin/PanoPanel.cpp:986 +#: hugin1/hugin/NonaStitcherPanel.cpp:427 hugin1/hugin/PanoPanel.cpp:1006 msgid "Could not execute command: " msgstr "Konnte den Befehl nicht ausführen:" @@ -491,7 +518,9 @@ #: hugin1/hugin/AutoCtrlPointCreator.cpp:481 msgid "autopano.exe not found. Please specify a valid path in the preferences" -msgstr "Autopano.exe nicht gefunden. Bitte gültigen Pfad in den Einstellungen angeben." +msgstr "" +"Autopano.exe nicht gefunden. Bitte gültigen Pfad in den Einstellungen " +"angeben." #: hugin1/hugin/AutoCtrlPointCreator.cpp:563 msgid "" @@ -509,8 +538,7 @@ msgid "no command in redo history" msgstr "Kein Kommando im Wiederholenprotokoll" -#: hugin1/hugin/CPEditorPanel.cpp:219 -#: hugin1/hugin/CPListFrame.cpp:283 +#: hugin1/hugin/CPEditorPanel.cpp:219 hugin1/hugin/CPListFrame.cpp:283 #: hugin1/hugin/ImagesList.cpp:71 msgid "#" msgstr "Nr." @@ -531,14 +559,12 @@ msgid "right y" msgstr "y rechts" -#: hugin1/hugin/CPEditorPanel.cpp:224 -#: hugin1/hugin/CPListFrame.cpp:290 +#: hugin1/hugin/CPEditorPanel.cpp:224 hugin1/hugin/CPListFrame.cpp:290 #: hugin1/hugin/CPListFrame.cpp:297 msgid "Alignment" msgstr "Ausrichtung" -#: hugin1/hugin/CPEditorPanel.cpp:225 -#: hugin1/hugin/CPListFrame.cpp:291 +#: hugin1/hugin/CPEditorPanel.cpp:225 hugin1/hugin/CPListFrame.cpp:291 #: hugin1/hugin/CPListFrame.cpp:298 msgid "Distance" msgstr "Abstand" @@ -551,25 +577,25 @@ msgid "new control point added" msgstr "Neuer Kontrollpunkt hinzugefügt" -#: hugin1/hugin/CPEditorPanel.cpp:751 -#: hugin1/hugin/CPEditorPanel.cpp:976 +#: hugin1/hugin/CPEditorPanel.cpp:751 hugin1/hugin/CPEditorPanel.cpp:976 msgid "searching similar points..." msgstr "Suche ähnliche Punkte ..." -#: hugin1/hugin/CPEditorPanel.cpp:770 -#: hugin1/hugin/CPEditorPanel.cpp:894 +#: hugin1/hugin/CPEditorPanel.cpp:770 hugin1/hugin/CPEditorPanel.cpp:894 msgid "Error during Fine-tune" msgstr "Fehler bei der Feinjustierung" -#: hugin1/hugin/CPEditorPanel.cpp:784 -#: hugin1/hugin/CPEditorPanel.cpp:914 +#: hugin1/hugin/CPEditorPanel.cpp:784 hugin1/hugin/CPEditorPanel.cpp:914 #: hugin1/hugin/CPEditorPanel.cpp:1050 #, c-format -msgid "Point finetuned, angle: %.0f deg, correlation coefficient: %0.3f, curvature: %0.3f %0.3f " -msgstr "Punkt justiert, Winkel: %.0f °, Korrelationskoeffizient: %0.3f, Krümmung: %0.3f %0.3f" +msgid "" +"Point finetuned, angle: %.0f deg, correlation coefficient: %0.3f, curvature: " +"%0.3f %0.3f " +msgstr "" +"Punkt justiert, Winkel: %.0f °, Korrelationskoeffizient: %0.3f, Krümmung: %" +"0.3f %0.3f" -#: hugin1/hugin/CPEditorPanel.cpp:787 -#: hugin1/hugin/CPEditorPanel.cpp:917 +#: hugin1/hugin/CPEditorPanel.cpp:787 hugin1/hugin/CPEditorPanel.cpp:917 msgid "change points, or press right mouse button to add the pair" msgstr "Punkte ändern oder mit der rechten Maustaste das Paar hinzufügen" @@ -581,44 +607,38 @@ #, c-format msgid "" "No similar point found. Check the similarity visually.\n" -"Correlation coefficient (%.3f) is lower than the threshold set in the preferences." +"Correlation coefficient (%.3f) is lower than the threshold set in the " +"preferences." msgstr "" "Keinen ähnlichen Punkt gefunden. Bitte prüfen Sie die Position.\n" -"Der Korrelationskoeffizient ist %.3f und damit kleiner als der eingestellte Schwellwert." +"Der Korrelationskoeffizient ist %.3f und damit kleiner als der eingestellte " +"Schwellwert." #: hugin1/hugin/CPEditorPanel.cpp:1058 msgid "No similar point found" msgstr "Keinen ähnlichen Punkt gefunden" -#: hugin1/hugin/CPEditorPanel.cpp:1220 -#: hugin1/hugin/CPEditorPanel.cpp:1231 +#: hugin1/hugin/CPEditorPanel.cpp:1220 hugin1/hugin/CPEditorPanel.cpp:1231 msgid "Add new Line" msgstr "Neue Linie hinzufügen" -#: hugin1/hugin/CPEditorPanel.cpp:1226 -#: hugin1/hugin/CPEditorPanel.cpp:1229 -#: hugin1/hugin/CPEditorPanel.cpp:1563 -#: hugin1/hugin/CPListFrame.cpp:417 +#: hugin1/hugin/CPEditorPanel.cpp:1226 hugin1/hugin/CPEditorPanel.cpp:1229 +#: hugin1/hugin/CPEditorPanel.cpp:1563 hugin1/hugin/CPListFrame.cpp:417 #, c-format msgid "Line %d" msgstr "Gerade %d" -#: hugin1/hugin/CPEditorPanel.cpp:1554 -#: hugin1/hugin/CPListFrame.cpp:408 -#: hugin1/hugin/GLPreviewFrame.cpp:266 -#: hugin1/hugin/PreviewFrame.cpp:246 -#: translations/xrc.cpp:49 -#: xrc.cpp:49 +#: hugin1/hugin/CPEditorPanel.cpp:1554 hugin1/hugin/CPListFrame.cpp:408 +#: hugin1/hugin/GLPreviewFrame.cpp:266 hugin1/hugin/PreviewFrame.cpp:246 +#: translations/xrc.cpp:49 xrc.cpp:49 msgid "normal" msgstr "Normal" -#: hugin1/hugin/CPEditorPanel.cpp:1557 -#: hugin1/hugin/CPListFrame.cpp:411 +#: hugin1/hugin/CPEditorPanel.cpp:1557 hugin1/hugin/CPListFrame.cpp:411 msgid "vert. Line" msgstr "Vert. Linie" -#: hugin1/hugin/CPEditorPanel.cpp:1560 -#: hugin1/hugin/CPListFrame.cpp:414 +#: hugin1/hugin/CPEditorPanel.cpp:1560 hugin1/hugin/CPListFrame.cpp:414 msgid "horiz. Line" msgstr "Horiz. Linie" @@ -640,10 +660,8 @@ msgid "Corner Detection threshold" msgstr "Schwellwert für Eckendetektion" -#: hugin1/hugin/CPEditorPanel.cpp:1883 -#: hugin1/hugin/CPEditorPanel.cpp:1887 -#: translations/xrc.cpp:114 -#: xrc.cpp:114 +#: hugin1/hugin/CPEditorPanel.cpp:1883 hugin1/hugin/CPEditorPanel.cpp:1887 +#: translations/xrc.cpp:114 xrc.cpp:114 msgid "Create control points" msgstr "Kontrollpunkte erstellen" @@ -665,21 +683,23 @@ msgstr "Punkt im linken Bild wählen" #: hugin1/hugin/CPEditorPanel.cpp:2122 -msgid "Cannot run celeste without at least one control point connecting the two images" -msgstr "Kann Celeste nicht starten, ohne dass mindestens ein Kontrollpunkt die zwei Bilder verbindet." +msgid "" +"Cannot run celeste without at least one control point connecting the two " +"images" +msgstr "" +"Kann Celeste nicht starten, ohne dass mindestens ein Kontrollpunkt die zwei " +"Bilder verbindet." #: hugin1/hugin/CPEditorPanel.cpp:2219 #, c-format msgid "" "Finished running Celeste.\n" "%d cloud-like control points removed." -msgstr "Durchgang von Celeste beendet. %d wolkenartige Kontrollpunkte entfernt." +msgstr "" +"Durchgang von Celeste beendet. %d wolkenartige Kontrollpunkte entfernt." -#: hugin1/hugin/CPEditorPanel.cpp:2220 -#: translations/xrc.cpp:62 -#: translations/xrc.cpp:523 -#: xrc.cpp:62 -#: xrc.cpp:523 +#: hugin1/hugin/CPEditorPanel.cpp:2220 translations/xrc.cpp:62 +#: translations/xrc.cpp:526 xrc.cpp:62 xrc.cpp:526 msgid "Celeste" msgstr "Celeste" @@ -695,27 +715,20 @@ msgid "Could not process event!" msgstr "Interner Fehler: Konnte Ereignis nicht verarbeiten" -#: hugin1/hugin/CPListFrame.cpp:284 -#: hugin1/hugin/CPListFrame.cpp:294 +#: hugin1/hugin/CPListFrame.cpp:284 hugin1/hugin/CPListFrame.cpp:294 msgid "left Img." msgstr "linkes Bild" -#: hugin1/hugin/CPListFrame.cpp:285 -#: hugin1/hugin/CPListFrame.cpp:288 -#: translations/xrc.cpp:19 -#: translations/xrc.cpp:41 -#: xrc.cpp:19 -#: xrc.cpp:41 +#: hugin1/hugin/CPListFrame.cpp:285 hugin1/hugin/CPListFrame.cpp:288 +#: translations/xrc.cpp:19 translations/xrc.cpp:41 xrc.cpp:19 xrc.cpp:41 msgid "x" msgstr "x" -#: hugin1/hugin/CPListFrame.cpp:286 -#: hugin1/hugin/CPListFrame.cpp:289 +#: hugin1/hugin/CPListFrame.cpp:286 hugin1/hugin/CPListFrame.cpp:289 msgid "y" msgstr "y" -#: hugin1/hugin/CPListFrame.cpp:287 -#: hugin1/hugin/CPListFrame.cpp:295 +#: hugin1/hugin/CPListFrame.cpp:287 hugin1/hugin/CPListFrame.cpp:295 msgid "right Img." msgstr "rechtes Bild" @@ -739,10 +752,8 @@ msgid "Select Control Points" msgstr "Kontrollpunkte auswählen" -#: hugin1/hugin/CropPanel.cpp:250 -#: hugin1/hugin/CropPanel.cpp:266 -#: hugin1/hugin/CropPanel.cpp:282 -#: hugin1/hugin/CropPanel.cpp:298 +#: hugin1/hugin/CropPanel.cpp:250 hugin1/hugin/CropPanel.cpp:266 +#: hugin1/hugin/CropPanel.cpp:282 hugin1/hugin/CropPanel.cpp:298 msgid "Please enter a valid number" msgstr "Bitte eine gültige Zahl eingeben" @@ -750,122 +761,92 @@ msgid "Fast Panorama preview" msgstr "Schnelle Panoramavorschau" -#: hugin1/hugin/GLPreviewFrame.cpp:150 -#: hugin1/hugin/PreviewFrame.cpp:129 +#: hugin1/hugin/GLPreviewFrame.cpp:150 hugin1/hugin/PreviewFrame.cpp:129 msgid "displayed images" msgstr "Dargestellte Bilder" -#: hugin1/hugin/GLPreviewFrame.cpp:186 -#: hugin1/hugin/PreviewFrame.cpp:166 +#: hugin1/hugin/GLPreviewFrame.cpp:186 hugin1/hugin/PreviewFrame.cpp:166 msgid "VFOV" msgstr "VFOV" -#: hugin1/hugin/GLPreviewFrame.cpp:190 -#: hugin1/hugin/PreviewFrame.cpp:170 +#: hugin1/hugin/GLPreviewFrame.cpp:190 hugin1/hugin/PreviewFrame.cpp:170 msgid "drag to change the vertical field of view" msgstr "Ziehen um den vertikalen Bildwinkel festzulegen" -#: hugin1/hugin/GLPreviewFrame.cpp:199 -#: hugin1/hugin/PreviewFrame.cpp:179 +#: hugin1/hugin/GLPreviewFrame.cpp:199 hugin1/hugin/PreviewFrame.cpp:179 msgid "HFOV" msgstr "HFOV" -#: hugin1/hugin/GLPreviewFrame.cpp:204 -#: hugin1/hugin/PreviewFrame.cpp:184 +#: hugin1/hugin/GLPreviewFrame.cpp:204 hugin1/hugin/PreviewFrame.cpp:184 msgid "drag to change the horizontal field of view" msgstr "Ziehen um den horizontalen Bildwinkel festzulegen" -#: hugin1/hugin/GLPreviewFrame.cpp:215 -#: hugin1/hugin/PreviewFrame.cpp:195 +#: hugin1/hugin/GLPreviewFrame.cpp:215 hugin1/hugin/PreviewFrame.cpp:195 msgid "Preview Options" msgstr "Vorschauoptionen" -#: hugin1/hugin/GLPreviewFrame.cpp:218 -#: hugin1/hugin/PreviewFrame.cpp:198 -#: translations/xrc.cpp:359 -#: xrc.cpp:359 +#: hugin1/hugin/GLPreviewFrame.cpp:218 hugin1/hugin/PreviewFrame.cpp:198 +#: translations/xrc.cpp:362 xrc.cpp:362 msgid "projection (f):" msgstr "Projektion:" -#: hugin1/hugin/GLPreviewFrame.cpp:261 -#: hugin1/hugin/PreviewFrame.cpp:241 +#: hugin1/hugin/GLPreviewFrame.cpp:261 hugin1/hugin/PreviewFrame.cpp:241 msgid "Blend mode:" msgstr "Überblendmodus:" -#: hugin1/hugin/GLPreviewFrame.cpp:267 -#: hugin1/hugin/PreviewFrame.cpp:247 +#: hugin1/hugin/GLPreviewFrame.cpp:267 hugin1/hugin/PreviewFrame.cpp:247 msgid "difference" msgstr "Unterschiede" -#: hugin1/hugin/GLPreviewFrame.cpp:306 -#: hugin1/hugin/PreviewFrame.cpp:281 +#: hugin1/hugin/GLPreviewFrame.cpp:306 hugin1/hugin/PreviewFrame.cpp:281 msgid "EV:" msgstr "EV:" -#: hugin1/hugin/GLPreviewFrame.cpp:319 -#: hugin1/hugin/GLPreviewFrame.cpp:353 -#: hugin1/hugin/PreviewFrame.cpp:294 -#: hugin1/hugin/PreviewFrame.cpp:328 +#: hugin1/hugin/GLPreviewFrame.cpp:319 hugin1/hugin/GLPreviewFrame.cpp:353 +#: hugin1/hugin/PreviewFrame.cpp:294 hugin1/hugin/PreviewFrame.cpp:328 msgid "0" msgstr "0" -#: hugin1/hugin/GLPreviewFrame.cpp:339 -#: hugin1/hugin/PreviewFrame.cpp:314 +#: hugin1/hugin/GLPreviewFrame.cpp:339 hugin1/hugin/PreviewFrame.cpp:314 msgid "Projection Parameters" msgstr "Projektionsparameter" -#: hugin1/hugin/GLPreviewFrame.cpp:348 -#: hugin1/hugin/PreviewFrame.cpp:323 +#: hugin1/hugin/GLPreviewFrame.cpp:348 hugin1/hugin/PreviewFrame.cpp:323 msgid "param:" msgstr "Param:" -#: hugin1/hugin/GLPreviewFrame.cpp:629 -#: hugin1/hugin/PreviewFrame.cpp:623 +#: hugin1/hugin/GLPreviewFrame.cpp:629 hugin1/hugin/PreviewFrame.cpp:623 msgid "Rectilinear" msgstr "Gradlinig (Rectilinear)" -#: hugin1/hugin/GLPreviewFrame.cpp:630 -#: hugin1/hugin/PreviewFrame.cpp:624 +#: hugin1/hugin/GLPreviewFrame.cpp:630 hugin1/hugin/PreviewFrame.cpp:624 msgid "Cylindrical" msgstr "Zylindrisch" -#: hugin1/hugin/GLPreviewFrame.cpp:631 -#: hugin1/hugin/ImagesList.cpp:492 -#: hugin1/hugin/PreviewFrame.cpp:625 -#: translations/xrc.cpp:15 -#: translations/xrc.cpp:33 -#: translations/xrc.cpp:141 -#: xrc.cpp:15 -#: xrc.cpp:33 +#: hugin1/hugin/GLPreviewFrame.cpp:631 hugin1/hugin/ImagesList.cpp:492 +#: hugin1/hugin/PreviewFrame.cpp:625 translations/xrc.cpp:15 +#: translations/xrc.cpp:33 translations/xrc.cpp:141 xrc.cpp:15 xrc.cpp:33 #: xrc.cpp:141 msgid "Equirectangular" msgstr "Sphärisch (Equirectangular)" -#: hugin1/hugin/GLPreviewFrame.cpp:727 -#: hugin1/hugin/PreviewFrame.cpp:737 +#: hugin1/hugin/GLPreviewFrame.cpp:727 hugin1/hugin/PreviewFrame.cpp:737 msgid "Yaw value must be numeric." msgstr "Gierwinkel (Yaw) muss numerisch sein" -#: hugin1/hugin/GLPreviewFrame.cpp:733 -#: hugin1/hugin/PreviewFrame.cpp:743 +#: hugin1/hugin/GLPreviewFrame.cpp:733 hugin1/hugin/PreviewFrame.cpp:743 msgid "Pitch value must be numeric." msgstr "Nickwinkel (Pitsch) muss numerisch sein" -#: hugin1/hugin/GLPreviewFrame.cpp:739 -#: hugin1/hugin/PreviewFrame.cpp:749 +#: hugin1/hugin/GLPreviewFrame.cpp:739 hugin1/hugin/PreviewFrame.cpp:749 msgid "Roll value must be numeric." msgstr "Rollwinkel (Roll) muss numerisch sein" -#: hugin1/hugin/GLPreviewFrame.cpp:760 -#: hugin1/hugin/GLPreviewFrame.cpp:776 -#: hugin1/hugin/huginApp.cpp:66 -#: hugin1/hugin/ImagesPanel.cpp:299 -#: hugin1/hugin/ImagesPanel.cpp:320 -#: hugin1/hugin/ImagesPanel.cpp:340 -#: hugin1/hugin/PanoPanel.cpp:566 -#: hugin1/hugin/PanoPanel.cpp:597 -#: hugin1/hugin/PreviewFrame.cpp:772 -#: hugin1/hugin/PreviewFrame.cpp:788 +#: hugin1/hugin/GLPreviewFrame.cpp:760 hugin1/hugin/GLPreviewFrame.cpp:776 +#: hugin1/hugin/huginApp.cpp:66 hugin1/hugin/ImagesPanel.cpp:299 +#: hugin1/hugin/ImagesPanel.cpp:320 hugin1/hugin/ImagesPanel.cpp:340 +#: hugin1/hugin/PanoPanel.cpp:586 hugin1/hugin/PanoPanel.cpp:617 +#: hugin1/hugin/PreviewFrame.cpp:772 hugin1/hugin/PreviewFrame.cpp:788 msgid "Value must be numeric." msgstr "Wert muss numerisch sein." @@ -875,12 +856,14 @@ "No or only partial information about field of view was found in image file\n" "%s\n" "\n" -"Please enter the horizontal field of view (HFOV) or the focal length and crop factor." +"Please enter the horizontal field of view (HFOV) or the focal length and " +"crop factor." msgstr "" "In der Bilddatei \n" "%s\n" "wurden keine oder nur unvollständige Daten über den Bildwinkel gefunden.\n" -"Bitte geben Sie den horizontalen Bildwinkel (HFOV) oder die Brennweite und den Formatfaktor ein." +"Bitte geben Sie den horizontalen Bildwinkel (HFOV) oder die Brennweite und " +"den Formatfaktor ein." #: hugin1/hugin/HFOVDialog.cpp:157 msgid "The horizontal field of view must be positive." @@ -894,8 +877,7 @@ msgid "The crop factor must be positive." msgstr "Der Formatfaktor muss größer Null sein." -#: hugin1/hugin/huginApp.cpp:143 -#: PTBatcherGUI/PTBatcherGUI.cpp:67 +#: hugin1/hugin/huginApp.cpp:143 PTBatcherGUI/PTBatcherGUI.cpp:67 msgid "xrc directory not found in bundle" msgstr "xrc-Verzeichnis nicht im Paket gefunden" @@ -913,8 +895,7 @@ "xrc-Verzeichnis nicht gefunden, Hugin muss ordentlich installiert werden.\n" "Folgenden Pfad versucht:" -#: hugin1/hugin/ImagesList.cpp:332 -#: hugin1/hugin/ImagesList.cpp:448 +#: hugin1/hugin/ImagesList.cpp:332 hugin1/hugin/ImagesList.cpp:448 msgid "Filename" msgstr "Dateiname" @@ -990,53 +971,33 @@ msgid "t" msgstr "t" -#: hugin1/hugin/ImagesList.cpp:488 -#: translations/xrc.cpp:11 -#: translations/xrc.cpp:29 -#: translations/xrc.cpp:137 -#: xrc.cpp:11 -#: xrc.cpp:29 +#: hugin1/hugin/ImagesList.cpp:488 translations/xrc.cpp:11 +#: translations/xrc.cpp:29 translations/xrc.cpp:137 xrc.cpp:11 xrc.cpp:29 #: xrc.cpp:137 msgid "Normal (rectilinear)" msgstr "Gradlinig (Rectilinear)" -#: hugin1/hugin/ImagesList.cpp:489 -#: translations/xrc.cpp:12 -#: translations/xrc.cpp:30 -#: translations/xrc.cpp:138 -#: xrc.cpp:12 -#: xrc.cpp:30 +#: hugin1/hugin/ImagesList.cpp:489 translations/xrc.cpp:12 +#: translations/xrc.cpp:30 translations/xrc.cpp:138 xrc.cpp:12 xrc.cpp:30 #: xrc.cpp:138 msgid "Panoramic (cylindrical)" msgstr "Zylindrisch" -#: hugin1/hugin/ImagesList.cpp:490 -#: translations/xrc.cpp:13 -#: translations/xrc.cpp:31 -#: translations/xrc.cpp:139 -#: xrc.cpp:13 -#: xrc.cpp:31 +#: hugin1/hugin/ImagesList.cpp:490 translations/xrc.cpp:13 +#: translations/xrc.cpp:31 translations/xrc.cpp:139 xrc.cpp:13 xrc.cpp:31 #: xrc.cpp:139 msgid "Circular fisheye" msgstr "Fischauge kreisförmig" -#: hugin1/hugin/ImagesList.cpp:491 -#: translations/xrc.cpp:14 -#: translations/xrc.cpp:32 -#: translations/xrc.cpp:140 -#: xrc.cpp:14 -#: xrc.cpp:32 +#: hugin1/hugin/ImagesList.cpp:491 translations/xrc.cpp:14 +#: translations/xrc.cpp:32 translations/xrc.cpp:140 xrc.cpp:14 xrc.cpp:32 #: xrc.cpp:140 msgid "Full frame fisheye" msgstr "Fischauge Vollbild" -#: hugin1/hugin/ImagesList.cpp:561 -#: translations/xrc.cpp:193 -#: translations/xrc.cpp:369 -#: translations/xrc.cpp:590 -#: xrc.cpp:193 -#: xrc.cpp:369 -#: xrc.cpp:590 +#: hugin1/hugin/ImagesList.cpp:561 translations/xrc.cpp:193 +#: translations/xrc.cpp:372 translations/xrc.cpp:591 xrc.cpp:193 xrc.cpp:372 +#: xrc.cpp:591 msgid "Crop" msgstr "Beschnitt" @@ -1075,10 +1036,8 @@ msgid "Not a jpeg file:" msgstr "Kein JPEG-Bild:" -#: hugin1/hugin/LensPanel.cpp:831 -#: hugin1/hugin/LensPanel.cpp:940 -#: hugin1/hugin/LensPanel.cpp:973 -#: hugin1/hugin/LensPanel.cpp:1093 +#: hugin1/hugin/LensPanel.cpp:831 hugin1/hugin/LensPanel.cpp:940 +#: hugin1/hugin/LensPanel.cpp:973 hugin1/hugin/LensPanel.cpp:1093 #: hugin1/hugin/LensPanel.cpp:1111 msgid "Please select an image and try again" msgstr "Bitte ein Bild auswählen und erneut versuchen" @@ -1128,17 +1087,17 @@ msgid "Tips not available, sorry!" msgstr "Leider keine Tipps verfügbar." -#: hugin1/hugin/MainFrame.cpp:212 +#: hugin1/hugin/MainFrame.cpp:213 #, c-format msgid "Prerelease %s" msgstr "Vorversion %s" -#: hugin1/hugin/MainFrame.cpp:214 +#: hugin1/hugin/MainFrame.cpp:215 #, c-format msgid "Version %s" msgstr "Version %s" -#: hugin1/hugin/MainFrame.cpp:235 +#: hugin1/hugin/MainFrame.cpp:236 msgid "" "Fatal installation error\n" "The file data/splash.png was not found at:" @@ -1146,21 +1105,17 @@ "Schwerwiegender Installationsfehler.\n" "Die Datei data/splash.png wurde nicht gefunden in:" -#: hugin1/hugin/MainFrame.cpp:255 -#: translations/xrc.cpp:201 -#: translations/xrc.cpp:242 -#: translations/xrc.cpp:243 -#: xrc.cpp:201 -#: xrc.cpp:242 +#: hugin1/hugin/MainFrame.cpp:256 translations/xrc.cpp:201 +#: translations/xrc.cpp:242 translations/xrc.cpp:243 xrc.cpp:201 xrc.cpp:242 #: xrc.cpp:243 msgid "&Help" msgstr "&Hilfe" -#: hugin1/hugin/MainFrame.cpp:336 +#: hugin1/hugin/MainFrame.cpp:337 msgid "Started" msgstr "Gestartet" -#: hugin1/hugin/MainFrame.cpp:466 +#: hugin1/hugin/MainFrame.cpp:467 msgid "" "The panorama has been changed\n" "Save changes?" @@ -1168,121 +1123,127 @@ "Das Panorama wurde verändert.\n" "Änderungen speichern?" -#: hugin1/hugin/MainFrame.cpp:466 +#: hugin1/hugin/MainFrame.cpp:467 msgid "Save Panorama?" msgstr "Panorama speichern" # Log-Meldung übersetzen? -#: hugin1/hugin/MainFrame.cpp:499 +#: hugin1/hugin/MainFrame.cpp:500 msgid "forced close" msgstr "Erzwungenes Beenden" -#: hugin1/hugin/MainFrame.cpp:561 +#: hugin1/hugin/MainFrame.cpp:562 #, c-format msgid "saved project %s" msgstr "Projekt %s gespeichert." -#: hugin1/hugin/MainFrame.cpp:578 +#: hugin1/hugin/MainFrame.cpp:579 msgid "Save project file" msgstr "Projekt speichern" -#: hugin1/hugin/MainFrame.cpp:580 +#: hugin1/hugin/MainFrame.cpp:581 msgid "Project files (*.pto)|*.pto|All files (*)|*" msgstr "Projekt-Dateien (*.pto)|*.pto|Alle Dateien (*)|*" -#: hugin1/hugin/MainFrame.cpp:590 +#: hugin1/hugin/MainFrame.cpp:591 #, c-format msgid "File %s exists. Overwrite?" msgstr "Datei %s ist bereits vorhanden. Überschreiben?" -#: hugin1/hugin/MainFrame.cpp:591 -#: translations/xrc.cpp:261 -#: xrc.cpp:261 +#: hugin1/hugin/MainFrame.cpp:592 translations/xrc.cpp:261 xrc.cpp:261 msgid "Save project" msgstr "Projekt speichern" -#: hugin1/hugin/MainFrame.cpp:611 +#: hugin1/hugin/MainFrame.cpp:612 msgid "Save PTmender script file" msgstr "PTmender-Skriptdatei speichern" -#: hugin1/hugin/MainFrame.cpp:613 +#: hugin1/hugin/MainFrame.cpp:614 msgid "PTmender files (*.txt)|*.txt" msgstr "PTmender-Dateien (*.txt)|*.txt" -#: hugin1/hugin/MainFrame.cpp:640 +#: hugin1/hugin/MainFrame.cpp:641 msgid "Open project: " msgstr "Öffne Projekt " -#: hugin1/hugin/MainFrame.cpp:651 +#: hugin1/hugin/MainFrame.cpp:652 msgid "Project opened" msgstr "Projekt geöffnet" -#: hugin1/hugin/MainFrame.cpp:663 +#: hugin1/hugin/MainFrame.cpp:664 msgid "Error opening project: " msgstr "Fehler beim Öffnen des Projekts " -#: hugin1/hugin/MainFrame.cpp:709 +#: hugin1/hugin/MainFrame.cpp:710 msgid "Open project file" msgstr "Projekt laden" -#: hugin1/hugin/MainFrame.cpp:711 -#: hugin1/hugin/MainFrame.cpp:1189 -#: hugin1/stitch_project/hugin_stitch_project.cpp:338 -#: PTBatcher/Batch.cpp:592 +#: hugin1/hugin/MainFrame.cpp:712 hugin1/hugin/MainFrame.cpp:1202 +#: hugin1/stitch_project/hugin_stitch_project.cpp:338 PTBatcher/Batch.cpp:592 #: PTBatcherGUI/BatchFrame.cpp:430 -msgid "Project files (*.pto,*.ptp,*.pts,*.oto)|*.pto;*.ptp;*.pts;*.oto;|All files (*)|*" -msgstr "Projekt-Dateien (*.pto,*.ptp,*.pts,*.oto)|*.pto;*.ptp;*.pts;*.oto;|Alle Dateien (*)|*" +msgid "" +"Project files (*.pto,*.ptp,*.pts,*.oto)|*.pto;*.ptp;*.pts;*.oto;|All files " +"(*)|*" +msgstr "" +"Projekt-Dateien (*.pto,*.ptp,*.pts,*.oto)|*.pto;*.ptp;*.pts;*.oto;|Alle " +"Dateien (*)|*" -#: hugin1/hugin/MainFrame.cpp:725 +#: hugin1/hugin/MainFrame.cpp:726 msgid "Open project: cancel" msgstr "Projekt laden abgebrochen" -#: hugin1/hugin/MainFrame.cpp:760 -#: hugin1/hugin/wxPanoCommand.cpp:359 +#: hugin1/hugin/MainFrame.cpp:761 hugin1/hugin/wxPanoCommand.cpp:359 #: hugin1/hugin/wxPanoCommand.cpp:434 msgid "Add images" msgstr "Bilder hinzufügen" -#: hugin1/hugin/MainFrame.cpp:814 +#: hugin1/hugin/MainFrame.cpp:827 msgid "Add Image: cancel" msgstr "Bilder hinzufügen abgebrochen" -#: hugin1/hugin/MainFrame.cpp:1187 +#: hugin1/hugin/MainFrame.cpp:1200 msgid "Choose template project" msgstr "Projekt-Vorlage auswählen" -#: hugin1/hugin/MainFrame.cpp:1254 +#: hugin1/hugin/MainFrame.cpp:1267 msgid "Fine-tuning all points" msgstr "Alle Kontrollpunkt feinjustieren" -#: hugin1/hugin/MainFrame.cpp:1256 +#: hugin1/hugin/MainFrame.cpp:1269 msgid "Finetuning" msgstr "Feinjustieren" -#: hugin1/hugin/MainFrame.cpp:1348 +#: hugin1/hugin/MainFrame.cpp:1361 #, c-format msgid "" "%d points fine-tuned, %d points not updated due to low correlation\n" "\n" -"Hint: The errors of the fine-tuned points have been set to the correlation coefficient\n" +"Hint: The errors of the fine-tuned points have been set to the correlation " +"coefficient\n" "Problematic points can be spotted (just after fine-tune, before optimizing)\n" "by an error <= %.3f.\n" -"The error of points without a well defined peak (typically in regions with uniform color)\n" +"The error of points without a well defined peak (typically in regions with " +"uniform color)\n" "will be set to 0\n" "\n" "Use the Control Point list (F3) to see all points of the current project\n" msgstr "" -"%d Punkte justiert. %d Punkte wurden aufgrund geringer Übereinstimmung nicht aktualisiert.\n" +"%d Punkte justiert. %d Punkte wurden aufgrund geringer Übereinstimmung nicht " +"aktualisiert.\n" "\n" -"Hinweis: Der Fehlerwert der feinabgestimmten Punkte wurde auf den Korrelationskoeffizienten gesetzt.\n" -"Problematische Punkte können nach der Feinjustierung, aber vor der Optimierung\n" +"Hinweis: Der Fehlerwert der feinabgestimmten Punkte wurde auf den " +"Korrelationskoeffizienten gesetzt.\n" +"Problematische Punkte können nach der Feinjustierung, aber vor der " +"Optimierung\n" "durch einen Fehlerwert <= %.3f ermittelt werden.\n" -"Der Fehlerwert von Punkten ohne ausreichende Ähnlichkeit (typischerweise in Regionen mit einheitlicher Farbe)\n" +"Der Fehlerwert von Punkten ohne ausreichende Ähnlichkeit (typischerweise in " +"Regionen mit einheitlicher Farbe)\n" "wird auf 0 gesetzt.\n" "\n" -"Benutzen Sie die Kontrollpunktliste (F3) um alle Punkte des aktuellen Projekts zu sehen.\n" +"Benutzen Sie die Kontrollpunktliste (F3) um alle Punkte des aktuellen " +"Projekts zu sehen.\n" -#: hugin1/hugin/MainFrame.cpp:1350 +#: hugin1/hugin/MainFrame.cpp:1363 msgid "Fine-tune result" msgstr "Ergebnis der Feinjustierung" @@ -1290,8 +1251,7 @@ msgid "Nona options" msgstr "Optionen für Nona" -#: hugin1/hugin/NonaStitcherPanel.cpp:288 -#: hugin1/nona_gui/nona_gui.cpp:226 +#: hugin1/hugin/NonaStitcherPanel.cpp:288 hugin1/nona_gui/nona_gui.cpp:226 msgid "Stitching Panorama" msgstr "Panorama zusammenfügen" @@ -1339,8 +1299,7 @@ msgstr "Enblend-Fehler" # Log-Meldung übersetzen -#: hugin1/hugin/NonaStitcherPanel.cpp:506 -#: hugin1/hugin/PTStitcherPanel.cpp:310 +#: hugin1/hugin/NonaStitcherPanel.cpp:506 hugin1/hugin/PTStitcherPanel.cpp:310 msgid "gamma must be a number" msgstr "Gammawert muss eine Zahl sein" @@ -1351,7 +1310,8 @@ "\n" "The results are probably invalid.\n" "\n" -"Optimization of the Field of View (v) of partial panoramas can lead to bad results.\n" +"Optimization of the Field of View (v) of partial panoramas can lead to bad " +"results.\n" "Try adding more images and control points.\n" "\n" "Apply the changes anyway?" @@ -1360,7 +1320,8 @@ "\n" "WARNUNG: Ein sehr kleiner Bildwinkel wurde ermittelt.\n" "Der Ergebnis ist wahrscheinlich nicht richtig.\n" -"Bei Teilpanoramen kann die Optimierung des Bildwinkels zu schlechten Ergebnissen führen.\n" +"Bei Teilpanoramen kann die Optimierung des Bildwinkels zu schlechten " +"Ergebnissen führen.\n" "Versuchen Sie, mehr Bilder und mehr Kontrollpunkte hinzuzufügen.\n" "\n" "Änderungen trotzdem übernehmen?" @@ -1376,7 +1337,8 @@ "\n" "*WARNING*: very high distortion coefficients (a,b,c) have been estimated.\n" "The results are probably invalid.\n" -"Only optimize all distortion parameters when many, well spread control points are used.\n" +"Only optimize all distortion parameters when many, well spread control " +"points are used.\n" "Please reset the a,b and c parameters to zero and add more control points\n" "\n" "Apply the changes anyway?" @@ -1389,8 +1351,10 @@ "\n" "WARNUNG: Es wurden sehr große Verzeichungsparameter (a, b, c) berechnet.\n" "Die Ergebnisse sind wahrscheinlich ungültig.\n" -"Die Optimierung der Parameter gelingt nur bei vielen, gut verteilten Kontrollpunkten.\n" -"Bitte setzen Sie die Parameter zurück auf 0 und fügen Sie mehr Kontrollpunkte hinzu.\n" +"Die Optimierung der Parameter gelingt nur bei vielen, gut verteilten " +"Kontrollpunkten.\n" +"Bitte setzen Sie die Parameter zurück auf 0 und fügen Sie mehr " +"Kontrollpunkte hinzu.\n" "\n" "Änderungen trotzdem übernehmen?" @@ -1435,11 +1399,14 @@ #: hugin1/hugin/OptimizePhotometricPanel.cpp:467 msgid "" -"The vignetting and exposure correction is determined by analysing color values in the overlapping areas.\n" +"The vignetting and exposure correction is determined by analysing color " +"values in the overlapping areas.\n" "To speed up the computation, only a random subset of points is used." msgstr "" -"Die Vignettierungs- und Belichtungskorrektur wird aus überlappenden Bildbereichen ermittelt.\n" -"Um die Geschwindigkeit zu erhöhen, werden nur einige zufällige Punkte im Überlappungsbereich benutzt." +"Die Vignettierungs- und Belichtungskorrektur wird aus überlappenden " +"Bildbereichen ermittelt.\n" +"Um die Geschwindigkeit zu erhöhen, werden nur einige zufällige Punkte im " +"Überlappungsbereich benutzt." #: hugin1/hugin/OptimizePhotomet... [truncated message content] |
From: <st...@us...> - 2009-02-10 11:15:56
|
Revision: 3635 http://hugin.svn.sourceforge.net/hugin/?rev=3635&view=rev Author: stativ Date: 2009-02-10 11:15:52 +0000 (Tue, 10 Feb 2009) Log Message: ----------- Export temp directory settings to makefile, so programs invoked by make can use it. Should fix bug #2036114. Modified Paths: -------------- hugin/trunk/src/hugin1/PT/utils.h hugin/trunk/src/hugin1/base_wx/RunStitchPanel.cpp hugin/trunk/src/hugin1/hugin/MainFrame.cpp hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.h hugin/trunk/src/tools/pto2mk.cpp Modified: hugin/trunk/src/hugin1/PT/utils.h =================================================================== --- hugin/trunk/src/hugin1/PT/utils.h 2009-02-09 21:43:53 UTC (rev 3634) +++ hugin/trunk/src/hugin1/PT/utils.h 2009-02-10 11:15:52 UTC (rev 3635) @@ -44,7 +44,8 @@ const PTPrograms & progs, const std::string & includePath, std::vector<std::string> & outputFiles - std::ostream & o) + std::ostream & o, + std::string & tmpDir) { Panorama copyOfPano(pano); HuginBase::PanoramaMakefileExport(copyOfPano, o, images, ptofile, outputPrefix, progs, includePath).run(); Modified: hugin/trunk/src/hugin1/base_wx/RunStitchPanel.cpp =================================================================== --- hugin/trunk/src/hugin1/base_wx/RunStitchPanel.cpp 2009-02-09 21:43:53 UTC (rev 3634) +++ hugin/trunk/src/hugin1/base_wx/RunStitchPanel.cpp 2009-02-10 11:15:52 UTC (rev 3635) @@ -199,6 +199,7 @@ makeFile.Close(); std::string resultFn(basename.mb_str(HUGIN_CONV_FILENAME)); std::string tmpPTOfnC = (const char *) m_currentPTOfn.mb_str(HUGIN_CONV_FILENAME); + std::string tmpDir((wxConfigBase::Get()->Read(wxT("tempDir"),wxT(""))).mb_str(HUGIN_CONV_FILENAME)); std::vector<std::string> outputFiles; HuginBase::PanoramaMakefileExport::createMakefile(pano, @@ -208,7 +209,8 @@ progs, "", outputFiles, - makeFileStream); + makeFileStream, + tmpDir); // cd to output directory, if one is given. wxString oldCWD = wxFileName::GetCwd(); Modified: hugin/trunk/src/hugin1/hugin/MainFrame.cpp =================================================================== --- hugin/trunk/src/hugin1/hugin/MainFrame.cpp 2009-02-09 21:43:53 UTC (rev 3634) +++ hugin/trunk/src/hugin1/hugin/MainFrame.cpp 2009-02-10 11:15:52 UTC (rev 3635) @@ -547,6 +547,7 @@ wxString resultFnwx = scriptName.GetFullPath(); resultFn = resultFnwx.mb_str(HUGIN_CONV_FILENAME); resultFn = utils::stripPath(utils::stripExtension(resultFn)); + std::string tmpDir((wxConfigBase::Get()->Read(wxT("tempDir"),wxT(""))).mb_str(HUGIN_CONV_FILENAME)); std::vector<std::string> outputFiles; HuginBase::PanoramaMakefileExport::createMakefile(pano, @@ -556,7 +557,8 @@ progs, "", outputFiles, - makefile); + makefile, + tmpDir); } } SetStatusText(wxString::Format(_("saved project %s"), m_filename.c_str()),0); Modified: hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp =================================================================== --- hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp 2009-02-09 21:43:53 UTC (rev 3634) +++ hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.cpp 2009-02-10 11:15:52 UTC (rev 3635) @@ -142,7 +142,8 @@ const PTPrograms& progs, const std::string& includePath, std::vector<std::string> & outputFiles, - std::ostream& o) + std::ostream& o, + const std::string& tmpDir) { PanoramaOptions opts = pano.getOptions(); #ifdef __unix__ @@ -173,6 +174,17 @@ o << "# makefile for panorama stitching, created by hugin " << endl << endl; + // pass settings for different temporary directory + if (tmpDir != "") { + o << "# set temporary directory" << endl; +#ifdef __unix__ + o << "export TMPDIR=" << quoteStringShell(tmpDir) << endl; +#else // WINDOWS + o << "export TEMP=" << quoteStringShell(tmpDir) << endl + << "export TMP=" << quoteStringShell(tmpDir) << endl; +#endif + } + o << endl << endl << "# Tool configuration" << endl Modified: hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.h =================================================================== --- hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.h 2009-02-09 21:43:53 UTC (rev 3634) +++ hugin/trunk/src/hugin_base/algorithms/panorama_makefile/PanoramaMakefileExport.h 2009-02-10 11:15:52 UTC (rev 3635) @@ -105,7 +105,8 @@ const PTPrograms & progs, const std::string & includePath, std::vector<std::string> & outputFiles, - std::ostream & o); + std::ostream & o, + const std::string& tmpDir); public: @@ -118,7 +119,7 @@ { createMakefile(o_panorama, o_images, o_ptofile, o_outputPrefix, o_progs, o_includePath, - o_outputFiles, o_output); + o_outputFiles, o_output, o_tmpDir); return true; // let's hope so. } @@ -133,6 +134,7 @@ PTPrograms o_progs; std::vector<std::string> o_outputFiles; String o_includePath; + String o_tmpDir; }; Modified: hugin/trunk/src/tools/pto2mk.cpp =================================================================== --- hugin/trunk/src/tools/pto2mk.cpp 2009-02-09 21:43:53 UTC (rev 3634) +++ hugin/trunk/src/tools/pto2mk.cpp 2009-02-10 11:15:52 UTC (rev 3635) @@ -146,6 +146,7 @@ progs, "", outputFiles, - makeFileStream); + makeFileStream, + ""); return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |