diff -Nru hugin-2016.2.0+dfsg/Changes.txt hugin-2017.0.0+dfsg/Changes.txt --- hugin-2016.2.0+dfsg/Changes.txt 2016-05-28 07:53:09.000000000 +0000 +++ hugin-2017.0.0+dfsg/Changes.txt 2017-05-06 12:09:50.000000000 +0000 @@ -1,3 +1,22 @@ +Hugin 2017.0 +* Several fixes for working with HDR images (display in GUI, photometric optimizer, + handling of under/over exposured pixels in merging code). +* Expose shipped user defined output sequences in GUI as own sub-menu. +* Added some more user defined output sequences (layered TIFF, cube faces) and + added new placeholder %sourceimage% to user defined output sequence. +* Optimizer tabs uses now checkboxes instead of bold underlined font for marking + of variables to be optimized. +* Use wxWidgets help windows instead of default browser (Linux&Mac only, + this provides table of content, index and full text search in help files). +* Added special assistant variant for single image projects. +* Cpfind does not downscale images smaller than 2000 pixels. +* Fixes handling of masks in cpfind when images needs remapping for cp finding. +* Display of final panorama dimensions on stitcher tab. +* Sometimes unsaved changes were disregarded without asking the user (e.g. when loading + a project via the recently used projects list). Unsaved changes should now always + require user confirmation). + +============================================================================================ Hugin 2016.2 * Allow reading of image positions from Papywizard XML files. * Internal blender and verdandi got the possibility to blend seams as alternative to diff -Nru hugin-2016.2.0+dfsg/CMakeLists.txt hugin-2017.0.0+dfsg/CMakeLists.txt --- hugin-2016.2.0+dfsg/CMakeLists.txt 2016-07-09 07:25:44.000000000 +0000 +++ hugin-2017.0.0+dfsg/CMakeLists.txt 2017-05-15 15:05:31.000000000 +0000 @@ -12,7 +12,6 @@ endif(COMMAND cmake_policy) if(APPLE) - set(CMAKE_OSX_SYSROOT macosx10.11) set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9") if (MAC_SELF_CONTAINED_BUNDLE) set(CMAKE_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/mac/ExternalPrograms/repository/lib) @@ -55,8 +54,8 @@ project(hugin) # version -set(V_MAJOR 2016) -set(V_MINOR 2) +set(V_MAJOR 2017) +set(V_MINOR 0) set(V_PATCH 0) # @@ -151,7 +150,7 @@ # wxWidgets IF(NOT wxWidgets_ROOT_SUFFIX) - SET( wxWidgets_ROOT_SUFFIX 2.8.10 CACHE STRING "version of wxWidgets." FORCE ) + SET( wxWidgets_ROOT_SUFFIX 3.0.0 CACHE STRING "version of wxWidgets." FORCE ) ENDIF(NOT wxWidgets_ROOT_SUFFIX) IF(NOT wxWidgets_ROOT_DIR) SET(wxWidgets_ROOT_DIR ${SOURCE_BASE_DIR}/wxWidgets-${wxWidgets_ROOT_SUFFIX}) @@ -166,13 +165,13 @@ SET(wxWidgets_USE_LIBS base core aui xrc html xml adv gl net qa) FIND_PACKAGE(wxWidgets REQUIRED) -# hugin requires wxwidgets 2.8.0 or above +# hugin requires wxwidgets 3.0 or above IF (UNIX) EXEC_PROGRAM(sh ARGS "${wxWidgets_CONFIG_EXECUTABLE} --version" OUTPUT_VARIABLE wxWidgets_VERSION) STRING(REGEX REPLACE "^([0-9]+\\.[0-9]+)\\..*" "\\1" wxWidgets_VERSION ${wxWidgets_VERSION}) - IF(wxWidgets_VERSION VERSION_LESS "2.8") + IF(wxWidgets_VERSION VERSION_LESS "3.0") SET(wxWidgets_FOUND FALSE) - MESSAGE("At least wxWidgets 2.8 is required") + MESSAGE("At least wxWidgets 3.0 is required") ENDIF() # Ubuntu has 2 different devel packages, we need the GUI version EXEC_PROGRAM(sh ARGS "${wxWidgets_CONFIG_EXECUTABLE} --query-toolkit" OUTPUT_VARIABLE wxWidgets_TOOLKIT) @@ -491,6 +490,12 @@ ENDIF(LAPACK_FOUND) ENDIF(ENABLE_LAPACK) +OPTION(USE_GDKBACKEND_X11 "Enforce GDK_BACKEND=x11 for Hugin as workaround for wxWidgets bug (not supporting wxGLCanvas on Wayland)" OFF) +IF(USE_GDKBACKEND_X11) + ADD_DEFINITIONS(-DUSE_GDKBACKEND_X11) + MESSAGE(STATUS "Compiling Hugin with hard coded GDK_BACKEND=x11") +ENDIF() + # vips is not used right now #IF (WIN32) # # todo: check for vips (not needed right now) @@ -549,8 +554,10 @@ SET(INSTALL_DATA_DIR ${CMAKE_INSTALL_PREFIX}/share/hugin/data) SET(INSTALL_LOCALE_DIR ${CMAKE_INSTALL_PREFIX}/${LOCALEDIR}) -# setup bundle install prefix IF (APPLE) + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++") + SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -stdlib=libc++ -lc++") + # setup bundle install prefix IF (NOT MAC_SELF_CONTAINED_BUNDLE) IF (CMAKE_INSTALL_PREFIX STREQUAL "/opt/local") # MacPorts @@ -584,6 +591,7 @@ IF (${HUGIN_SHARED}) ADD_DEFINITIONS(-DOPENEXR_DLL) + ADD_DEFINITIONS(-DEXV_HAVE_DLL) ADD_DEFINITIONS(-DHugin_shared) ADD_DEFINITIONS(-DPANO13_DLL) SET(HUGIN_SHARED_LIBS 1) @@ -665,10 +673,6 @@ IF(MAC_SELF_CONTAINED_BUNDLE) SET(CMAKE_MACOSX_RPATH FALSE) - CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/CMakeModules/PackageMacAppBundleLibs.sh.in - ${hugin_BINARY_DIR}/${BINDIR}/PackageMacAppBundleLibs.sh @ONLY IMMEDIATE) - - ADD_CUSTOM_TARGET(Mac ALL) SET(APPS Hugin PTBatcherGUI calibrate_lens_gui HuginStitchProject) SET(APPS_DIR ${CMAKE_BINARY_DIR}/src/hugin1/hugin @@ -682,8 +686,8 @@ ADD_DEPENDENCIES(Mac ${_target}) ADD_CUSTOM_COMMAND( TARGET Mac - COMMAND bash ${hugin_BINARY_DIR}/${BINDIR}/PackageMacAppBundleLibs.sh - ARGS ${_target} ${_target_dir} + COMMAND bash ${CMAKE_SOURCE_DIR}/mac/PackageMacAppBundleLibs.sh + ARGS ${_target} ${_target_dir} ${CMAKE_SOURCE_DIR} ) ENDFOREACH(_var) @@ -693,7 +697,7 @@ COMMAND ${CMAKE_SOURCE_DIR}/mac/PackageCreateToolsLibs.sh ARGS ${CMAKE_CURRENT_BINARY_DIR}/tools_mac fulla tca_correct vig_optimize hugin_lensdb hugin_executor pano_trafo pto_gen - pto_lensstack pto_mask pto_merge pto_move pto_template pto_var deghosting_mask) + pto_lensstack pto_mask pto_merge pto_move pto_template pto_var deghosting_mask :enblend :enfuse) INSTALL( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tools_mac DESTINATION Hugin @@ -880,15 +884,18 @@ #has to be 72dpi SET(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_SOURCE_DIR}/mac/DmgBackground.jpg") - # SET(CPACK_DMG_DS_STORE_SETUP_SCRIPT "${CMAKE_SOURCE_DIR}/mac/DmgScript.scpt") - SET(CPACK_DMG_DS_STORE "${CMAKE_SOURCE_DIR}/mac/DmgDS_Store.in") + SET(CPACK_DMG_DS_STORE_SETUP_SCRIPT "${CMAKE_SOURCE_DIR}/mac/DmgScript.scpt") + # SET(CPACK_DMG_DS_STORE "${CMAKE_SOURCE_DIR}/mac/DmgDS_Store.in") ENDIF(APPLE) IF(MSVC) # configure variables for wix toolset generator -MATH(EXPR VERSION_WIN_MAJOR "${V_MAJOR}%100") +MATH(EXPR VERSION_WIN_MAJOR "${V_MAJOR}/100") +MATH(EXPR VERSION_WIN_MINOR "${V_MAJOR}%100") SET(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_WIN_MAJOR}") +SET(CPACK_PACKAGE_VERSION_MINOR "${VERSION_WIN_MINOR}") +SET(CPACK_PACKAGE_VERSION_PATCH "${V_MINOR}") SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING.txt") IF(CMAKE_CL_64) SET(CPACK_WIX_UPGRADE_GUID "1B85EFEB-F843-49C6-80D3-A539B035D319") diff -Nru hugin-2016.2.0+dfsg/CMakeModules/PackageMacAppBundleLibs.sh.in hugin-2017.0.0+dfsg/CMakeModules/PackageMacAppBundleLibs.sh.in --- hugin-2016.2.0+dfsg/CMakeModules/PackageMacAppBundleLibs.sh.in 2016-06-12 14:04:11.000000000 +0000 +++ hugin-2017.0.0+dfsg/CMakeModules/PackageMacAppBundleLibs.sh.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ -#!/bin/bash - -# This script attempts to copy needed 3rd party libraries and frameworks into -# the application bundle. It will then attempt to set the 'install_name' for -# each library so that it references either the PlugIns or Frameworks directory. -# The Script will change every library it can find. Each of these libraries -# needs to have an absolute install path so we can copy it. - -BASE_DIR="$2" -cd ${BASE_DIR} - -APPLICATION_NAME="$1" -APPLICATION_APP_BUNDLE="${APPLICATION_NAME}.app" - APPLICATION_BINDIR="${APPLICATION_APP_BUNDLE}/Contents/MacOS" -APPLICATION_APP_NAME="${APPLICATION_BINDIR}/${APPLICATION_NAME}" - PLUGINS_PATH="${APPLICATION_APP_BUNDLE}/Contents/Libraries" -FRAMEWORKS_PATH="${APPLICATION_APP_BUNDLE}/Contents/Frameworks" -RPATH_PLUGIN_PATH="@executable_path/../Libraries" -RPATH_FRAMEWORK_PATH="@executable_path/../Frameworks" - - -echo "*-----------------------------------------------------------*" -echo "* Copying Support Libraries for ${APPLICATION_APP_BUNDLE}" -echo "* Located in ${BASE_DIR}" - -mkdir -p "${PLUGINS_PATH}" -mkdir -p "${FRAMEWORKS_PATH}" - -get_libraries() { - local LIBRARIES=$(echo $(otool -X -L $1 | grep -v ${RPATH_PLUGIN_PATH} | grep -v \/System\/Library | grep -v \/usr\/lib | sed -e 's/(.*)//' | sort -u)) - if [ -n "$LIBRARIES" ]; then - for library in $LIBRARIES - do - update_library $library $1 - done - fi - install_name_tool -delete_rpath "@CMAKE_SOURCE_DIR@/mac/ExternalPrograms/repository/lib" $1 2&>/dev/null -} - -update_library() { - local lib="$1" - local lib_file=$(basename ${lib}) - local bin="$2" - if [ ! -f "${BASE_DIR}/${PLUGINS_PATH}/${lib_file}" ] - then - echo "* Installing Library -->$1<-- into ${APPLICATION_APP_BUNDLE} " - cp "${lib}" "${BASE_DIR}/${PLUGINS_PATH}" || exit 1 - chmod 755 "${BASE_DIR}/${PLUGINS_PATH}/${lib_file}" - get_libraries "${BASE_DIR}/${PLUGINS_PATH}/${lib_file}" - install_name_tool -id "${RPATH_PLUGIN_PATH}/${lib_file}" "${BASE_DIR}/${PLUGINS_PATH}/${lib_file}" - fi - install_name_tool -change "${lib}" "${RPATH_PLUGIN_PATH}/${lib_file}" "${bin}" -} - - -# ----------------------------------------------------------------------------- -# Copy libraries for all exetuables in APPLICATION_BINDIR -# ----------------------------------------------------------------------------- - -for _exe in ${BASE_DIR}/${APPLICATION_BINDIR}/*; do - get_libraries $_exe -done - - - # ----------------------------------------------------------------------------- - # Copy ExifTool into the stitchers - # ----------------------------------------------------------------------------- -if [ "${APPLICATION_APP_BUNDLE}" == "PTBatcherGUI.app" ] || [ "${APPLICATION_APP_BUNDLE}" == "HuginStitchProject.app" ]; then - - if [ ! -x "${APPLICATION_APP_BUNDLE}/Contents/Resources/ExifTool/exiftool" ]; then - echo "* Installing ExifTool into ${APPLICATION_APP_BUNDLE} " - mkdir -p "${APPLICATION_APP_BUNDLE}/Contents/Resources/ExifTool" - cp -v "@CMAKE_SOURCE_DIR@/mac/ExternalPrograms/repository/"Image-ExifTool-*/exiftool "${APPLICATION_APP_BUNDLE}/Contents/Resources/ExifTool" - cp -r "@CMAKE_SOURCE_DIR@/mac/ExternalPrograms/repository/"Image-ExifTool-*/lib "${APPLICATION_APP_BUNDLE}/Contents/Resources/ExifTool" - fi - -fi - diff -Nru hugin-2016.2.0+dfsg/CMakeModules/win_bundle.cmake hugin-2017.0.0+dfsg/CMakeModules/win_bundle.cmake --- hugin-2016.2.0+dfsg/CMakeModules/win_bundle.cmake 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/CMakeModules/win_bundle.cmake 2017-04-22 17:02:42.000000000 +0000 @@ -124,12 +124,12 @@ ENDIF() FIND_FILE(EXIV2_DLL NAMES exiv2.dll libexiv2.dll - PATHS ${SOURCE_BASE_DIR}/exiv2/bin ${SOURCE_BASE_DIR}/exiv2/msvc2012/exiv2lib/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.25/msvc2012/exiv2lib/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.24/msvc2012/exiv2lib/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.23/msvc64/bin/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.23/msvc64/bin/Win32/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.22/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.21.1/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.20/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.19/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.18.2/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/Deploy/bin + PATHS ${SOURCE_BASE_DIR}/Deploy/bin ${SOURCE_BASE_DIR}/Deploy/bin ${SOURCE_BASE_DIR}/exiv2/bin ${SOURCE_BASE_DIR}/exiv2/msvc2012/exiv2lib/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.25/msvc2012/exiv2lib/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.24/msvc2012/exiv2lib/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.23/msvc64/bin/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.23/msvc64/bin/Win32/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.22/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.21.1/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.20/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.19/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.18.2/msvc/bin/ReleaseDLL NO_SYSTEM_ENVIRONMENT_PATH ) FIND_FILE(LIBEXPAT_DLL NAMES libexpat.dll expat.dll - PATHS ${SOURCE_BASE_DIR}/expat/bin ${SOURCE_BASE_DIR}/exiv2/msvc2012/exiv2lib/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.25/msvc2012/exiv2lib/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.24/msvc2012/exiv2lib/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.23/msvc64/bin/Win32/ReleaseDLL ${SOURCE_BASE_DIR}/expat-2.0.1/win32/bin/Release ${SOURCE_BASE_DIR}/exiv2-0.22/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.21.1/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.20/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.19/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.18.2/msvc/bin/ReleaseDLL + PATHS ${SOURCE_BASE_DIR}/Deploy/bin ${SOURCE_BASE_DIR}/expat/bin ${SOURCE_BASE_DIR}/exiv2/msvc2012/exiv2lib/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.25/msvc2012/exiv2lib/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.24/msvc2012/exiv2lib/x64/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.23/msvc64/bin/Win32/ReleaseDLL ${SOURCE_BASE_DIR}/expat-2.0.1/win32/bin/Release ${SOURCE_BASE_DIR}/exiv2-0.22/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.21.1/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.20/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.19/msvc/bin/ReleaseDLL ${SOURCE_BASE_DIR}/exiv2-0.18.2/msvc/bin/ReleaseDLL NO_SYSTEM_ENVIRONMENT_PATH ) FIND_FILE(GLEW_DLL diff -Nru hugin-2016.2.0+dfsg/debian/changelog hugin-2017.0.0+dfsg/debian/changelog --- hugin-2016.2.0+dfsg/debian/changelog 2016-09-22 12:39:31.000000000 +0000 +++ hugin-2017.0.0+dfsg/debian/changelog 2017-07-09 15:11:57.000000000 +0000 @@ -1,3 +1,60 @@ +hugin (2017.0.0+dfsg-0ubuntu1~yakkety) yakkety; urgency=medium + + * New upstream release packaged for yakkety. + + -- Stefan Peter Sun, 09 Jul 2017 17:10:22 +0200 + +hugin (2017.0.0~rc2+dfsg-1ubuntu1~yakkety) yakkety; urgency=medium + + * New upstream release packaged for yakkety. + + -- Stefan Peter Sun, 18 Jun 2017 12:00:49 +0200 + +hugin (2017.0.0~rc2+dfsg-1) experimental; urgency=low + + * New upstream version. + + -- Andreas Metzler Sat, 17 Jun 2017 13:11:35 +0200 + +hugin (2017.0.0~rc1+dfsg-1ubuntu1~yakkety) yakkety; urgency=medium + + * New upstream release packaged for yakkety. + + -- Stefan Peter Sun, 04 Jun 2017 14:02:07 +0200 + +hugin (2017.0.0~rc1+dfsg-1) experimental; urgency=medium + + * New upstream version. + + -- Andreas Metzler Sat, 03 Jun 2017 13:12:06 +0200 + +hugin (2017.0.0~beta1+dfsg-1ubuntu1~yakkety) yakkety; urgency=medium + + * New upstream release packaged for yakkety. + + -- Stefan Peter Sun, 07 May 2017 18:10:33 +0200 + +hugin (2017.0.0~beta1+dfsg-1) experimental; urgency=medium + + * New upstream version. + + Drop 50_67c64f0ca1c4_Fixes_a_type_of_format_string.diff and + 51_401823447b21_Fixes_running_assistant_with_user_defined_temp_directory.diff, + refresh 43_fallbackhelp.patch. + + Fix bug concerning preview-image caching. Closes: #521589 + + -- Andreas Metzler Sat, 06 May 2017 19:16:22 +0200 + +hugin (2016.2.0+dfsg-1) unstable; urgency=medium + + * rc2 released as 2016.2.0. + * Fix assissant align error with custom temporary directory + 50_67c64f0ca1c4_Fixes_a_type_of_format_string.diff + error. + 51_401823447b21_Fixes_running_assistant_with_user_defined_temp_directory.diff + Closes: #822062, #855505 + + -- Andreas Metzler Sun, 26 Feb 2017 08:23:23 +0100 + hugin (2016.2.0+dfsg-0ubuntu1~yakkety) yakkety; urgency=medium * New upstream release. diff -Nru hugin-2016.2.0+dfsg/debian/control hugin-2017.0.0+dfsg/debian/control --- hugin-2016.2.0+dfsg/debian/control 2016-09-22 12:38:20.000000000 +0000 +++ hugin-2017.0.0+dfsg/debian/control 2017-07-09 15:11:37.000000000 +0000 @@ -19,7 +19,7 @@ libflann-dev, libfftw3-dev, libvigraimpex-dev (>=1.9), liblcms2-dev Build-Conflicts: wx2.6-headers, wx2.8-headers -Standards-Version: 3.9.8 +Standards-Version: 4.0.0 Homepage: http://hugin.sourceforge.net/ Vcs-Git: https://anonscm.debian.org/git/pkg-phototools/hugin.git Vcs-Browser: https://anonscm.debian.org/cgit/pkg-phototools/hugin.git diff -Nru hugin-2016.2.0+dfsg/debian/patches/43_fallbackhelp.patch hugin-2017.0.0+dfsg/debian/patches/43_fallbackhelp.patch --- hugin-2016.2.0+dfsg/debian/patches/43_fallbackhelp.patch 2016-09-22 12:38:20.000000000 +0000 +++ hugin-2017.0.0+dfsg/debian/patches/43_fallbackhelp.patch 2017-07-09 15:11:37.000000000 +0000 @@ -2,11 +2,9 @@ Description: Invoke sensible-browser instead of using wxLaunchDefaultBrowser(). The latter does not work on e.g. windowmaker. -Index: hugin-2016.1.0/src/hugin1/hugin/MainFrame.cpp -=================================================================== ---- hugin-2016.1.0.orig/src/hugin1/hugin/MainFrame.cpp -+++ hugin-2016.1.0/src/hugin1/hugin/MainFrame.cpp -@@ -1087,7 +1087,10 @@ void MainFrame::OnAddTimeImages( wxComma +--- a/src/hugin1/hugin/MainFrame.cpp ++++ b/src/hugin1/hugin/MainFrame.cpp +@@ -1177,7 +1177,10 @@ void MainFrame::OnAddTimeImages( wxComma void MainFrame::OnShowDonate(wxCommandEvent & e) { @@ -18,14 +16,3 @@ } -@@ -1254,7 +1257,9 @@ void MainFrame::DisplayHelp(wxString sec - return; - } - DEBUG_INFO("help file: " << strFile.mb_str(wxConvLocal)); -- if(!wxLaunchDefaultBrowser(strFile)) -+ /* if(!wxLaunchDefaultBrowser(strFile)) */ -+ wxString cmd = wxT("sensible-browser ") + strFile; -+ if (!::wxExecute(cmd, wxEXEC_ASYNC)) - { - wxLogError(_("Can't start system's web browser")); - } diff -Nru hugin-2016.2.0+dfsg/doc/cpfind.pod hugin-2017.0.0+dfsg/doc/cpfind.pod --- hugin-2016.2.0+dfsg/doc/cpfind.pod 2011-09-19 15:38:21.000000000 +0000 +++ hugin-2017.0.0+dfsg/doc/cpfind.pod 2016-10-03 07:51:43.000000000 +0000 @@ -23,7 +23,7 @@ In a second step, the feature matching, all keypoints of two images are matched against each other to find features which are on both images. If this matching -was successfull two keypoints in the two images become one control point. +was successful two keypoints in the two images become one control point. =head1 USAGE diff -Nru hugin-2016.2.0+dfsg/doc/executor_file_format.txt hugin-2017.0.0+dfsg/doc/executor_file_format.txt --- hugin-2016.2.0+dfsg/doc/executor_file_format.txt 2016-02-28 15:55:16.000000000 +0000 +++ hugin-2017.0.0+dfsg/doc/executor_file_format.txt 2017-04-22 17:02:43.000000000 +0000 @@ -9,8 +9,10 @@ # General section [General] -# short description, displayed in GUI +# short description, displayed in GUI and as name for menu item Description=Short description +# help text, displayed in statusbar when selected in menu +Help=A short help text # number of steps to follow StepCount=2 # format of intermediate images: normally tif or exr @@ -122,6 +124,11 @@ # the following placeholders will be replaced: # %file% - filename (required) # %project% - project filename (optional) +# %prefix% - prefix as given (optional) +# %prefix,postfix% - prefix with given postfix (optional) +# %width%, %height% - width and height of final image (optional) +# %width*0.5% - both can be multiplied by a fixed factor +# %sourceimage% - filename of source image (optional, only valid when File=all) Arguments=-posterize 8 %file% [Step4] @@ -137,4 +144,4 @@ # the following placeholders will be replaced: # %result% - filename (required) # %image0% - filename of first image (optional) -Arguments=-overwrite_original_in_place -TagsFromFile %image0% -ImageDescription -Make -Model -Artist -WhitePoint -Copyright -GPS:all -DateTimeOriginal -CreateDate -UserComment -ColorSpace -OwnerName -SerialNumber %result% +Arguments=-overwrite_original -TagsFromFile %image0% -ImageDescription -Make -Model -Artist -WhitePoint -Copyright -GPS:all -DateTimeOriginal -CreateDate -UserComment -ColorSpace -OwnerName -SerialNumber %result% diff -Nru hugin-2016.2.0+dfsg/README hugin-2017.0.0+dfsg/README --- hugin-2016.2.0+dfsg/README 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/README 2016-10-03 07:51:43.000000000 +0000 @@ -114,7 +114,7 @@ algorithm) are running only with one thread, which is slower. - The wxWidgets GUI toolkit version >=2.7.0. 2.9/3.0 is supported. + The wxWidgets GUI toolkit version >=3.0.0. C++17 TS or boost::filesystem (boost >=1.47) libtiff the TIFF library with LZW support. libpano13 version >=2.9.19 diff -Nru hugin-2016.2.0+dfsg/rev.txt hugin-2017.0.0+dfsg/rev.txt --- hugin-2016.2.0+dfsg/rev.txt 2016-09-03 07:28:26.000000000 +0000 +++ hugin-2017.0.0+dfsg/rev.txt 2017-06-16 16:55:08.000000000 +0000 @@ -1 +1 @@ -be8da0221960 \ No newline at end of file +eac5e8cc546e \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/celeste/Main.cpp hugin-2017.0.0+dfsg/src/celeste/Main.cpp --- hugin-2016.2.0+dfsg/src/celeste/Main.cpp 2016-01-24 08:50:33.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/celeste/Main.cpp 2017-04-22 17:02:43.000000000 +0000 @@ -27,11 +27,7 @@ #include #include -#ifdef _WIN32 #include -#else - #include -#endif static void usage(){ @@ -56,7 +52,7 @@ std::cout << " Default: PNG" << std::endl; std::cout << " -r <1|0> Filter radius. 0 = large (more accurate), 1 = small (higher" << std::endl; std::cout << " resolution mask, slower, less accurate). Default: 0" << std::endl; - std::cout << " -h Print usage." << std::endl; + std::cout << " -h|--help Print usage." << std::endl; std::cout << " image1 image2.. Image files to be masked." << std::endl << std::endl; exit(1); @@ -170,13 +166,6 @@ int main(int argc, char* argv[]) { - - // Exit with usage unless filename given as argument - if (argc < 2) - { - usage(); - } - int mask = 0; double threshold = 0.5; std::vector images_to_mask; @@ -190,8 +179,14 @@ // parse arguments int c; const char * optstring = "i:o:d:s:t:m:f:r:h"; + static struct option longOptions[] = + { + { "output", required_argument, NULL, 'o' }, + { "help", no_argument, NULL, 'h' }, + 0 + }; - while ((c = getopt (argc, argv, optstring)) != -1) + while ((c = getopt_long(argc, argv, optstring, longOptions, nullptr)) != -1) { switch(c) { @@ -208,7 +203,7 @@ threshold = atof(optarg); if(threshold<=0 || threshold>1) { - std::cerr << "Invalid parameter: threshold (-t) should be between 0 and 1" << std::endl; + std::cerr << hugin_utils::stripPath(argv[0]) << ": Invalid parameter: threshold (-t) should be between 0 and 1" << std::endl; return 1; }; break; @@ -216,7 +211,7 @@ mask = atoi(optarg); if(mask<0 || mask>1) { - std::cerr << "Invalid parameter: mask parameter (-m) can only be 0 or 1" << std::endl; + std::cerr << hugin_utils::stripPath(argv[0]) << ": Invalid parameter: mask parameter (-m) can only be 0 or 1" << std::endl; return 1; }; break; @@ -233,19 +228,18 @@ resize_dimension = atoi(optarg); if(resize_dimension<100) { - std::cerr << "Invalid parameter: maximum dimension (-s) should be bigger than 100" << std::endl; + std::cerr << hugin_utils::stripPath(argv[0]) << ": Invalid parameter: maximum dimension (-s) should be bigger than 100" << std::endl; return 1; }; break; case ':': - std::cerr <<"Missing parameter for parameter " << argv[optind] << std::endl; - return 1; - break; - case '?': /* invalid parameter */ + case '?': + // missing argument or invalid switch return 1; break; - default: /* unknown */ - usage(); + default: + // this should not happen + abort(); }; }; @@ -255,9 +249,9 @@ optind++; }; - if(images_to_mask.size()==0 && pto_file.empty()) + if(images_to_mask.empty() && pto_file.empty()) { - std::cout << "No project file or image files given."<< std::endl; + std::cerr << hugin_utils::stripPath(argv[0]) << ": No project file or image files given." << std::endl; return 1; }; @@ -268,16 +262,15 @@ std::string install_path_model=hugin_utils::GetDataDir(); install_path_model.append(model_file); - if (!hugin_utils::FileExists(install_path_model)){ - - std::cout << std::endl << "Couldn't open SVM model file " << model_file << std::endl; - std::cout << "Also tried " << install_path_model << std::endl << std::endl; - exit(1); - - }else{ - - model_file = install_path_model; - + if (!hugin_utils::FileExists(install_path_model)) + { + std::cerr << std::endl << "Couldn't open SVM model file " << model_file << std::endl + << "Also tried " << install_path_model << std::endl << std::endl; + exit(1); + } + else + { + model_file = install_path_model; } } diff -Nru hugin-2016.2.0+dfsg/src/deghosting/deghosting_mask.cpp hugin-2017.0.0+dfsg/src/deghosting/deghosting_mask.cpp --- hugin-2016.2.0+dfsg/src/deghosting/deghosting_mask.cpp 2015-10-23 21:56:42.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/deghosting/deghosting_mask.cpp 2017-04-22 17:02:43.000000000 +0000 @@ -138,7 +138,6 @@ try { const char * optstring = "o:i:s:r:t:c:a:w:hv"; - opterr = 0; int c; std::string outputPrefix = "weight"; @@ -295,26 +294,25 @@ case 'v': verbosity++; break; + case ':': + case '?': + // missing argument or invalid switch + return 1; + break; + default: + // this should not happen + abort(); } } std::cout << std::endl; unsigned nFiles = argc - optind; - if (nFiles == 0) + if (nFiles < 3) { - std::cerr << std::endl << "Error: at least three input images needed" << std::endl << std::endl; - usage(); + std::cerr << hugin_utils::stripPath(argv[0]) << ": at least three input images needed" << std::endl; return 1; - } - else - { - if (nFiles < 3) - { - std::cout << std::endl << "Error: You have to specify at least three images." << std::endl; - return 1; - } - } + }; // load all images std::vector inputFiles; diff -Nru hugin-2016.2.0+dfsg/src/deghosting/khan.h hugin-2017.0.0+dfsg/src/deghosting/khan.h --- hugin-2016.2.0+dfsg/src/deghosting/khan.h 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/deghosting/khan.h 2017-04-22 17:02:43.000000000 +0000 @@ -509,12 +509,15 @@ std::cout << "computing new weight" << std::endl; // compute probability and set weight //std::cout << "P=" << (float) wpqsKhsum/wpqssum << std::endl; - if (flags & ADV_ONLYP) - *wx = (float) wpqsKhsum/wpqssum; - else - *wx *= (float) wpqsKhsum/wpqssum; - if (maxWeight < *wx) - maxWeight = *wx; + if (wpqssum > 0) + { + if (flags & ADV_ONLYP) + *wx = (float)wpqsKhsum / wpqssum; + else + *wx *= (float)wpqsKhsum / wpqssum; + if (maxWeight < *wx) + maxWeight = *wx; + }; wpqsKhsum = wpqssum = 0; } diff -Nru hugin-2016.2.0+dfsg/src/foreign/levmar/Axb_core.c hugin-2017.0.0+dfsg/src/foreign/levmar/Axb_core.c --- hugin-2016.2.0+dfsg/src/foreign/levmar/Axb_core.c 2011-11-21 09:22:44.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/foreign/levmar/Axb_core.c 2016-10-03 07:51:43.000000000 +0000 @@ -623,7 +623,7 @@ * * A is mxm, b is mx1 * - * The function returns 0 in case of error, 1 if successfull + * The function returns 0 in case of error, 1 if successful * * This function is often called repetitively to solve problems of identical * dimensions. To avoid repetitive malloc's and free's, allocated memory is @@ -991,7 +991,7 @@ * * A is mxm, b is mx1. * - * The function returns 0 in case of error, 1 if successfull + * The function returns 0 in case of error, 1 if successful * * This function is often called repetitively to solve problems of identical * dimensions. To avoid repetitive malloc's and free's, allocated memory is diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/AssistantExecutor.cpp hugin-2017.0.0+dfsg/src/hugin1/base_wx/AssistantExecutor.cpp --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/AssistantExecutor.cpp 2016-01-15 18:58:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/AssistantExecutor.cpp 2017-04-22 17:02:43.000000000 +0000 @@ -24,11 +24,7 @@ #include "AssistantExecutor.h" #include -#if wxCHECK_VERSION(3,0,0) #include -#else -#include -#endif #include "hugin_utils/utils.h" #include "algorithms/optimizer/ImageGraph.h" #include "base_wx/wxPlatform.h" @@ -48,7 +44,7 @@ double celesteThreshold; config->Read(wxT("/Celeste/Threshold"), &celesteThreshold, HUGIN_CELESTE_THRESHOLD); const bool celesteSmallRadius = config->Read(wxT("/Celeste/Filter"), HUGIN_CELESTE_FILTER) == 0; - const bool runLinefind = config->Read(wxT("/Assistant/Linefind"), HUGIN_ASS_LINEFIND) != 0; + const bool runLinefind = (pano.getNrOfImages()==1) ? true : (config->Read(wxT("/Assistant/Linefind"), HUGIN_ASS_LINEFIND) != 0); const bool runCPClean = config->Read(wxT("/Assistant/AutoCPClean"), HUGIN_ASS_AUTO_CPCLEAN) != 0; double scale; config->Read(wxT("/Assistant/panoDownsizeFactor"), &scale, HUGIN_ASS_PANO_DOWNSIZE_FACTOR); @@ -62,7 +58,7 @@ runicp = !graph.IsConnected(); }; //build commandline for icpfind - if (runicp) + if (runicp && pano.getNrOfImages() > 1) { //create cp find commands->push_back(new NormalCommand(GetInternalProgram(ExePath, wxT("icpfind")), @@ -107,8 +103,16 @@ }; //now optimise all commands->push_back(new NormalCommand(GetInternalProgram(ExePath, wxT("checkpto")), quotedProject)); - commands->push_back(new NormalCommand(GetInternalProgram(ExePath, wxT("autooptimiser")), - wxT("-a -m -l -s -o ") + quotedProject + wxT(" ") + quotedProject, _("Optimizing..."))); + if (pano.getNrOfImages() == 1) + { + commands->push_back(new NormalCommand(GetInternalProgram(ExePath, wxT("autooptimiser")), + wxT("-a -s -o ") + quotedProject + wxT(" ") + quotedProject, _("Optimizing..."))); + } + else + { + commands->push_back(new NormalCommand(GetInternalProgram(ExePath, wxT("autooptimiser")), + wxT("-a -m -l -s -o ") + quotedProject + wxT(" ") + quotedProject, _("Optimizing..."))); + }; wxString panoModifyArgs; // if necessary scale down final pano if (scale <= 1.0) diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/CMakeLists.txt hugin-2017.0.0+dfsg/src/hugin1/base_wx/CMakeLists.txt --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/CMakeLists.txt 2016-03-14 16:29:20.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/CMakeLists.txt 2017-04-29 16:05:50.000000000 +0000 @@ -31,5 +31,5 @@ target_link_libraries(huginbasewx hugin_python_interface) ENDIF() -INSTALL(FILES hugin_exiftool_copy.arg DESTINATION ${HUGINDATADIR}/data) +INSTALL(FILES hugin_exiftool_copy.arg hugin_exiftool_final_example.arg DESTINATION ${HUGINDATADIR}/data) diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/CommandHistory.cpp hugin-2017.0.0+dfsg/src/hugin1/base_wx/CommandHistory.cpp --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/CommandHistory.cpp 2015-05-10 06:52:03.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/CommandHistory.cpp 2017-04-22 17:02:43.000000000 +0000 @@ -25,7 +25,7 @@ */ // standard include -#include +#include "hugin_config.h" #include "panoinc_WX.h" #include "panoinc.h" #include "CommandHistory.h" @@ -146,16 +146,25 @@ } } - bool CommandHistory::canUndo() + bool CommandHistory::canUndo() const { return nextCmd > 0; } - bool CommandHistory::canRedo() + bool CommandHistory::canRedo() const { return nextCmd < commands.size(); } + std::string CommandHistory::getLastCommandName() const + { + if (canUndo()) + { + return commands[nextCmd-1]->getName(); + } + return std::string(); + } + // ====================================================================== // ====================================================================== diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/CommandHistory.h hugin-2017.0.0+dfsg/src/hugin1/base_wx/CommandHistory.h --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/CommandHistory.h 2015-05-10 06:52:03.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/CommandHistory.h 2017-04-22 17:02:43.000000000 +0000 @@ -77,10 +77,13 @@ virtual void redo(); /// Return true iff there is a command to undo. - bool canUndo(); + bool canUndo() const; /// Return true iff there is a command to redo. - bool canRedo(); + bool canRedo() const; + + /** returns the name of the last command */ + std::string getLastCommandName() const; private: // our commands std::vector commands; diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/Executor.cpp hugin-2017.0.0+dfsg/src/hugin1/base_wx/Executor.cpp --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/Executor.cpp 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/Executor.cpp 2017-04-22 17:02:43.000000000 +0000 @@ -22,18 +22,14 @@ */ #include "Executor.h" -#include "config.h" +#include "hugin_config.h" #include #include #include #include #include -#if wxCHECK_VERSION(3,0,0) #include -#else -#include -#endif #if defined __WXMAC__ && defined MAC_SELF_CONTAINED_BUNDLE #include "base_wx/platform.h" #endif diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/HFOVDialog.cpp hugin-2017.0.0+dfsg/src/hugin1/base_wx/HFOVDialog.cpp --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/HFOVDialog.cpp 2015-10-23 23:03:48.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/HFOVDialog.cpp 2017-04-22 17:02:43.000000000 +0000 @@ -25,7 +25,7 @@ */ -#include +#include "hugin_config.h" #include "panoinc_WX.h" #include "panoinc.h" diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/hugin_exiftool_final_example.arg hugin-2017.0.0+dfsg/src/hugin1/base_wx/hugin_exiftool_final_example.arg --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/hugin_exiftool_final_example.arg 1970-01-01 00:00:00.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/hugin_exiftool_final_example.arg 2017-04-29 16:05:50.000000000 +0000 @@ -0,0 +1,11 @@ +# this is a comment +# copy a tag to final panorama +-Make +-Model +# add a text to a tag +-Creator=Your Name +# multi-line text with usage of placeholder (on Windows use instead of for linebreak) +-Description=Panorama, projection: %projection stitched from %nrImages images +# an example for list type tags, adding panorama and prevent duplication +-Subject-=Panorama +-Subject+=Panorama \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/LensTools.cpp hugin-2017.0.0+dfsg/src/hugin1/base_wx/LensTools.cpp --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/LensTools.cpp 2016-03-19 08:32:28.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/LensTools.cpp 2016-10-03 07:51:43.000000000 +0000 @@ -398,11 +398,7 @@ if(!filename.HasExt()) { filename.SetExt(wxT("ini")); -#if wxCHECK_VERSION(3,0,0) if (filename.Exists()) -#else - if (wxFile::Exists(filename.GetFullPath())) -#endif { int d = wxMessageBox(wxString::Format(_("File %s exists. Overwrite?"), filename.GetFullPath().c_str()), _("Save project"), wxYES_NO | wxICON_QUESTION); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/MyExternalCmdExecDialog.cpp hugin-2017.0.0+dfsg/src/hugin1/base_wx/MyExternalCmdExecDialog.cpp --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/MyExternalCmdExecDialog.cpp 2016-01-27 16:36:04.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/MyExternalCmdExecDialog.cpp 2017-04-22 17:02:43.000000000 +0000 @@ -24,7 +24,7 @@ // This class is written based on 'exec' sample of wxWidgets library. -#include +#include "hugin_config.h" #include "panoinc_WX.h" #include "panoinc.h" @@ -227,11 +227,7 @@ #endif MyPipedProcess *process = new MyPipedProcess(this, cmd); -#if wxCHECK_VERSION(3,0,0) m_pidLast = wxExecute(cmd, wxEXEC_ASYNC | wxEXEC_MAKE_GROUP_LEADER, process, &m_executeEnv); -#else - m_pidLast = wxExecute(cmd, wxEXEC_ASYNC | wxEXEC_MAKE_GROUP_LEADER, process); -#endif if ( m_pidLast == 0 ) { wxLogError(_T("Execution of '%s' failed."), cmd.c_str()); @@ -252,9 +248,11 @@ int MyExecPanel::ExecQueue(HuginQueue::CommandQueue* queue) { -#if wxCHECK_VERSION(3,0,0) wxConfigBase* config = wxConfigBase::Get(); const long threads = config->Read(wxT("/output/NumberOfThreads"), 0l); + // read all current environment variables + wxGetEnvMap(&m_executeEnv.env); + // now modify some variables before passing them to wxExecute if (threads > 0) { wxString s; @@ -271,7 +269,6 @@ m_executeEnv.env["TMP"] = tempDir; #endif }; -#endif m_queue = queue; m_queueLength = queue->size() + 1; if (m_queue->empty()) @@ -345,7 +342,7 @@ void MyExecPanel::AddToOutput(wxInputStream & s) { DEBUG_TRACE(""); -#if defined __WXGTK__ && wxCHECK_VERSION(3,0,0) +#if defined __WXGTK__ wxTextInputStream ts(s, " \t", wxConvLibc); #else wxTextInputStream ts(s); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/MyExternalCmdExecDialog.h hugin-2017.0.0+dfsg/src/hugin1/base_wx/MyExternalCmdExecDialog.h --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/MyExternalCmdExecDialog.h 2015-07-22 18:56:42.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/MyExternalCmdExecDialog.h 2016-10-03 07:51:43.000000000 +0000 @@ -108,9 +108,7 @@ size_t m_queueLength; // if the return code of the process should be checked bool m_checkReturnCode; -#if wxCHECK_VERSION(3,0,0) wxExecuteEnv m_executeEnv; -#endif // any class wishing to process wxWidgets events must use this macro DECLARE_EVENT_TABLE() }; diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/MyProgressDialog.cpp hugin-2017.0.0+dfsg/src/hugin1/base_wx/MyProgressDialog.cpp --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/MyProgressDialog.cpp 2015-06-13 05:31:40.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/MyProgressDialog.cpp 2017-04-22 17:02:43.000000000 +0000 @@ -25,18 +25,18 @@ */ -#include +#include "hugin_config.h" #include "panoinc_WX.h" #include "MyProgressDialog.h" // provide some more translations for strings in huginbase #if 0 -_("Sampling points"); -_("Loading image:"); -_("Scaling image:"); -_("sampling points"); -_("extracting good points"); +_("Sampling points"); +_("Loading image:"); +_("Scaling image:"); +_("sampling points"); +_("extracting good points"); _("Elapsed time: ") #endif diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/PanoCommand.h hugin-2017.0.0+dfsg/src/hugin1/base_wx/PanoCommand.h --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/PanoCommand.h 2016-01-24 08:50:33.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/PanoCommand.h 2017-04-22 17:02:43.000000000 +0000 @@ -44,10 +44,9 @@ * beginning to end. CombinedPanoCommand deletes the commands when it is itself deleted. */ CombinedPanoCommand(HuginBase::Panorama & pano, std::vector & commands) - : PanoCommand(pano), commands(commands) {}; + : PanoCommand(pano), commands(commands) { setName("multiple commands");}; ~CombinedPanoCommand(); virtual bool processPanorama(HuginBase::Panorama & pano); - virtual std::string getName() const { return "multiple commands"; }; private: std::vector commands; }; diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/platform.cpp hugin-2017.0.0+dfsg/src/hugin1/base_wx/platform.cpp --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/platform.cpp 2015-05-10 06:52:03.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/platform.cpp 2016-10-03 07:51:43.000000000 +0000 @@ -31,9 +31,7 @@ #if defined __WXMAC__ || defined __WXOSX_COCOA__ #include -#if wxCHECK_VERSION(2,9,0) #include "wx/osx/core/cfstring.h" -#endif #include #include #include "wx/utils.h" @@ -95,11 +93,7 @@ else { CFRetain( pathInCFString ); - #if wxCHECK_VERSION(2,9,0) - theResult = wxCFStringRef(pathInCFString).AsString(wxLocale::GetSystemEncoding()); - #else - theResult = wxMacCFStringHolder(pathInCFString).AsString(wxLocale::GetSystemEncoding()); - #endif + theResult = wxCFStringRef(pathInCFString).AsString(wxLocale::GetSystemEncoding()); DEBUG_INFO("Mac: the executable's full path in the application bundle: " << theResult.mb_str(wxConvLocal)); } } @@ -170,11 +164,7 @@ else { CFRetain( pathInCFString ); - #if wxCHECK_VERSION(2,9,0) - theResult = wxCFStringRef(pathInCFString).AsString(wxLocale::GetSystemEncoding()); - #else - theResult = wxMacCFStringHolder(pathInCFString).AsString(wxLocale::GetSystemEncoding()); - #endif + theResult = wxCFStringRef(pathInCFString).AsString(wxLocale::GetSystemEncoding()); DEBUG_INFO("Mac: the executable's full path in the application bundle: " << theResult.mb_str(wxConvLocal)); } } @@ -239,11 +229,7 @@ else { CFRetain( pathInCFString ); - #if wxCHECK_VERSION(2,9,0) - theResult = wxCFStringRef(pathInCFString).AsString(wxLocale::GetSystemEncoding()); - #else - theResult = wxMacCFStringHolder(pathInCFString).AsString(wxLocale::GetSystemEncoding()); - #endif + theResult = wxCFStringRef(pathInCFString).AsString(wxLocale::GetSystemEncoding()); DEBUG_INFO("Mac: the executable's full path in the application bundle: " << theResult.mb_str(wxConvLocal)); } } @@ -281,11 +267,7 @@ else { CFRetain( pathInCFString ); - #if wxCHECK_VERSION(2,9,0) - theResult = wxCFStringRef(pathInCFString).AsString(wxLocale::GetSystemEncoding()); - #else - theResult = wxMacCFStringHolder(pathInCFString).AsString(wxLocale::GetSystemEncoding()); - #endif + theResult = wxCFStringRef(pathInCFString).AsString(wxLocale::GetSystemEncoding()); DEBUG_INFO("Mac: the resource file's path in the application bundle: " << theResult.mb_str(wxConvLocal)); } } @@ -320,11 +302,7 @@ else { CFRetain( pathInCFString ); -#if wxCHECK_VERSION(2,9,0) theResult = wxCFStringRef(pathInCFString).AsString(wxLocale::GetSystemEncoding()); -#else - theResult = wxMacCFStringHolder(pathInCFString).AsString(wxLocale::GetSystemEncoding()); -#endif DEBUG_INFO("Mac: the Frameworks file's path in the application bundle: " << theResult.mb_str(wxConvLocal)); } } @@ -366,11 +344,7 @@ else { CFRetain( pathInCFString ); - #if wxCHECK_VERSION(2,9,0) - theResult = wxCFStringRef(pathInCFString).AsString(wxLocale::GetSystemEncoding()); - #else - theResult = wxMacCFStringHolder(pathInCFString).AsString(wxLocale::GetSystemEncoding()); - #endif + theResult = wxCFStringRef(pathInCFString).AsString(wxLocale::GetSystemEncoding()); DEBUG_INFO("Mac: executable's full path in the application bundle: " << theResult.mb_str(wxConvLocal)); } } @@ -393,12 +367,7 @@ { CFStringRef tmpPath = CFURLCopyFileSystemPath(tempDirURL, kCFURLPOSIXPathStyle); CFRetain(tmpPath); - #if wxCHECK_VERSION(2,9,0) - tmpDirPath = wxCFStringRef(tmpPath).AsString(wxLocale::GetSystemEncoding()); - #else - tmpDirPath = wxMacCFStringHolder(tmpPath).AsString(wxLocale::GetSystemEncoding()); - #endif - + tmpDirPath = wxCFStringRef(tmpPath).AsString(wxLocale::GetSystemEncoding()); CFRelease(tempDirURL); } } @@ -419,12 +388,7 @@ CFURLRef autopanoURL = CFURLCreateCopyAppendingPathComponent(kCFAllocatorDefault,appSupportHugin,CFSTR("Autopano"),true); CFStringRef tmpPath = CFURLCopyFileSystemPath(autopanoURL, kCFURLPOSIXPathStyle); CFRetain(tmpPath); - #if wxCHECK_VERSION(2,9,0) - appSupportAutoPanoFolder = wxCFStringRef(tmpPath).AsString(wxLocale::GetSystemEncoding()); - #else - appSupportAutoPanoFolder = wxMacCFStringHolder(tmpPath).AsString(wxLocale::GetSystemEncoding()); - #endif - + appSupportAutoPanoFolder = wxCFStringRef(tmpPath).AsString(wxLocale::GetSystemEncoding()); CFRelease(autopanoURL); } return appSupportAutoPanoFolder; diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/platform.h hugin-2017.0.0+dfsg/src/hugin1/base_wx/platform.h --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/platform.h 2015-05-10 06:52:03.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/platform.h 2017-04-22 17:02:44.000000000 +0000 @@ -29,7 +29,7 @@ #include #include "panoinc_WX.h" -#include +#include "hugin_config.h" #if wxUSE_ON_FATAL_EXCEPTION #include #endif @@ -44,13 +44,8 @@ #if defined __WXMAC__ || defined __WXOSX_COCOA__ -#if wxCHECK_VERSION(2,9,0) - #include "wx/osx/core/cfstring.h" - #include -#else - #include - #include -#endif +#include "wx/osx/core/cfstring.h" +#include CFStringRef MacCreateCFStringWithWxString(const wxString& string); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/PTWXDlg.cpp hugin-2017.0.0+dfsg/src/hugin1/base_wx/PTWXDlg.cpp --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/PTWXDlg.cpp 2015-05-10 06:52:03.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/PTWXDlg.cpp 2017-04-22 17:02:43.000000000 +0000 @@ -24,7 +24,7 @@ * */ -#include +#include "hugin_config.h" #include "panoinc.h" #include "panoinc_WX.h" #include "PTWXDlg.h" diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/StitchingExecutor.cpp hugin-2017.0.0+dfsg/src/hugin1/base_wx/StitchingExecutor.cpp --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/StitchingExecutor.cpp 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/StitchingExecutor.cpp 2017-05-27 14:37:46.000000000 +0000 @@ -23,12 +23,9 @@ #include "StitchingExecutor.h" +#include #include -#if wxCHECK_VERSION(3,0,0) #include -#else -#include -#endif #include #include #include @@ -42,12 +39,6 @@ #include "base_wx/LensTools.h" #include "hugin/config_defaults.h" -#if wxCHECK_VERSION(3,0,0) -#define WXSTRING(s) s -#else -#define WXSTRING(s) wxString(s.c_str(), wxConvLocal) -#endif - namespace HuginQueue { namespace detail @@ -98,7 +89,17 @@ const HuginBase::PanoramaOptions &opts = pano.getOptions(); const bool readProjectionName = panoProjectionFeaturesQuery(opts.getProjection(), &proj) != 0; // build placeholder map - std::map placeholders; + struct Placeholder + { + wxString placeholder; + wxString value; + Placeholder(const wxString& holder, const wxString& newValue) + { + placeholder = holder; + value = newValue; + }; + }; + std::list placeholders; #ifdef _WIN32 const wxString linebreak(wxT(" ")); #else @@ -106,21 +107,22 @@ #endif if (readProjectionName) { - placeholders.insert(std::make_pair(wxT("%projection"), wxString(proj.name, wxConvLocal))); - placeholders.insert(std::make_pair(wxT("%projectionNumber"), wxString::Format(wxT("%d"), opts.getProjection()))); + // %projectionNumber have to be processed before %projection, otherwise it does not work + placeholders.push_back(Placeholder(wxT("%projectionNumber"), wxString::Format(wxT("%d"), opts.getProjection()))); + placeholders.push_back(Placeholder(wxT("%projection"), wxString(proj.name, wxConvLocal))); }; // fill in some placeholders - placeholders.insert(std::make_pair(wxT("%hfov"), wxString::Format(wxT("%.0f"), opts.getHFOV()))); - placeholders.insert(std::make_pair(wxT("%vfov"), wxString::Format(wxT("%.0f"), opts.getVFOV()))); - placeholders.insert(std::make_pair(wxT("%ev"), wxString::Format(wxT("%.2f"), opts.outputExposureValue))); - placeholders.insert(std::make_pair(wxT("%nrImages"), wxString::Format(wxT("%lu"), (unsigned long)images.size()))); - placeholders.insert(std::make_pair(wxT("%nrAllImages"), wxString::Format(wxT("%lu"), (unsigned long)pano.getNrOfImages()))); - placeholders.insert(std::make_pair(wxT("%fullwidth"), wxString::Format(wxT("%u"), opts.getWidth()))); - placeholders.insert(std::make_pair(wxT("%fullheight"), wxString::Format(wxT("%u"), opts.getHeight()))); - placeholders.insert(std::make_pair(wxT("%width"), wxString::Format(wxT("%d"), opts.getROI().width()))); - placeholders.insert(std::make_pair(wxT("%height"), wxString::Format(wxT("%d"), opts.getROI().height()))); + placeholders.push_back(Placeholder(wxT("%hfov"), wxString::Format(wxT("%.0f"), opts.getHFOV()))); + placeholders.push_back(Placeholder(wxT("%vfov"), wxString::Format(wxT("%.0f"), opts.getVFOV()))); + placeholders.push_back(Placeholder(wxT("%ev"), wxString::Format(wxT("%.2f"), opts.outputExposureValue))); + placeholders.push_back(Placeholder(wxT("%nrImages"), wxString::Format(wxT("%lu"), (unsigned long)images.size()))); + placeholders.push_back(Placeholder(wxT("%nrAllImages"), wxString::Format(wxT("%lu"), (unsigned long)pano.getNrOfImages()))); + placeholders.push_back(Placeholder(wxT("%fullwidth"), wxString::Format(wxT("%u"), opts.getWidth()))); + placeholders.push_back(Placeholder(wxT("%fullheight"), wxString::Format(wxT("%u"), opts.getHeight()))); + placeholders.push_back(Placeholder(wxT("%width"), wxString::Format(wxT("%d"), opts.getROI().width()))); + placeholders.push_back(Placeholder(wxT("%height"), wxString::Format(wxT("%d"), opts.getROI().height()))); wxFileName projectFilename(projectName); - placeholders.insert(std::make_pair(wxT("%projectname"), projectFilename.GetFullName())); + placeholders.push_back(Placeholder(wxT("%projectname"), projectFilename.GetFullName())); // now open the final argfile wxFileName tempArgfileFinal(wxFileName::CreateTempFileName(GetConfigTempDir(config) + wxT("he"))); wxFFileOutputStream outputStream(tempArgfileFinal.GetFullPath()); @@ -131,10 +133,10 @@ outputFile << wxT("-UserComment<${UserComment}") << linebreak; if (readProjectionName) { - outputFile << wxT("Projection: ") << placeholders[wxT("%projection")] << wxT(" (") << placeholders[wxT("%projectionNumber")] << wxT(")") << linebreak; + outputFile << wxT("Projection: ") << wxString(proj.name, wxConvLocal) << wxT(" (") << opts.getProjection() << wxT(")") << linebreak; }; - outputFile << wxT("FOV: ") << placeholders[wxT("%hfov")] << wxT(" x ") << placeholders[wxT("%vfov")] << linebreak; - outputFile << wxT("Ev: ") << placeholders[wxT("%ev")] << endl; + outputFile << wxT("FOV: ") << wxString::Format(wxT("%.0f"), opts.getHFOV()) << wxT(" x ") << wxString::Format(wxT("%.0f"), opts.getVFOV()) << linebreak; + outputFile << wxT("Ev: ") << wxString::Format(wxT("%.2f"), opts.outputExposureValue) << endl; outputFile << wxT("-f") << endl; if (generateGPanoTags) { @@ -182,9 +184,9 @@ { wxString line = input.ReadLine(); // replace all placeholders - for (std::map::const_iterator it = placeholders.begin(); it != placeholders.end(); ++it) + for (auto variable : placeholders) { - line.Replace(it->first, it->second, true); + line.Replace(variable.placeholder, variable.value, true); }; // now append to existing argfile outputFile << line << endl; @@ -194,19 +196,6 @@ return tempArgfileFinal.GetFullPath(); }; - double wxStringToCDouble(const wxString& s) - { - double val; -#if wxCHECK_VERSION(2,9,1) - s.ToCDouble(&val); -#else - wxString s2(s); - s2.Replace(wxT("."), wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, wxLOCALE_CAT_NUMBER)); - s2.ToDouble(&val); -#endif - return val; - }; - wxString PrintDetailInfo(const HuginBase::Panorama& pano, const HuginBase::PanoramaOptions& opts, const HuginBase::UIntSet& allActiveImages, const wxString& prefix, const wxString& bindir, wxConfigBase* config, double& exiftoolVersion) { wxString output; @@ -263,7 +252,7 @@ if (wxExecute(wxEscapeFilename(GetExternalProgram(config, bindir, wxT("exiftool"))) + wxT(" -ver"), version, wxEXEC_SYNC) == 0l) { output << _("ExifTool version:") << wxT(" ") << version[0] << wxEndl; - exiftoolVersion = wxStringToCDouble(version[0]); + version[0].ToCDouble(&exiftoolVersion); } else { @@ -354,7 +343,7 @@ const HuginBase::SrcPanoImage img = pano.getImage(*allActiveImages.begin()); output << _("First input image") << wxEndl << _("Number:") << wxT(" ") << *allActiveImages.begin() << wxEndl - << _("Filename:") << wxT(" ") << WXSTRING(img.getFilename()) << wxEndl + << _("Filename:") << wxT(" ") << img.getFilename() << wxEndl << wxString::Format(_("Size: %dx%d"), img.getWidth(), img.getHeight()) << wxEndl << _("Projection:") << wxT(" ") << getProjectionString(img) << wxEndl << _("Response type:") << wxT(" ") << getResponseString(img) << wxEndl @@ -364,73 +353,6 @@ return output; }; -#if !wxCHECK_VERSION(3,0,0) - /** create a temporary response with all images in given array, used by enblend, enfuse and exiftool - only needed for wxWidgets 2.8.x */ - const wxArrayString CreateResponsefile(const wxArrayString images, const size_t maxFileNumber=20000U) - { - wxArrayString responseFiles; - wxFFileOutputStream* outputStream = NULL; - wxTextOutputStream* outputFile = NULL; - wxString workingDir = wxFileName::GetCwd(); - if (workingDir.Last() != wxFileName::GetPathSeparator()) - { - workingDir.Append(wxFileName::GetPathSeparator()); - }; - // write response file - for (size_t i = 0; i < images.size(); ++i) - { - if (i % maxFileNumber == 0) - { - wxFileName tempResponsefile(wxFileName::CreateTempFileName(GetConfigTempDir(wxConfigBase::Get()) + wxT("hb"))); - responseFiles.Add(tempResponsefile.GetFullPath()); - if (outputFile != NULL) - { - outputStream->Close(); - delete outputFile; - delete outputStream; - }; - outputStream = new wxFFileOutputStream(tempResponsefile.GetFullPath()); - outputFile = new wxTextOutputStream(*outputStream); - }; - (*outputFile) << workingDir.c_str() << images[i].c_str() << endl; - }; - if (outputFile != NULL) - { - outputStream->Close(); - delete outputFile; - delete outputStream; - } - return responseFiles; - }; -#endif - /** workaround for limitation of wxExecute of wxWidgets 2.8 */ - HuginQueue::NormalCommand* GetEnblendFuseCommand(const wxString& command, const wxString& args, const wxString& comment, const wxArrayString& images, wxArrayString& tempFilesToDelete) - { -#if wxCHECK_VERSION(3,0,0) - // on wxWidgets 3.0 this workaround is not necessary, wxExecute process also big number of arguments - return new NormalCommand(command, args + wxT(" ") + GetQuotedFilenamesString(images), comment); -#else - if (images.size() < 100) - { - return new NormalCommand(command, args + wxT(" ") + GetQuotedFilenamesString(images), comment); - } - // wxWidgets 2.8 accept only 127 argument for wxExecute - // workaround for this case - // use response file for enblend/enfuse - // but one response file can only contain 63 image files, so we need - // to split the response files in several parts - const wxArrayString tempResponsefiles = CreateResponsefile(images, 60); - wxString finalArgs(args); - for (size_t i = 0; i < tempResponsefiles.size(); ++i) - { - finalArgs.Append(wxT(" @") + wxEscapeFilename(tempResponsefiles[i])); - tempFilesToDelete.Add(tempResponsefiles[i]); - }; - return new NormalCommand(command, finalArgs, comment); -#endif - } - /** build quoted filename list for verdandi */ wxString GetQuotedFilenamesStringForVerdandi(const wxArrayString& files, const HuginBase::Panorama& pano, const HuginBase::UIntSetVector& stacks, const int referenceImage, const bool hardSeam) { @@ -507,8 +429,8 @@ wxString enLayersCompressionArgs; if (!opts.outputLayersCompression.empty()) { - nonaArgs.Append(wxT("-z ") + WXSTRING(opts.outputLayersCompression) + wxT(" ")); - enLayersCompressionArgs.Append(wxT(" --compression=") + WXSTRING(opts.outputLayersCompression) + wxT(" ")); + nonaArgs.Append(wxT("-z ") + opts.outputLayersCompression + wxT(" ")); + enLayersCompressionArgs.Append(wxT(" --compression=") + opts.outputLayersCompression + wxT(" ")); } else { @@ -525,7 +447,7 @@ wxString enblendArgs; if (opts.blendMode == HuginBase::PanoramaOptions::ENBLEND_BLEND) { - enblendArgs.Append(WXSTRING(opts.enblendOptions)); + enblendArgs.Append(opts.enblendOptions); if ((opts.getHFOV() == 360.0) && (opts.getWidth()==opts.getROI().width())) { enblendArgs.Append(wxT(" -w")); @@ -545,7 +467,7 @@ wxString verdandiArgs; if (opts.blendMode == HuginBase::PanoramaOptions::INTERNAL_BLEND) { - verdandiArgs.Append(WXSTRING(opts.verdandiOptions)); + verdandiArgs.Append(opts.verdandiOptions); if ((opts.getHFOV() == 360.0) && (opts.getWidth() == opts.getROI().width())) { verdandiArgs.Append(wxT(" -w")); @@ -555,7 +477,7 @@ wxString finalCompressionArgs; if (opts.outputImageType == "tif" && !opts.outputImageTypeCompression.empty()) { - finalCompressionArgs << wxT(" --compression=") << WXSTRING(opts.outputImageTypeCompression); + finalCompressionArgs << wxT(" --compression=") << opts.outputImageTypeCompression; } else { @@ -566,7 +488,7 @@ }; finalCompressionArgs.Append(wxT(" ")); // prepare enfuse arguments - wxString enfuseArgs(WXSTRING(opts.enfuseOptions) + wxT(" ")); + wxString enfuseArgs(opts.enfuseOptions + wxT(" ")); if ((opts.getHFOV() == 360.0) && (opts.getWidth() == opts.getROI().width())) { enfuseArgs.Append(wxT(" -w")); @@ -588,7 +510,7 @@ wxString exiftoolArgsFinal; if (copyMetadata) { - exiftoolArgs = wxT("-overwrite_original_in_place -TagsFromFile "); + exiftoolArgs = wxT("-overwrite_original -TagsFromFile "); exiftoolArgs.Append(wxEscapeFilename(wxString(pano.getImage(0).getFilename().c_str(), HUGIN_CONV_FILENAME))); // required tags, can not be overwritten exiftoolArgs.Append(wxT(" -WhitePoint -ColorSpace")); @@ -614,7 +536,7 @@ if (opts.outputLDRBlended || opts.outputLDRLayers) { const wxArrayString remappedImages(detail::GetNumberedFilename(prefix, wxT(".tif"), allActiveImages)); - const wxString finalFilename(prefix + wxT(".") + WXSTRING(opts.outputImageType)); + const wxString finalFilename(prefix + wxT(".") + opts.outputImageType); if (opts.blendMode == HuginBase::PanoramaOptions::INTERNAL_BLEND && opts.outputLDRBlended) { wxString finalNonaArgs(wxT("-v -r ldr ")); @@ -624,7 +546,7 @@ } if (!opts.verdandiOptions.empty()) { - finalNonaArgs.Append(WXSTRING(opts.verdandiOptions)); + finalNonaArgs.Append(opts.verdandiOptions); finalNonaArgs.Append(wxT(" ")); }; if (opts.outputImageType == "tif") @@ -632,7 +554,7 @@ finalNonaArgs.Append(wxT("-m TIFF ")); if (!opts.outputImageTypeCompression.empty()) { - finalNonaArgs.Append(wxT("-z ") + WXSTRING(opts.outputImageTypeCompression) + wxT(" ")); + finalNonaArgs.Append(wxT("-z ") + opts.outputImageTypeCompression + wxT(" ")); }; } else @@ -681,8 +603,11 @@ { wxString finalEnblendArgs(enblendArgs + finalCompressionArgs); finalEnblendArgs.Append(wxT(" -o ") + wxEscapeFilename(finalFilename) + wxT(" -- ")); - commands->push_back(detail::GetEnblendFuseCommand(GetExternalProgram(config, ExePath, wxT("enblend")), - finalEnblendArgs, _("Blending images..."), remappedImages, tempFilesDelete)); + commands->push_back(new NormalCommand( + GetExternalProgram(config, ExePath, wxT("enblend")), + finalEnblendArgs + wxT(" ") + GetQuotedFilenamesString(remappedImages), + _("Blending images...")) + ); outputFiles.Add(finalFilename); if (copyMetadata) { @@ -714,7 +639,7 @@ wxString finalNonaArgs(nonaArgs); if (!opts.verdandiOptions.empty()) { - finalNonaArgs.Append(WXSTRING(opts.verdandiOptions)); + finalNonaArgs.Append(opts.verdandiOptions); finalNonaArgs.Append(wxT(" ")); }; finalNonaArgs.append(wxT("-r ldr --create-exposure-layers --ignore-exposure -o ") + wxEscapeFilename(prefix + wxT("_exposure_"))); @@ -765,9 +690,11 @@ exposureLayersFiles.Add(exposureLayerImgName); outputFiles.Add(exposureLayerImgName); // variant with internal blender is handled before, so we need only enblend - commands->push_back(detail::GetEnblendFuseCommand(GetExternalProgram(config, ExePath, wxT("enblend")), - enblendArgs + enLayersCompressionArgs + wxT(" -o ") + wxEscapeFilename(exposureLayerImgName) + wxT(" -- "), - wxString::Format(_("Blending exposure layer %u..."), exposureLayer), exposureLayersImgs, tempFilesDelete)); + commands->push_back(new NormalCommand( + GetExternalProgram(config, ExePath, wxT("enblend")), + enblendArgs + enLayersCompressionArgs + wxT(" -o ") + wxEscapeFilename(exposureLayerImgName) + wxT(" -- ") + GetQuotedFilenamesString(exposureLayersImgs), + wxString::Format(_("Blending exposure layer %u..."), exposureLayer)) + ); if (copyMetadata && opts.outputLDRExposureLayers) { filesForCopyTagsExiftool.Add(exposureLayerImgName); @@ -782,10 +709,13 @@ if (opts.outputLDRExposureLayersFused) { wxString finalEnfuseArgs(enfuseArgs + finalCompressionArgs); - const wxString fusedExposureLayersFilename(prefix + wxT("_blended_fused.") + WXSTRING(opts.outputImageType)); + const wxString fusedExposureLayersFilename(prefix + wxT("_blended_fused.") + opts.outputImageType); finalEnfuseArgs.Append(wxT(" -o ") + wxEscapeFilename(fusedExposureLayersFilename) + wxT(" -- ")); - commands->push_back(detail::GetEnblendFuseCommand(GetExternalProgram(config, ExePath, wxT("enfuse")), - finalEnfuseArgs, _("Fusing all exposure layers..."), exposureLayersFiles, tempFilesDelete)); + commands->push_back(new NormalCommand( + GetExternalProgram(config, ExePath, wxT("enfuse")), + finalEnfuseArgs + wxT(" ")+GetQuotedFilenamesString(exposureLayersFiles), + _("Fusing all exposure layers...")) + ); outputFiles.Add(fusedExposureLayersFilename); if (copyMetadata) { @@ -804,9 +734,11 @@ const wxString stackImgName = wxString::Format(wxT("%s_stack_ldr_%04u%s"), prefix.c_str(), stackNr, wxT(".tif")); outputFiles.Add(stackImgName); stackedImages.Add(stackImgName); - commands->push_back(detail::GetEnblendFuseCommand(GetExternalProgram(config, ExePath, wxT("enfuse")), - enfuseArgs + enLayersCompressionArgs + wxT(" -o ") + wxEscapeFilename(stackImgName) + wxT(" -- "), - wxString::Format(_("Fusing stack number %u..."), stackNr), stackImgs, tempFilesDelete)); + commands->push_back(new NormalCommand( + GetExternalProgram(config, ExePath, wxT("enfuse")), + enfuseArgs + enLayersCompressionArgs + wxT(" -o ") + wxEscapeFilename(stackImgName) + wxT(" -- ") + GetQuotedFilenamesString(stackImgs), + wxString::Format(_("Fusing stack number %u..."), stackNr)) + ); if (copyMetadata && opts.outputLDRStacks) { filesForCopyTagsExiftool.Add(stackImgName); @@ -818,15 +750,18 @@ }; if (opts.outputLDRExposureBlended) { - const wxString fusedStacksFilename(prefix + wxT("_fused.") + WXSTRING(opts.outputImageType)); + const wxString fusedStacksFilename(prefix + wxT("_fused.") + opts.outputImageType); switch (opts.blendMode) { case HuginBase::PanoramaOptions::ENBLEND_BLEND: { wxString finalEnblendArgs(enblendArgs + finalCompressionArgs); finalEnblendArgs.Append(wxT(" -o ") + wxEscapeFilename(fusedStacksFilename) + wxT(" -- ")); - commands->push_back(detail::GetEnblendFuseCommand(GetExternalProgram(config, ExePath, wxT("enblend")), - finalEnblendArgs, _("Blending all stacks..."), stackedImages, tempFilesDelete)); + commands->push_back(new NormalCommand( + GetExternalProgram(config, ExePath, wxT("enblend")), + finalEnblendArgs+wxT(" ")+GetQuotedFilenamesString(stackedImages), + _("Blending all stacks...")) + ); }; break; case HuginBase::PanoramaOptions::INTERNAL_BLEND: @@ -874,7 +809,7 @@ stackedImages.Add(stackImgName); outputFiles.Add(stackImgName); commands->push_back(new NormalCommand(GetInternalProgram(ExePath, wxT("hugin_hdrmerge")), - WXSTRING(opts.hdrmergeOptions) + wxT(" -o ") + wxEscapeFilename(stackImgName) + wxT(" -- ") + GetQuotedFilenamesString(stackImgs), + opts.hdrmergeOptions + wxT(" -o ") + wxEscapeFilename(stackImgName) + wxT(" -- ") + GetQuotedFilenamesString(stackImgs), wxString::Format(_("Merging HDR stack number %u..."), stackNr))); if (!opts.outputHDRStacks) { @@ -883,13 +818,16 @@ }; if (opts.outputHDRBlended) { - const wxString mergedStacksFilename(wxEscapeFilename(prefix + wxT("_hdr.") + WXSTRING(opts.outputImageTypeHDR))); - wxString finalBlendArgs(wxT(" -o ") + mergedStacksFilename + wxT(" -- ")); + const wxString mergedStacksFilename(prefix + wxT("_hdr.") + opts.outputImageTypeHDR); + wxString finalBlendArgs(wxT(" -o ") + wxEscapeFilename(mergedStacksFilename) + wxT(" -- ")); switch (opts.blendMode) { case HuginBase::PanoramaOptions::ENBLEND_BLEND: - commands->push_back(detail::GetEnblendFuseCommand(GetExternalProgram(config, ExePath, wxT("enblend")), - enblendArgs + finalBlendArgs, _("Blending HDR stacks..."), stackedImages, tempFilesDelete)); + commands->push_back(new NormalCommand( + GetExternalProgram(config, ExePath, wxT("enblend")), + enblendArgs + finalBlendArgs + wxT(" ") + GetQuotedFilenamesString(stackedImages), + _("Blending HDR stacks...")) + ); break; case HuginBase::PanoramaOptions::INTERNAL_BLEND: default: // switch to internal blender for all other cases, not exposed in GUI @@ -910,51 +848,15 @@ // update metadata if (!filesForCopyTagsExiftool.IsEmpty()) { -#if !wxCHECK_VERSION(3,0,0) - if (filesForCopyTagsExiftool.size() > 100) - { - // workaround for wxExecute limitation - const wxArrayString responseFiles = detail::CreateResponsefile(filesForCopyTagsExiftool); - wxString finalExiftoolArgs(exiftoolArgs); - for (size_t i = 0; i < responseFiles.size(); ++i) - { - finalExiftoolArgs.Append(wxT(" -@ ") + wxEscapeFilename(responseFiles[i])); - }; - commands->push_back(new OptionalCommand(GetExternalProgram(config, ExePath, wxT("exiftool")), - finalExiftoolArgs, _("Updating metadata..."))); - detail::AddToArray(responseFiles, tempFilesDelete); - } - else -#endif - { - commands->push_back(new OptionalCommand(GetExternalProgram(config, ExePath, wxT("exiftool")), - exiftoolArgs + GetQuotedFilenamesString(filesForCopyTagsExiftool), - _("Updating metadata..."))); - }; + commands->push_back(new OptionalCommand(GetExternalProgram(config, ExePath, wxT("exiftool")), + exiftoolArgs + GetQuotedFilenamesString(filesForCopyTagsExiftool), + _("Updating metadata..."))); }; if (!filesForFullExiftool.IsEmpty()) { -#if !wxCHECK_VERSION(3,0,0) - if (filesForFullExiftool.size()>100) - { - // workaround for wxExecute limitation - const wxArrayString responseFiles = detail::CreateResponsefile(filesForCopyTagsExiftool); - wxString finalExiftoolArgs(exiftoolArgs + exiftoolArgsFinal); - for (size_t i = 0; i < responseFiles.size(); ++i) - { - finalExiftoolArgs.Append(wxT(" -@ ") + wxEscapeFilename(responseFiles[i])); - }; - commands->push_back(new OptionalCommand(GetExternalProgram(config, ExePath, wxT("exiftool")), - finalExiftoolArgs, _("Updating metadata..."))); - detail::AddToArray(responseFiles, tempFilesDelete); - } - else -#endif - { - commands->push_back(new OptionalCommand(GetExternalProgram(config, ExePath, wxT("exiftool")), - exiftoolArgs + exiftoolArgsFinal + GetQuotedFilenamesString(filesForFullExiftool), - _("Updating metadata..."))); - }; + commands->push_back(new OptionalCommand(GetExternalProgram(config, ExePath, wxT("exiftool")), + exiftoolArgs + exiftoolArgsFinal + GetQuotedFilenamesString(filesForFullExiftool), + _("Updating metadata..."))); }; return commands; }; @@ -1005,6 +907,113 @@ s = s.Trim(true).Trim(false); return s; }; + + // replace the %prefix% placeholder, with optional postfix + // the string is modified in place + // return true on success, false if there are errors + bool ReplacePrefixPlaceholder(wxString& args, const wxString prefix) + { + int prefixPos = args.Find("%prefix"); + while (prefixPos != wxNOT_FOUND) + { + const wxString nextChar = args.Mid(prefixPos + 7, 1); + if (nextChar == "%") + { + args.Replace("%prefix%", wxEscapeFilename(prefix), true); + } + else + { + if (nextChar == ",") + { + const int closingPercent = args.Mid(prefixPos + 8).Find("%"); + if (closingPercent < 2) + { + return false; + }; + wxString postfix = args.Mid(prefixPos + 8, closingPercent); + args.Replace("%prefix," + postfix + "%", wxEscapeFilename(prefix + postfix), true); + } + else + { + return false; + }; + }; + prefixPos = args.Find("%prefix"); + }; + return true; + }; + + // replace the %with% or %height% placeholder + bool ReplaceWidthHeightPlaceHolder(wxString& args, const wxString name, int value) + { + int pos = args.Find("%" + name); + while (pos != wxNOT_FOUND) + { + const wxString nextChar = args.Mid(pos + 1 + name.Len(), 1); + if (nextChar == "%") + { + args.Replace("%" + name + "%", wxString::Format("%d", value), true); + } + else + { + if (nextChar == "*") + { + const int closingPercent = args.Mid(pos + 2 + name.Len()).Find("%"); + if (closingPercent < 2) + { + return false; + }; + wxString factorString = args.Mid(pos + 2 + name.Len(), closingPercent); + double factor; + if (!factorString.ToCDouble(&factor)) + { + return false; + }; + args.Replace("%" + name + "*" + factorString + "%", wxString::Format("%d", hugin_utils::roundi(factor*value)), true); + } + else + { + return false; + }; + }; + pos = args.Find("%" + name); + }; + return true; + }; + +#ifdef __WXMSW__ + // search for executable in program folder and in PATH + // add exe extension if no one is given + wxString GetProgname(const wxString& bindir, const wxString& name) + { + wxFileName prog(name); + if (prog.IsAbsolute()) + { + if (prog.FileExists()) + { + return prog.GetFullPath(); + }; + } + else + { + // search in program folder and in PATH + const bool hasExt = prog.HasExt(); + if(!prog.HasExt()) + { + prog.SetExt("exe"); + }; + wxPathList pathlist; + pathlist.Add(bindir); + pathlist.AddEnvList(wxT("PATH")); + const wxString fullName = pathlist.FindAbsoluteValidPath(prog.GetFullName()); + if (!fullName.IsEmpty()) + { + return fullName; + }; + }; + return name; + }; +#endif } CommandQueue* GetStitchingCommandQueueUserOutput(const HuginBase::Panorama & pano, const wxString& ExePath, const wxString& project, const wxString& prefix, const wxString& outputSettings, wxString& statusText, wxArrayString& outputFiles, wxArrayString& tempFilesDelete) @@ -1059,6 +1068,11 @@ sizeString << roi.width() << wxT("x") << roi.height(); }; const wxArrayString remappedImages(detail::GetNumberedFilename(prefix, intermediateImageType, allActiveImages)); + wxArrayString inputImages; + for (auto& i : allActiveImages) + { + inputImages.Add(wxString(pano.getImage(i).getFilename().c_str(), HUGIN_CONV_FILENAME)); + }; std::vector exposureLayers; wxArrayString exposureLayersFiles; @@ -1338,19 +1352,47 @@ return commands; }; args.Replace(wxT("%project%"), wxEscapeFilename(project), true); - const wxString prog = detail::GetSettingString(settings, wxT("Program")); - if (prog.IsEmpty()) + if (!detail::ReplacePrefixPlaceholder(args, prefix)) + { + std::cerr << "ERROR: Step " << i << " has invalid %prefix% placeholder in arguments." << std::endl; + CleanQueue(commands); + return commands; + }; + if (!detail::ReplaceWidthHeightPlaceHolder(args, "width", opts.getWidth())) + { + std::cerr << "ERROR: Step " << i << " has invalid %width% placeholder in arguments." << std::endl; + CleanQueue(commands); + return commands; + } + if (!detail::ReplaceWidthHeightPlaceHolder(args, "height", opts.getHeight())) + { + std::cerr << "ERROR: Step " << i << " has invalid %height% placeholder in arguments." << std::endl; + CleanQueue(commands); + return commands; + } + const wxString progName = detail::GetSettingString(settings, wxT("Program")); + if (progName.IsEmpty()) { std::cerr << "ERROR: Step " << i << " has no program name specified." << std::endl; CleanQueue(commands); return commands; }; +#ifdef __WXMAC__ + // check if program can be found in bundle + const wxString prog = GetExternalProgram(wxConfig::Get(), ExePath, progName); +#elif defined __WXMSW__ + + const wxString prog = detail::GetProgname(ExePath, progName); +#else + const wxString prog = progName; +#endif if (inputFiles.CmpNoCase(wxT("all")) == 0) { for (size_t imgNr = 0; imgNr < remappedImages.size(); ++imgNr) { wxString finalArgs(args); finalArgs.Replace(wxT("%file%"), wxEscapeFilename(remappedImages[imgNr]), true); + finalArgs.Replace(wxT("%sourceimage%"), wxEscapeFilename(inputImages[imgNr]), true); commands->push_back(new NormalCommand(prog, finalArgs, description)); }; } diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/wxImageCache.cpp hugin-2017.0.0+dfsg/src/hugin1/base_wx/wxImageCache.cpp --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/wxImageCache.cpp 2015-05-16 07:14:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/wxImageCache.cpp 2017-04-22 17:02:44.000000000 +0000 @@ -25,19 +25,38 @@ */ #include "wxImageCache.h" +#include "vigra_ext/utils.h" wxImage imageCacheEntry2wxImage(ImageCache::EntryPtr e) { - ImageCacheRGB8Ptr img = e->get8BitImage(); - if (img) { - return wxImage(img->width(), - img->height(), - (unsigned char *) img->data(), - true); - } else { - // invalid wxImage - return wxImage(); + if (e->imageFloat->size().area() > 0) + { + // for float images we need to apply the mapping as selected by the user + // in the preferences + const int mapping = wxConfigBase::Get()->Read(wxT("/ImageCache/Mapping"), HUGIN_IMGCACHE_MAPPING_FLOAT); + // find min/max + vigra::RGBToGrayAccessor > ga; + vigra::FindMinMax minmax; // init functor + vigra::inspectImage(srcImageRange(*(e->imageFloat), ga), minmax); + // create temporary image with remapped tone scale + vigra::BRGBImage mappedImg(e->imageFloat->size()); + vigra_ext::applyMapping(srcImageRange(*(e->imageFloat)), destImage(mappedImg), std::max(minmax.min, 1e-6f), minmax.max, mapping); + // convert to wxImage + wxImage mappedwxImg(mappedImg.width(), mappedImg.height(), (unsigned char *)mappedImg.data(), true); + return mappedwxImg.Copy(); } - + else + { + ImageCacheRGB8Ptr img = e->get8BitImage(); + if (img) + { + return wxImage(img->width(), img->height(), (unsigned char *)img->data(), true); + } + else + { + // invalid wxImage + return wxImage(); + }; + }; } diff -Nru hugin-2016.2.0+dfsg/src/hugin1/base_wx/wxPanoCommand.cpp hugin-2017.0.0+dfsg/src/hugin1/base_wx/wxPanoCommand.cpp --- hugin-2016.2.0+dfsg/src/hugin1/base_wx/wxPanoCommand.cpp 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/base_wx/wxPanoCommand.cpp 2017-04-22 17:02:44.000000000 +0000 @@ -24,7 +24,7 @@ * */ -#include +#include "hugin_config.h" #include "panoinc_WX.h" #include "panoinc.h" @@ -197,18 +197,6 @@ destImg.setFileMetadata(srcImg.getFileMetadata()); }; -#if !wxCHECK_VERSION(3,0,0) -//only needed for older wxWidgets version, in newer we are using wxMessageDialog and this workaround is not necessary -class StackDialog :public wxDialog -{ -public: - void HandleNoButton(wxCommandEvent &e) - { - EndModal(wxID_NO); - }; -}; -#endif - bool getLensDataFromUser(wxWindow * parent, HuginBase::SrcPanoImage & srcImg) { // display lens dialog @@ -257,13 +245,6 @@ HuginBase::ImageVariableGroup & lenses = variable_groups.getLenses(); const size_t oldImgCount = pano.getNrOfImages(); - // read number of bands of first image - int panoBandCount = 0; - if (pano.getNrOfImages() > 0) - { - vigra::ImageImportInfo info(pano.getImage(0).getFilename().c_str()); - panoBandCount = info.numBands() - info.numExtraBands(); - }; // load additional images... for (it = files.begin(); it != files.end(); ++it) { const std::string &filename = *it; @@ -298,15 +279,15 @@ _("Warning"), wxOK | wxICON_EXCLAMATION); continue; }; - if (panoBandCount == 0) + if (pano.getNrOfImages() == 0) { - panoBandCount = bands - extraBands; + pano.setNrOfBands(bands - extraBands); }; - if (panoBandCount != bands - extraBands) + if (pano.getNrOfBands() != bands - extraBands) { wxString s(_("Hugin supports only grayscale or RGB images (without and with alpha channel).")); s.Append(wxT("\n")); - if (panoBandCount == 3) + if (pano.getNrOfBands() == 3) { s.Append(wxString::Format(_("File \"%s\" is a grayscale image, but other images in project are color images."), fname.c_str())); } @@ -315,7 +296,7 @@ s.Append(wxString::Format(_("File \"%s\" is a color image, but other images in project are grayscale images."), fname.c_str())); }; s.Append(wxT("\n")); - s.Append(_("Hugin does not support this mixing. Skipping this image.\nConvert this image to grayscale or RGB image and try loading again.")); + s.Append(_("Hugin does not support this mixing. Skipping this image.\nConvert this image to grayscale or RGB image respectively and try loading again.")); wxMessageBox(s, _("Warning"), wxOK | wxICON_EXCLAMATION); continue; }; @@ -545,7 +526,6 @@ { message = _("Hugin has image stacks detected in the whole project. Stack numbers will be re-assigned on base of this detection. Existing stack assignments will be overwritten."); }; -#if wxCHECK_VERSION(3,0,0) message.append(wxT("\n")); message.append(_("Should the position of images in each stack be linked?")); wxMessageDialog dialog(wxGetActiveWindow(), message, @@ -564,25 +544,6 @@ { dialog.SetYesNoCancelLabels(_("Link position"), _("Don't link position"), _("Keep existing stacks")); }; -#else - wxDialog dialog; - wxXmlResource::Get()->LoadDialog(&dialog, wxGetActiveWindow(), wxT("stack_detected_dlg")); - message.append(wxT(" ")); - message.append(_("Should the position of images in each stack be linked?")); - wxStaticText* text = XRCCTRL(dialog, "stack_text1", wxStaticText); - text->SetLabel(message); - text->Wrap(350); - dialog.Connect(XRCID("wxID_NO"), wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StackDialog::HandleNoButton)); - if (oldImgCount == 0) - { - XRCCTRL(dialog, "wxID_CANCEL", wxButton)->SetLabel(_("Don't assign stacks")); - } - else - { - XRCCTRL(dialog, "wxID_CANCEL", wxButton)->SetLabel(_("Keep existing stacks")); - }; - dialog.Layout(); -#endif switch (dialog.ShowModal()) { case wxID_OK: @@ -742,6 +703,7 @@ // remember icc profile, only from first image if (i == 0) { + pano.setNrOfBands(imginfo.numBands() - imginfo.numExtraBands()); pano.setICCProfileDesc(hugin_utils::GetICCDesc(imginfo.getICCProfile())); } pano.setSrcImage(i, srcImg); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/calibrate_lens/CMakeLists.txt hugin-2017.0.0+dfsg/src/hugin1/calibrate_lens/CMakeLists.txt --- hugin-2016.2.0+dfsg/src/hugin1/calibrate_lens/CMakeLists.txt 2016-07-20 14:54:34.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/calibrate_lens/CMakeLists.txt 2017-04-22 17:02:44.000000000 +0000 @@ -85,7 +85,7 @@ ENDIF (WIN32) -target_link_libraries(calibrate_lens_gui huginbasewx ${common_libs} ${image_libs} ${wxWidgets_LIBRARIES} huginlines) +target_link_libraries(calibrate_lens_gui huginbasewx ${common_libs} ${image_libs} ${wxWidgets_LIBRARIES}) IF (APPLE) IF (NOT MAC_SELF_CONTAINED_BUNDLE) diff -Nru hugin-2016.2.0+dfsg/src/hugin1/calibrate_lens/LensCalImageCtrl.cpp hugin-2017.0.0+dfsg/src/hugin1/calibrate_lens/LensCalImageCtrl.cpp --- hugin-2016.2.0+dfsg/src/hugin1/calibrate_lens/LensCalImageCtrl.cpp 2015-05-17 13:17:20.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/calibrate_lens/LensCalImageCtrl.cpp 2016-10-03 07:51:43.000000000 +0000 @@ -40,10 +40,6 @@ EVT_MOUSE_EVENTS(LensCalImageCtrl::OnMouseEvent) END_EVENT_TABLE() -#if !wxCHECK_VERSION(3,0,0) -#define wxPENSTYLE_SOLID wxSOLID -#endif - // init some values LensCalImageCtrl::LensCalImageCtrl() : wxPanel() { diff -Nru hugin-2016.2.0+dfsg/src/hugin1/config.h hugin-2017.0.0+dfsg/src/hugin1/config.h --- hugin-2016.2.0+dfsg/src/hugin1/config.h 2011-07-17 08:39:21.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/config.h 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -#include diff -Nru hugin-2016.2.0+dfsg/src/hugin1/executor/normal_enblend_cubic.executor hugin-2017.0.0+dfsg/src/hugin1/executor/normal_enblend_cubic.executor --- hugin-2016.2.0+dfsg/src/hugin1/executor/normal_enblend_cubic.executor 1970-01-01 00:00:00.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/executor/normal_enblend_cubic.executor 2017-04-22 17:02:44.000000000 +0000 @@ -0,0 +1,54 @@ +[General] +Description=Equi and cubic +Help=Creates an equirectangular and the cube faces for given project +StepCount=7 +IntermediateImageType=tif + +[Step0] +Description=Remapping images +Type=remap +Arguments=-r ldr -m TIFF_m + +[Step1] +Description=Blending with enblend +Type=merge +Input=all +Program=enblend +Result=%prefix%.tif +Arguments=-f%size% --output=%result% %input% +WrapArgument=-w + +[Step2] +Description=Updating metadata +Type=exiftool +Result=%prefix%.tif +Arguments=-overwrite_original -TagsFromFile %image0% -ImageDescription -Make -Model -Artist -WhitePoint -Copyright -GPS:all -DateTimeOriginal -CreateDate -UserComment -ColorSpace -OwnerName -SerialNumber %result% + +[Step3] +Description=Create project file for cubic reprojection +Type=modify +File=%prefix%.tif +Program=pto_gen +Arguments=-o %prefix,_cubic.pto% %file% %file% %file% %file% %file% %file% + +[Step4] +Description=Set positions for reprojection +Type=modify +File=%prefix%_cubic.pto +Program=pto_var +Arguments=-o %file% --set=y1=90,y2=180,y3=270,p4=-90,p5=90 %file% + +[Step5] +Description=Set output size for reprojection +Type=modify +File=%prefix%_cubic.pto +Program=pano_modify +Arguments=-o %file% --projection=0 --fov=90 --canvas=%width*0.3183%x%width*0.3183% %file% + +[Step6] +Description=Create cube faces +Type=modify +File=%prefix%_cubic.pto +Program=nona +Arguments=-m TIFF_m -o %prefix,_cube% %file% + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/executor/normal_enblend.executor hugin-2017.0.0+dfsg/src/hugin1/executor/normal_enblend.executor --- hugin-2016.2.0+dfsg/src/hugin1/executor/normal_enblend.executor 2015-07-25 05:37:08.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/executor/normal_enblend.executor 2017-04-22 17:02:44.000000000 +0000 @@ -21,4 +21,4 @@ Description=Updating metadata Type=exiftool Result=%prefix%.tif -Arguments=-overwrite_original_in_place -TagsFromFile %image0% -ImageDescription -Make -Model -Artist -WhitePoint -Copyright -GPS:all -DateTimeOriginal -CreateDate -UserComment -ColorSpace -OwnerName -SerialNumber %result% +Arguments=-overwrite_original -TagsFromFile %image0% -ImageDescription -Make -Model -Artist -WhitePoint -Copyright -GPS:all -DateTimeOriginal -CreateDate -UserComment -ColorSpace -OwnerName -SerialNumber %result% diff -Nru hugin-2016.2.0+dfsg/src/hugin1/executor/normal_layered_tiff.executor hugin-2017.0.0+dfsg/src/hugin1/executor/normal_layered_tiff.executor --- hugin-2016.2.0+dfsg/src/hugin1/executor/normal_layered_tiff.executor 1970-01-01 00:00:00.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/executor/normal_layered_tiff.executor 2017-04-22 17:02:44.000000000 +0000 @@ -0,0 +1,16 @@ +[General] +Description=Normal panorama with layered TIFF output +Help=Output a panorama with layered TIFF output for manual blending +StepCount=2 +IntermediateImageType=tif + +[Step0] +Description=Remapping images +Type=remap +Arguments=-r ldr -m TIFF_multilayer + +[Step1] +Description=Updating metadata +Type=exiftool +Result=%prefix%.tif +Arguments=-overwrite_original -TagsFromFile %image0% -ImageDescription -Make -Model -Artist -WhitePoint -Copyright -GPS:all -DateTimeOriginal -CreateDate -UserComment -ColorSpace -OwnerName -SerialNumber %result% diff -Nru hugin-2016.2.0+dfsg/src/hugin1/executor/zeronoise.executor hugin-2017.0.0+dfsg/src/hugin1/executor/zeronoise.executor --- hugin-2016.2.0+dfsg/src/hugin1/executor/zeronoise.executor 2015-07-25 05:37:21.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/executor/zeronoise.executor 2017-04-22 17:02:44.000000000 +0000 @@ -1,5 +1,6 @@ [General] Description=Zero-noise output +Help=Use with a single stack (with different exposures) to reduce noise StepCount=2 IntermediateImageType=tif diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/AboutDialog.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/AboutDialog.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/AboutDialog.cpp 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/AboutDialog.cpp 2016-10-03 07:51:43.000000000 +0000 @@ -30,11 +30,7 @@ #include "base_wx/wxPlatform.h" #include "panoinc.h" #include "hugin/huginApp.h" -#if wxCHECK_VERSION(3,0,0) #include -#else -#include -#endif extern "C" { #include "pano13/queryfeature.h" @@ -194,21 +190,12 @@ text = text + wxT("\n") + wxString::Format(_("Monitor profile: %s"), huginApp::Get()->GetMonitorProfileName().c_str()); } text=text+wxT("\n\n")+_("Libraries"); -#if wxCHECK_VERSION(3,0,0) wxVersionInfo info = wxGetLibraryVersionInfo(); text = text + wxT("\nwxWidgets: ") + info.GetVersionString(); if(info.HasDescription()) { text=text+wxT("\n")+info.GetDescription(); }; -#else - text=text+wxT("\n")+wxString::Format(wxT("wxWidgets: %i.%i.%i.%i"), - wxMAJOR_VERSION, - wxMINOR_VERSION, - wxRELEASE_NUMBER, - wxSUBRELEASE_NUMBER - ); -#endif { char panoVersion[255]; if (queryFeatureString(PTVERSION_NAME_FILEVERSION, panoVersion, sizeof(panoVersion) / sizeof(panoVersion[0]))) diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/CPDetectorDialog.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/CPDetectorDialog.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/CPDetectorDialog.cpp 2015-05-10 06:52:04.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/CPDetectorDialog.cpp 2017-04-22 17:02:44.000000000 +0000 @@ -26,7 +26,7 @@ */ #include "hugin/CPDetectorDialog.h" -#include +#include "hugin_config.h" #include "base_wx/huginConfig.h" #include "hugin/config_defaults.h" #include "hugin/huginApp.h" @@ -76,13 +76,11 @@ m_check_option = XRCCTRL(*this, "prefs_cpdetector_option", wxCheckBox); m_cpdetector_type = XRCCTRL(*this, "prefs_cpdetector_type", wxChoice); m_choice_step = XRCCTRL(*this, "choicebook_steps", wxChoicebook); -#if wxCHECK_VERSION(2,9,3) // enable auto completion m_edit_prog->AutoCompleteFileNames(); m_edit_prog_descriptor->AutoCompleteFileNames(); m_edit_prog_matcher->AutoCompleteFileNames(); m_edit_prog_stack->AutoCompleteFileNames(); -#endif m_cpdetector_type->SetSelection(1); ChangeType(); }; diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/CPEditorPanel.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/CPEditorPanel.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/CPEditorPanel.cpp 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/CPEditorPanel.cpp 2017-04-22 17:02:44.000000000 +0000 @@ -24,7 +24,7 @@ * */ -#include +#include "hugin_config.h" // often necessary before panoinc.h #ifdef __APPLE__ @@ -440,6 +440,14 @@ } break; } + case CPEvent::CANCELED: + { + if (cpCreationState != NO_POINT) + { + changeState(NO_POINT); + }; + break; + }; case CPEvent::SCROLLED: { wxPoint d(hugin_utils::roundi(point.x), hugin_utils::roundi(point.y)); @@ -1127,7 +1135,6 @@ if (res.corrPos.x < 0 || res.corrPos.y < 0 || res.maxpos.x < 0 || res.maxpos.y < 0) { // invalid transformation in fine tune -#if wxCHECK_VERSION(2, 9, 0) wxMessageDialog dlg(this, _("No similar point found."), #ifdef _WIN32 @@ -1138,21 +1145,11 @@ wxICON_ERROR | wxOK); dlg.SetExtendedMessage(_("An internal transformation went wrong.\nCheck that the point is inside the image.")); dlg.ShowModal(); -#else - wxMessageBox(_("An internal transformation went wrong.\nCheck that the point is inside the image."), -#ifdef _WIN32 - _("Hugin"), -#else - wxT(""), -#endif - wxICON_ERROR | wxOK, this); -#endif return false; } if (res.maxi < corrThresh || res.curv.x < curvThresh || res.curv.y < curvThresh ) { // Bad correlation result. -#if wxCHECK_VERSION(2, 9, 0) wxMessageDialog dlg(this, _("No similar point found."), #ifdef _WIN32 @@ -1164,17 +1161,6 @@ dlg.SetExtendedMessage(wxString::Format(_("Check the similarity visually.\nCorrelation coefficient (%.3f) is lower than the threshold set in the preferences."), res.maxi)); dlg.ShowModal(); -#else - wxMessageBox( - wxString::Format(_("No similar point found. Check the similarity visually.\nCorrelation coefficient (%.3f) is lower than the threshold set in the preferences."), - res.maxi), -#ifdef _WIN32 - _("Hugin"), -#else - wxT(""), -#endif - wxICON_ERROR | wxOK, this); -#endif return false; } diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/CPImageCtrl.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/CPImageCtrl.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/CPImageCtrl.cpp 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/CPImageCtrl.cpp 2017-04-22 17:02:44.000000000 +0000 @@ -25,7 +25,7 @@ */ // standard wx include -#include +#include "hugin_config.h" #include "panoinc_WX.h" // standard hugin include @@ -47,13 +47,6 @@ #include "vigra_ext/ImageTransforms.h" -#if !wxCHECK_VERSION(3,0,0) -#define wxPENSTYLE_SOLID wxSOLID -#define wxPENSTYLE_DOT wxDOT -#define wxBRUSHSTYLE_TRANSPARENT wxTRANSPARENT -#define wxBRUSHSTYLE_SOLID wxSOLID -#endif - // definition of the control point event IMPLEMENT_DYNAMIC_CLASS( CPEvent, wxEvent ) @@ -70,6 +63,13 @@ mode = NONE; } +CPEvent::CPEvent(wxWindow * win, CPEventMode evt_mode) +{ + SetEventType(EVT_CPEVENT); + SetEventObject(win); + mode = evt_mode; +} + CPEvent::CPEvent(wxWindow* win, hugin_utils::FDiff2D & p) { SetEventType( EVT_CPEVENT ); @@ -1571,11 +1571,16 @@ update(); } - } else if (e.m_keyCode == 'a') { + } + else if (e.m_keyCode == 'a') { DEBUG_DEBUG("adding point with a key, faking right click"); // faking right mouse button with "a" // set right up event - CPEvent ev(this, CPEvent::RIGHT_CLICK, hugin_utils::FDiff2D(0,0)); + CPEvent ev(this, CPEvent::RIGHT_CLICK, hugin_utils::FDiff2D(0, 0)); + emit(ev); + } + else if (e.m_keyCode==WXK_ESCAPE) { + CPEvent ev(this, CPEvent::CANCELED); emit(ev); } else { // forward some keys... @@ -1737,11 +1742,7 @@ const wxSize CPImageCtrl::GetBitmapSize() const { -#if wxCHECK_VERSION(2,9,0) return bitmap.GetSize(); -#else - return wxSize(bitmap.GetWidth(), bitmap.GetHeight()); -#endif }; IMPLEMENT_DYNAMIC_CLASS(CPImageCtrl, wxScrolledWindow) diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/CPImageCtrl.h hugin-2017.0.0+dfsg/src/hugin1/hugin/CPImageCtrl.h --- hugin-2016.2.0+dfsg/src/hugin1/hugin/CPImageCtrl.h 2015-09-15 15:25:06.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/CPImageCtrl.h 2017-04-22 17:02:44.000000000 +0000 @@ -40,7 +40,7 @@ { DECLARE_DYNAMIC_CLASS(CPEvent) - enum CPEventMode { NONE, NEW_POINT_CHANGED, NEW_LINE_ADDED, POINT_SELECTED, POINT_CHANGED, RIGHT_CLICK, SCROLLED, DELETE_REGION_SELECTED }; + enum CPEventMode { NONE, NEW_POINT_CHANGED, NEW_LINE_ADDED, POINT_SELECTED, POINT_CHANGED, RIGHT_CLICK, SCROLLED, DELETE_REGION_SELECTED, CANCELED }; public: CPEvent( ); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/CPImagesComboBox.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/CPImagesComboBox.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/CPImagesComboBox.cpp 2016-01-24 08:49:04.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/CPImagesComboBox.cpp 2016-10-03 07:51:44.000000000 +0000 @@ -198,13 +198,8 @@ const wxPen * oldPen = & dc.GetPen(); const wxBrush * oldBrush= & dc.GetBrush(); //inner rectangle with color proportional to max cp error (max. 10) -#if wxCHECK_VERSION(3,0,0) wxPen MyPen(wxColour(255, 0, 0), 1, wxPENSTYLE_SOLID); wxBrush MyBrush(wxColour(255,0,0), wxBRUSHSTYLE_SOLID); -#else - wxPen MyPen(wxColour(255,0,0),1,wxSOLID); - wxBrush MyBrush(wxColour(255,0,0),wxSOLID); -#endif double red, green, blue; hugin_utils::ControlPointErrorColour(CPConnection[item],red,green,blue); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/CPImagesComboBox.h hugin-2017.0.0+dfsg/src/hugin1/hugin/CPImagesComboBox.h --- hugin-2016.2.0+dfsg/src/hugin1/hugin/CPImagesComboBox.h 2016-01-24 08:49:04.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/CPImagesComboBox.h 2017-04-22 17:02:44.000000000 +0000 @@ -29,7 +29,6 @@ #define _CPIMAGESCOMBOBOX_H // standard wx include -//#include #include "panoinc.h" #include "panoinc_WX.h" #include "wx/odcombo.h" diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/CPListFrame.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/CPListFrame.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/CPListFrame.cpp 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/CPListFrame.cpp 2017-04-22 17:02:44.000000000 +0000 @@ -24,7 +24,7 @@ * */ -#include +#include "hugin_config.h" #include "panoinc_WX.h" #include "panoinc.h" @@ -106,9 +106,7 @@ SetColumnWidth(j, width); }; }; -#if wxCHECK_VERSION(3,0,0) EnableAlternateRowColours(true); -#endif return true; }; @@ -439,10 +437,6 @@ }; }; -#if !wxCHECK_VERSION(3,0,0) -#define WXK_CONTROL_A 1 -#endif - void CPListCtrl::OnChar(wxKeyEvent& e) { switch (e.GetKeyCode()) diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/DragTool.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/DragTool.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/DragTool.cpp 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/DragTool.cpp 2017-04-22 17:02:44.000000000 +0000 @@ -20,7 +20,7 @@ * */ -#include +#include "hugin_config.h" #include "panoinc_WX.h" #include "panoinc.h" diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/GLPreviewFrame.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/GLPreviewFrame.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/GLPreviewFrame.cpp 2016-06-25 06:44:09.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/GLPreviewFrame.cpp 2017-04-22 17:02:45.000000000 +0000 @@ -34,7 +34,7 @@ #include #include -#include +#include "hugin_config.h" #include @@ -94,9 +94,7 @@ #include "OverviewOutlinesTool.h" #include -#if wxCHECK_VERSION(2, 9, 1) #include -#endif // a random id, hope this doesn't break something.. enum { @@ -170,18 +168,10 @@ EVT_SCROLL_CHANGED(GLPreviewFrame::OnChangeFOV) EVT_COMMAND_SCROLL_CHANGED(XRCID("layout_scale_slider"), GLPreviewFrame::OnLayoutScaleChange) #else - #if wxCHECK_VERSION(2,9,0) EVT_SCROLL_THUMBRELEASE(GLPreviewFrame::OnChangeFOV) EVT_COMMAND_SCROLL(XRCID("layout_scale_slider"), GLPreviewFrame::OnLayoutScaleChange) EVT_SCROLL_CHANGED(GLPreviewFrame::OnChangeFOV) EVT_COMMAND_SCROLL_THUMBTRACK(XRCID("layout_scale_slider"), GLPreviewFrame::OnLayoutScaleChange) - #else - EVT_SCROLL_THUMBRELEASE(GLPreviewFrame::OnChangeFOV) - EVT_SCROLL_ENDSCROLL(GLPreviewFrame::OnChangeFOV) - EVT_COMMAND_SCROLL_THUMBRELEASE(XRCID("layout_scale_slider"), GLPreviewFrame::OnLayoutScaleChange) - EVT_COMMAND_SCROLL_ENDSCROLL(XRCID("layout_scale_slider"), GLPreviewFrame::OnLayoutScaleChange) - EVT_COMMAND_SCROLL_THUMBTRACK(XRCID("layout_scale_slider"), GLPreviewFrame::OnLayoutScaleChange) - #endif #endif EVT_SCROLL_THUMBTRACK(GLPreviewFrame::OnTrackChangeFOV) EVT_TEXT_ENTER(XRCID("pano_text_hfov"), GLPreviewFrame::OnHFOVChanged ) @@ -230,53 +220,6 @@ EVT_CHECKBOX(-1, ImageGroupButtonEventHandler::OnChange) END_EVENT_TABLE() - -void AddLabelToBitmapButton(wxBitmapButton* button, wxString new_label,bool TextBelow=true) -{ - int new_width=0; - int new_height=0; - int text_height=0; - int text_width=0; - button->GetTextExtent(new_label.append(wxT(" ")), &text_width,&text_height); - if(TextBelow) - { - new_height=23+text_height; - if(text_width<24) - new_width=24; - else - new_width=text_width; - } - else - { - new_height=22; - new_width=24+text_width; - }; - wxBitmap new_bitmap(new_width,new_height); - wxMemoryDC dc(new_bitmap); - dc.SetBackground(wxBrush(button->GetBackgroundColour())); - dc.Clear(); - if(TextBelow) - { - dc.DrawBitmap(button->GetBitmapLabel(),(new_width/2)-11,0,true); - dc.SetFont(button->GetParent()->GetFont()); - dc.DrawText(new_label,(new_width-text_width)/2,23); - } - else - { - dc.DrawBitmap(button->GetBitmapLabel(),0,0,true); - dc.SetFont(button->GetParent()->GetFont()); - dc.DrawText(new_label,24,(22-text_height)/2); - }; - dc.SelectObject(wxNullBitmap); - //some fiddeling with mask - wxImage new_image=new_bitmap.ConvertToImage(); - wxColour bg=button->GetBackgroundColour(); - new_image.SetMaskColour(bg.Red(),bg.Green(),bg.Blue()); - wxBitmap new_bitmap_mask(new_image); - button->SetBitmapLabel(new_bitmap_mask); - button->Refresh(); -}; - #define PF_STYLE (wxMAXIMIZE_BOX | wxMINIMIZE_BOX | wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxCLIP_CHILDREN) GLwxAuiFloatingFrame* GLwxAuiManager::CreateFloatingFrame(wxWindow* parent, const wxAuiPaneInfo& p) { @@ -323,10 +266,6 @@ : wxFrame(frame,-1, _("Fast Panorama preview"), wxDefaultPosition, wxDefaultSize, PF_STYLE), m_pano(pano) -#if !wxCHECK_VERSION(2, 9, 1) - , - m_projectionStatusPushed(false) -#endif { DEBUG_TRACE(""); @@ -363,23 +302,13 @@ SetStatusText(wxT(""),2); wxConfigBase * cfg = wxConfigBase::Get(); -#if wxCHECK_VERSION(2,9,2) - wxPanel *tool_panel = wxXmlResource::Get()->LoadPanel(this,wxT("mode_panel_29")); + wxPanel *tool_panel = wxXmlResource::Get()->LoadPanel(this,wxT("mode_panel")); XRCCTRL(*this,"preview_center_tool",wxButton)->SetBitmapMargins(0,0); XRCCTRL(*this,"preview_fit_pano_tool",wxButton)->SetBitmapMargins(0,0); XRCCTRL(*this,"preview_straighten_pano_tool",wxButton)->SetBitmapMargins(0,0); XRCCTRL(*this,"preview_fit_pano_tool2",wxButton)->SetBitmapMargins(0,0); XRCCTRL(*this,"preview_autocrop_tool",wxButton)->SetBitmapMargins(0,0); XRCCTRL(*this,"preview_stack_autocrop_tool",wxButton)->SetBitmapMargins(0,0); -#else - wxPanel *tool_panel = wxXmlResource::Get()->LoadPanel(this,wxT("mode_panel")); - AddLabelToBitmapButton(XRCCTRL(*this,"preview_center_tool",wxBitmapButton),_("Center")); - AddLabelToBitmapButton(XRCCTRL(*this,"preview_fit_pano_tool",wxBitmapButton),_("Fit")); - AddLabelToBitmapButton(XRCCTRL(*this,"preview_straighten_pano_tool",wxBitmapButton),_("Straighten")); - AddLabelToBitmapButton(XRCCTRL(*this,"preview_fit_pano_tool2",wxBitmapButton),_("Fit")); - AddLabelToBitmapButton(XRCCTRL(*this,"preview_autocrop_tool",wxBitmapButton),_("Autocrop")); - AddLabelToBitmapButton(XRCCTRL(*this,"preview_stack_autocrop_tool",wxBitmapButton),_("HDR Autocrop")); -#endif m_tool_notebook = XRCCTRL(*this,"mode_toolbar_notebook",wxNotebook); m_ToolBar_Identify = XRCCTRL(*this,"preview_mode_toolbar",wxToolBar); m_ToolBar_ColorPicker = XRCCTRL(*this, "preview_color_picker_toolbar", wxToolBar); @@ -430,13 +359,9 @@ bitmap.LoadFile(huginApp::Get()->GetXRCPath()+wxT("data/preview_show_all.png"),wxBITMAP_TYPE_PNG); wxString showAllLabel(_("All")); showAllLabel.Append(wxT("\u25bc")); -#if wxCHECK_VERSION(2,9,2) m_selectAllButton = new wxButton(panel, ID_SHOW_ALL, showAllLabel, wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); m_selectAllButton->SetBitmap(bitmap, wxLEFT); m_selectAllButton->SetBitmapMargins(0, 0); -#else - m_selectAllButton = new wxBitmapButton(panel,ID_SHOW_ALL,bitmap); -#endif m_selectAllButton->Connect(wxEVT_CONTEXT_MENU, wxContextMenuEventHandler(GLPreviewFrame::OnSelectContextMenu), NULL, this); m_selectAllMenu = wxXmlResource::Get()->LoadMenu(wxT("preview_select_menu")); // read last used setting @@ -468,15 +393,9 @@ m_selectAllMenu->Check(XRCID("selectMenu_resetSelection"), true); }; bitmap.LoadFile(huginApp::Get()->GetXRCPath()+wxT("data/preview_show_none.png"),wxBITMAP_TYPE_PNG); -#if wxCHECK_VERSION(2,9,2) wxButton* select_none=new wxButton(panel,ID_SHOW_NONE,_("None"),wxDefaultPosition,wxDefaultSize,wxBU_EXACTFIT); select_none->SetBitmap(bitmap,wxLEFT); select_none->SetBitmapMargins(0,0); -#else - wxBitmapButton * select_none = new wxBitmapButton(panel,ID_SHOW_NONE,bitmap); - AddLabelToBitmapButton(m_selectAllButton, showAllLabel, false); - AddLabelToBitmapButton(select_none,_("None"), false); -#endif wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(m_selectAllButton,0,wxALIGN_CENTER_VERTICAL | wxLEFT | wxTOP | wxBOTTOM,5); @@ -488,12 +407,10 @@ m_topsizer->Add(tool_panel, 0, wxEXPAND | wxALL, 2); m_topsizer->Add(toggle_panel, 0, wxEXPAND | wxBOTTOM, 5); -#if wxCHECK_VERSION(2, 9, 1) m_infoBar = new wxInfoBar(this); m_infoBar->AddButton(ID_HIDE_HINTS,_("Hide")); m_infoBar->Connect(ID_HIDE_HINTS,wxEVT_COMMAND_BUTTON_CLICKED,wxCommandEventHandler(GLPreviewFrame::OnHideProjectionHints),NULL,this); m_topsizer->Add(m_infoBar, 0, wxEXPAND); -#endif //create panel that will hold gl canvases wxPanel * vis_panel = new wxPanel(this); @@ -542,11 +459,7 @@ _("VFOV")); m_VFOVSlider->SetLineSize(1); m_VFOVSlider->SetPageSize(10); -#if wxCHECK_VERSION(3,0,0) m_VFOVSlider->SetTickFreq(5); -#else - m_VFOVSlider->SetTickFreq(5,0); -#endif m_VFOVSlider->SetToolTip(_("drag to change the vertical field of view")); flexSizer->Add(m_VFOVSlider, 0, wxEXPAND); @@ -559,11 +472,7 @@ _("HFOV")); m_HFOVSlider->SetPageSize(10); m_HFOVSlider->SetLineSize(1); -#if wxCHECK_VERSION(3,0,0) m_HFOVSlider->SetTickFreq(5); -#else - m_HFOVSlider->SetTickFreq(5,0); -#endif m_HFOVSlider->SetToolTip(_("drag to change the horizontal field of view")); @@ -1040,10 +949,10 @@ void GLPreviewFrame::UpdateRoiDisplay(const HuginBase::PanoramaOptions opts) { - m_ROILeftTxt->SetValue(wxString::Format(wxT("%d"), opts.getROI().left() )); - m_ROIRightTxt->SetValue(wxString::Format(wxT("%d"), opts.getROI().right() )); - m_ROITopTxt->SetValue(wxString::Format(wxT("%d"), opts.getROI().top() )); - m_ROIBottomTxt->SetValue(wxString::Format(wxT("%d"), opts.getROI().bottom() )); + m_ROILeftTxt->ChangeValue(wxString::Format(wxT("%d"), opts.getROI().left() )); + m_ROIRightTxt->ChangeValue(wxString::Format(wxT("%d"), opts.getROI().right() )); + m_ROITopTxt->ChangeValue(wxString::Format(wxT("%d"), opts.getROI().top() )); + m_ROIBottomTxt->ChangeValue(wxString::Format(wxT("%d"), opts.getROI().bottom() )); }; void GLPreviewFrame::panoramaChanged(HuginBase::Panorama &pano) @@ -1051,7 +960,7 @@ m_lensTypeChoice->Enable(pano.getNrOfImages()>0); m_focalLengthText->Enable(pano.getNrOfImages()>0); m_cropFactorText->Enable(pano.getNrOfImages()>0); - m_alignButton->Enable(pano.getNrOfImages()>1); + m_alignButton->Enable(pano.getNrOfImages()>0); if(pano.getNrOfImages()==0) { @@ -1060,32 +969,35 @@ } else { - int images = pano.getNrOfImages(); - bool enableCreate = false;; - if (images > 1) - { - while (images) - { - --images; - const HuginBase::VariableMap & vars = pano.getImageVariables(images); - if (const_map_get(vars,"y").getValue() != 0.0) - { - enableCreate = true; - break; - } - if (const_map_get(vars,"p").getValue() != 0.0) - { - enableCreate = true; - break; - } - if (const_map_get(vars,"r").getValue() != 0.0) - { - enableCreate = true; - break; - } - } + bool enableCreate = false; + // check if images are at position 0 + for (size_t i = 0; i < pano.getNrOfImages(); ++i) + { + const HuginBase::SrcPanoImage& img = pano.getImage(i); + if (img.getYaw() != 0.0 || img.getPitch() != 0.0 || img.getRoll() != 0.0) + { + enableCreate = true; + break; + }; + }; + if (!enableCreate && pano.getNrOfImages() == 1) + { + // some more checks for single image projects + if (pano.getOptions().getProjection() != HuginBase::PanoramaOptions::EQUIRECTANGULAR) + { + enableCreate = true; + }; + if (pano.getOptions().getROI() != vigra::Rect2D(pano.getOptions().getSize())) + { + enableCreate = true; + }; + }; + // disable create button after loading images + const std::string lastCmd=PanoCommand::GlobalCmdHist::getInstance().getLastCommandName(); + if (lastCmd == "add images" || lastCmd== "add and distribute images") + { + enableCreate = false; } - m_createButton->Enable(enableCreate); // in wxWidgets 2.9, format must have types that exactly match. @@ -1098,8 +1010,9 @@ const HuginBase::SrcPanoImage& img = pano.getImage(0); SelectListValue(m_lensTypeChoice, img.getProjection()); double focal_length = HuginBase::SrcPanoImage::calcFocalLength(img.getProjection(), img.getHFOV(), img.getCropFactor(), img.getSize()); - m_focalLengthText->SetValue(hugin_utils::doubleTowxString(focal_length,m_degDigits)); - m_cropFactorText->SetValue(hugin_utils::doubleTowxString(img.getCropFactor(),m_degDigits)); + // use ChangeValue explicit, SetValue would create EVT_TEXT event which collides with our TextKillFocusHandler + m_focalLengthText->ChangeValue(hugin_utils::doubleTowxString(focal_length,m_degDigits)); + m_cropFactorText->ChangeValue(hugin_utils::doubleTowxString(img.getCropFactor(),m_degDigits)); } if (pano.getNrOfImages() > 1) @@ -1172,7 +1085,7 @@ m_decExposureBut->Show(); m_incExposureBut->Show(); }*/ - m_exposureTextCtrl->SetValue(wxString(hugin_utils::doubleToString(opts.outputExposureValue,2).c_str(), wxConvLocal)); + m_exposureTextCtrl->ChangeValue(wxString(hugin_utils::doubleToString(opts.outputExposureValue,2).c_str(), wxConvLocal)); bool activeImgs = pano.getActiveImages().size() > 0; @@ -1211,7 +1124,7 @@ assert((int) params.size() == nParam); for (int i=0; i < nParam; i++) { wxString val = wxString(hugin_utils::doubleToString(params[i],1).c_str(), wxConvLocal); - m_projParamTextCtrl[i]->SetValue(wxString(val.wc_str(), wxConvLocal)); + m_projParamTextCtrl[i]->ChangeValue(wxString(val.wc_str(), wxConvLocal)); m_projParamSlider[i]->SetValue(hugin_utils::roundi(params[i])); } } @@ -1224,20 +1137,15 @@ m_VFOVSlider->SetValue(hugin_utils::roundi(opts.getVFOV())); std::string val; val = hugin_utils::doubleToString(opts.getHFOV(),1); - m_HFOVText->SetValue(wxString(val.c_str(), wxConvLocal)); + m_HFOVText->ChangeValue(wxString(val.c_str(), wxConvLocal)); val = hugin_utils::doubleToString(opts.getVFOV(),1); - m_VFOVText->SetValue(wxString(val.c_str(), wxConvLocal)); + m_VFOVText->ChangeValue(wxString(val.c_str(), wxConvLocal)); m_VFOVText->Enable(opts.fovCalcSupported(opts.getProjection())); m_oldProjFormat = opts.getProjection(); -#if wxCHECK_VERSION(2,9,2) XRCCTRL(*this,"preview_autocrop_tool",wxButton)->Enable(activeImgs); XRCCTRL(*this,"preview_stack_autocrop_tool",wxButton)->Enable(activeImgs); -#else - XRCCTRL(*this,"preview_autocrop_tool",wxBitmapButton)->Enable(activeImgs); - XRCCTRL(*this,"preview_stack_autocrop_tool",wxBitmapButton)->Enable(activeImgs); -#endif UpdateRoiDisplay(opts); if(m_showProjectionHints) @@ -1384,11 +1292,7 @@ } if (dirty) { -#if wxCHECK_VERSION(3,0,0) m_ButtonSizer->FitInside(m_ButtonPanel); -#else - m_ButtonSizer->SetVirtualSizeHints(m_ButtonPanel); -#endif Layout(); DEBUG_INFO("New m_ButtonPanel width: " << (m_ButtonPanel->GetSize()).GetWidth()); DEBUG_INFO("New m_ButtonPanel Height: " << (m_ButtonPanel->GetSize()).GetHeight()); @@ -1418,11 +1322,7 @@ bool toggle_on = GetMenuBar()->FindItem(XRCID("action_show_overview"))->IsChecked(); wxAuiPaneInfo &inf = m_mgr->GetPane(wxT("overview")); if (inf.IsOk()) { -#if wxCHECK_VERSION(2,8,11) if (e.IsShown()) { -#else - if (e.GetShow()) { -#endif if (!inf.IsShown() && toggle_on ) { inf.Show(); m_mgr->Update(); @@ -1529,7 +1429,7 @@ // do not close, just hide if we're not forced if(m_guiLevel==GUI_SIMPLE) { - if(!MainFrame::Get()->CloseProject(event.CanVeto())) + if(!MainFrame::Get()->CloseProject(event.CanVeto(), MainFrame::CLOSE_PROGRAM)) { if (event.CanVeto()) { @@ -2974,40 +2874,19 @@ } if (message.IsEmpty()) { // no message needed. -#if wxCHECK_VERSION(2, 9, 1) m_infoBar->Dismiss(); -#else - if (m_projectionStatusPushed) { - m_projectionStatusPushed = false; - GetStatusBar()->PopStatusText(); - } -#endif } else { -#if wxCHECK_VERSION(2, 9, 1) m_infoBar->ShowMessage(message, wxICON_INFORMATION); -#else - if (m_projectionStatusPushed) { - GetStatusBar()->PopStatusText(); - } - /** @todo The message doesn't really fit in the status bar, so we should have some other GUI arrangement or remove this feature. - * On my system, the status bar remains too short to contain the two - * lines of text in the message. - */ - GetStatusBar()->PushStatusText(message); - m_projectionStatusPushed = true; -#endif } }; void GLPreviewFrame::SetShowProjectionHints(bool new_value) { m_showProjectionHints=new_value; -#if wxCHECK_VERSION(2,9,1) if(!m_showProjectionHints) { m_infoBar->Dismiss(); }; -#endif }; void GLPreviewFrame::OnHideProjectionHints(wxCommandEvent &e) @@ -3204,15 +3083,15 @@ cmds.push_back(new PanoCommand::DistributeImagesCmd(m_pano)); cmds.push_back(new PanoCommand::CenterPanoCmd(m_pano)); }; - PanoCommand::GlobalCmdHist::getInstance().addCommand(new PanoCommand::CombinedPanoCommand(m_pano, cmds)); + PanoCommand::CombinedPanoCommand* combinedCmd = new PanoCommand::CombinedPanoCommand(m_pano, cmds); + combinedCmd->setName("add and distribute images"); + PanoCommand::GlobalCmdHist::getInstance().addCommand(combinedCmd); }; } void GLPreviewFrame::OnAlign( wxCommandEvent & e ) { MainFrame::Get()->RunAssistant(this); - // enable stitch button - m_createButton->Enable(); } void GLPreviewFrame::OnCreate( wxCommandEvent & e ) diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/GLPreviewFrame.h hugin-2017.0.0+dfsg/src/hugin1/hugin/GLPreviewFrame.h --- hugin-2016.2.0+dfsg/src/hugin1/hugin/GLPreviewFrame.h 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/GLPreviewFrame.h 2017-05-06 12:09:50.000000000 +0000 @@ -41,12 +41,10 @@ class ViewState; class wxSpinEvent; class wxChoice; -#if wxCHECK_VERSION(2,9,1) //forward declaration for wxInfoBar works only for wxGTK //for other systems wxInfoBar is defined as preprocessor macro and not as class //class wxInfoBar; #include -#endif class MeshManager; @@ -306,8 +304,6 @@ // void OnOutputChoice(wxCommandEvent & e); // update tools according to blend mode choice void updateBlendMode(); - // update the panorama display - void updatePano(); /** event handler for full screen */ void OnFullScreen(wxCommandEvent &e); /** event handler for selection of new mode */ @@ -402,13 +398,8 @@ wxBitmapButton * m_defaultExposureBut; wxTextCtrl* m_exposureText; wxSpinButton * m_exposureSpinBut; -#if wxCHECK_VERSION(2, 9, 1) /// Bar for context sensitive projection information. wxInfoBar * m_infoBar; -#else - // True if the status bar text has been replaced with projection information - bool m_projectionStatusPushed; -#endif //assistant related controls wxStaticText * m_imagesText; wxButton * m_alignButton; @@ -420,11 +411,7 @@ wxMenu* m_filemenuSimple; wxMenu* m_filemenuAdvanced; wxMenu* m_selectAllMenu; -#if wxCHECK_VERSION(2,9,2) wxButton* m_selectAllButton; -#else - wxBitmapButton* m_selectAllButton; -#endif enum SelectAllMode { SELECT_ALL_IMAGES = 0, diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/GLRenderer.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/GLRenderer.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/GLRenderer.cpp 2016-06-25 06:45:14.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/GLRenderer.cpp 2017-04-22 17:02:45.000000000 +0000 @@ -35,7 +35,7 @@ #endif -#include +#include "hugin_config.h" #include "panoinc.h" @@ -189,30 +189,33 @@ m_tool_helper->AfterDrawImages(); m_tex_man->DisableTexture(); glPopMatrix(); - // darken the cropped out range - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glEnable(GL_BLEND); - glColor4f(0.0, 0.0, 0.0, 0.5); - // construct a strip of quads, with each pair being one of the corners. - const vigra::Rect2D roi = m_visualization_state->getViewState()->GetOptions()->getROI(); - glBegin(GL_QUAD_STRIP); - glVertex2f(0.0, 0.0); glVertex2i(roi.left(), roi.top()); - glVertex2f(width_o, 0.0); glVertex2i(roi.right(), roi.top()); - glVertex2f(width_o, height_o); glVertex2i(roi.right(), roi.bottom()); - glVertex2f(0.0, height_o); glVertex2i(roi.left(), roi.bottom()); - glVertex2f(0.0, 0.0); glVertex2i(roi.left(), roi.top()); - glEnd(); - // draw lines around cropped area. - // we want to invert the color to make it stand out. - glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO); - glColor3f(1.0, 1.0, 1.0); - glBegin(GL_LINE_LOOP); - glVertex2i(roi.left(), roi.top()); - glVertex2i(roi.right(), roi.top()); - glVertex2i(roi.right(), roi.bottom()); - glVertex2i(roi.left(), roi.bottom()); - glEnd(); - glDisable(GL_BLEND); + // darken the cropped out range, except in layout mode + if (!m_visualization_state->GetMeshManager()->GetLayoutMode()) + { + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glColor4f(0.0, 0.0, 0.0, 0.5); + // construct a strip of quads, with each pair being one of the corners. + const vigra::Rect2D roi = m_visualization_state->getViewState()->GetOptions()->getROI(); + glBegin(GL_QUAD_STRIP); + glVertex2f(0.0, 0.0); glVertex2i(roi.left(), roi.top()); + glVertex2f(width_o, 0.0); glVertex2i(roi.right(), roi.top()); + glVertex2f(width_o, height_o); glVertex2i(roi.right(), roi.bottom()); + glVertex2f(0.0, height_o); glVertex2i(roi.left(), roi.bottom()); + glVertex2f(0.0, 0.0); glVertex2i(roi.left(), roi.top()); + glEnd(); + // draw lines around cropped area. + // we want to invert the color to make it stand out. + glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO); + glColor3f(1.0, 1.0, 1.0); + glBegin(GL_LINE_LOOP); + glVertex2i(roi.left(), roi.top()); + glVertex2i(roi.right(), roi.top()); + glVertex2i(roi.right(), roi.bottom()); + glVertex2i(roi.left(), roi.bottom()); + glEnd(); + glDisable(GL_BLEND); + }; glEnable(GL_TEXTURE_2D); glDisable(GL_SCISSOR_TEST); @@ -567,7 +570,7 @@ double scrscale = (float) h / (2 * tan(fovy / 360.0 * M_PI) * R * options->getWidth() / MeshManager::PlaneOverviewMeshInfo::scale); m_visualization_state->SetScale(scrscale); // m_visualization_state->SetGLScale(gl_scale); - m_visualization_state->GetViewer()->MarkToolsDirty(); + m_visualization_state->GetViewer()->MarkToolsDirty(); return vigra::Diff2D(0,0); } diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/GLViewer.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/GLViewer.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/GLViewer.cpp 2016-06-25 06:47:01.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/GLViewer.cpp 2017-04-22 17:02:45.000000000 +0000 @@ -27,7 +27,7 @@ #include "base_wx/wxutils.h" #include "panoinc.h" -#include +#include "hugin_config.h" #include #include #include @@ -71,21 +71,11 @@ GLPreviewFrame *frame_in, wxGLContext * shared_context ) : -#if defined __WXGTK__ || wxCHECK_VERSION(2,9,0) wxGLCanvas(parent, wxID_ANY, args, wxDefaultPosition, wxDefaultSize, 0, wxT("GLPreviewCanvas"), wxNullPalette) -#else - wxGLCanvas(parent,shared_context,wxID_ANY,wxDefaultPosition, - wxDefaultSize,0,wxT("GLPreviewCanvas"),args,wxNullPalette) -#endif { - /* The openGL display context doesn't seem to be created automatically on - * wxGTK, (wxMSW and wxMac 2.8 does implicit create wxGLContext, - * wxWidgets 2.9 requires to explicit create wxGLContext, - * so I create a new context... */ -#if defined __WXGTK__ || wxCHECK_VERSION(2,9,0) + /* create OpenGL context... */ m_glContext = new wxGLContext(this, shared_context); -#endif m_renderer = 0; m_visualization_state = 0; @@ -105,9 +95,6 @@ GLViewer::~GLViewer() { -#if defined __WXGTK__ || wxCHECK_VERSION(2,9,0) - delete m_glContext; -#endif if (m_renderer) { delete m_tool_helper; @@ -122,6 +109,7 @@ m_view_state=NULL; } } + delete m_glContext; } void GLViewer::SetUpContext() @@ -129,11 +117,7 @@ // set the context DEBUG_INFO("Setting rendering context..."); Show(); -#if defined __WXGTK__ || wxCHECK_VERSION(2,9,0) m_glContext->SetCurrent(*this); -#else - SetCurrent(); -#endif DEBUG_INFO("...got a rendering context."); if (!started_creation) { @@ -358,9 +342,6 @@ if (frame->CanResize()) { DEBUG_DEBUG("RESIZED_IN"); -#if !wxCHECK_VERSION(3,0,0) - wxGLCanvas::OnSize(e); -#endif if(!IsShown()) return; // if we have a render at this point, tell it the new size. DEBUG_DEBUG("RESIZED_IN_SHOWN"); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/GLViewer.h hugin-2017.0.0+dfsg/src/hugin1/hugin/GLViewer.h --- hugin-2016.2.0+dfsg/src/hugin1/hugin/GLViewer.h 2016-06-25 06:45:14.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/GLViewer.h 2016-10-03 07:51:44.000000000 +0000 @@ -75,9 +75,7 @@ void SetActive(bool active) {this->active = active;} bool IsActive() {return active;} -#if defined __WXGTK__ || wxCHECK_VERSION(2,9,0) wxGLContext * GetContext() {return m_glContext;} -#endif void SetViewerBackground(wxColour col); void MarkToolsDirty(); @@ -95,9 +93,7 @@ ToolHelper *m_tool_helper; GLRenderer *m_renderer; -#if defined __WXGTK__ || wxCHECK_VERSION(2,9,0) wxGLContext *m_glContext; -#endif HuginBase::Panorama * m_pano; virtual void setUp() = 0; diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/HDRMergeOptionDialog.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/HDRMergeOptionDialog.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/HDRMergeOptionDialog.cpp 2015-05-10 06:52:04.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/HDRMergeOptionDialog.cpp 2016-10-03 07:51:44.000000000 +0000 @@ -80,21 +80,11 @@ // parse arguments static const wxCmdLineEntryDesc cmdLineDesc[] = { - // wxT is required previous to wxWidgets 2.9, and not recommended after it. - // Here it causes errors converting between const wchar_t * and const char*. -#if wxCHECK_VERSION(2,9,0) { wxCMD_LINE_OPTION, "m", NULL, NULL, wxCMD_LINE_VAL_STRING }, { wxCMD_LINE_SWITCH, "c", NULL, NULL}, { wxCMD_LINE_OPTION, "i", NULL, NULL, wxCMD_LINE_VAL_NUMBER }, { wxCMD_LINE_OPTION, "s", NULL, NULL, wxCMD_LINE_VAL_STRING }, { wxCMD_LINE_OPTION, "a", NULL, NULL, wxCMD_LINE_VAL_STRING }, -#else - { wxCMD_LINE_OPTION, wxT("m"), NULL, NULL, wxCMD_LINE_VAL_STRING }, - { wxCMD_LINE_SWITCH, wxT("c"), NULL, NULL}, - { wxCMD_LINE_OPTION, wxT("i"), NULL, NULL, wxCMD_LINE_VAL_NUMBER }, - { wxCMD_LINE_OPTION, wxT("s"), NULL, NULL, wxCMD_LINE_VAL_STRING }, - { wxCMD_LINE_OPTION, wxT("a"), NULL, NULL, wxCMD_LINE_VAL_STRING }, -#endif { wxCMD_LINE_NONE } }; wxCmdLineParser parser; diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/HtmlWindow.h hugin-2017.0.0+dfsg/src/hugin1/hugin/HtmlWindow.h --- hugin-2016.2.0+dfsg/src/hugin1/hugin/HtmlWindow.h 2015-05-10 06:52:04.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/HtmlWindow.h 2017-04-22 17:02:45.000000000 +0000 @@ -29,7 +29,6 @@ #define _HTMLWINDOW_H // standard wx include -//#include #include "panoinc.h" #include "panoinc_WX.h" #include "wx/xrc/xh_html.h" diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/huginApp.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/huginApp.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/huginApp.cpp 2016-09-03 07:15:26.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/huginApp.cpp 2017-05-13 11:57:54.000000000 +0000 @@ -24,7 +24,7 @@ * */ -#include +#include "hugin_config.h" #include "panoinc_WX.h" @@ -56,17 +56,14 @@ #include "base_wx/platform.h" #include "base_wx/huginConfig.h" +#include #ifdef __WXMSW__ #include -#include #include #if wxCHECK_VERSION(3,1,0) #include #endif #endif -#ifdef __WXGTK3__ -#include -#endif #include @@ -135,7 +132,24 @@ END_EVENT_TABLE() // make wxwindows use this class as the main application -IMPLEMENT_APP(huginApp) +#if defined USE_GDKBACKEND_X11 +// wxWidgets does not support wxGLCanvas on Wayland +// so until it is fixed upstream enforce using x11 backend +// see ticket http://trac.wxwidgets.org/ticket/17702 +#warning Using Hugin with hard coded GDK_BACKEND=x11 +wxIMPLEMENT_WX_THEME_SUPPORT +wxIMPLEMENT_APP_NO_MAIN(huginApp); +#include +int main(int argc, char **argv) +{ + wxDISABLE_DEBUG_SUPPORT(); + char backend[]="GDK_BACKEND=x11"; + putenv(backend); + return wxEntry(argc, argv); +}; +#else +wxIMPLEMENT_APP(huginApp); +#endif huginApp::huginApp() { @@ -186,12 +200,11 @@ // required by wxHtmlHelpController wxFileSystem::AddHandler(new wxZipFSHandler); - -#if defined __WXMSW__ // initialize help provider wxHelpControllerHelpProvider* provider = new wxHelpControllerHelpProvider; wxHelpProvider::Set(provider); +#if defined __WXMSW__ wxFileName exePath(wxStandardPaths::Get().GetExecutablePath()); m_utilsBinDir = exePath.GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR); exePath.RemoveLastDir(); @@ -296,11 +309,7 @@ wxXmlResource::Get()->AddHandler(new PanoPanelXmlHandler()); wxXmlResource::Get()->AddHandler(new PreviewPanelXmlHandler()); wxXmlResource::Get()->AddHandler(new HtmlWindowXmlHandler()); -#if wxCHECK_VERSION(2,9,0) wxXmlResource::Get()->AddHandler(new wxcode::wxTreeListCtrlXmlHandler()); -#else - wxXmlResource::Get()->AddHandler(new wxTreeListCtrlXmlHandler()); -#endif wxXmlResource::Get()->AddHandler(new ImagesTreeCtrlXmlHandler()); wxXmlResource::Get()->AddHandler(new CPListCtrlXmlHandler()); @@ -339,31 +348,8 @@ SetTopWindow(frame); // setup main frame size, after it has been created. -#ifdef __WXGTK3__ - if(wxPlatformInfo::Get().CheckToolkitVersion(3,20)) - { - // workaround for wxWidgets bug http://trac.wxwidgets.org/ticket/17585 - // with GTK3+ 3.20 the initial position/size of the sizer is not - // correctly calculated, if works when manually resizing the window - // so we need manually call the resizing function, but the sizes are - // only refreshed when before outstanding calculations are done in - // wxYield() - wxYield(); - RestoreFramePosition(frame, wxT("MainFrame")); - wxYield(); - frame->PostSizeEvent(); - wxYield(); - } - else - { - RestoreFramePosition(frame, wxT("MainFrame")); - } -#else RestoreFramePosition(frame, wxT("MainFrame")); -#endif #ifdef __WXMSW__ - provider->SetHelpController(&frame->GetHelpController()); - frame->GetHelpController().Initialize(m_xrcPrefix+wxT("data/hugin_help_en_EN.chm")); frame->SendSizeEvent(); #if wxCHECK_VERSION(3,1,0) wxTaskBarJumpList jumpList; @@ -382,6 +368,34 @@ jumpList.GetTasks().Append(item2); #endif #endif + // init help system + provider->SetHelpController(&frame->GetHelpController()); +#ifdef __WXMSW__ + frame->GetHelpController().Initialize(m_xrcPrefix + wxT("data/hugin_help_en_EN.chm")); +#else +#if wxUSE_WXHTML_HELP + // using wxHtmlHelpController +#if defined __WXMAC__ && defined MAC_SELF_CONTAINED_BUNDLE + // On Mac, xrc/data/help_LOCALE should be in the bundle as LOCALE.lproj/help + // which we can rely on the operating sytem to pick the right locale's. + wxString strFile = MacGetPathToBundledResourceFile(CFSTR("help")); + if (!strFile.IsEmpty()) + { + frame->GetHelpController().AddBook(wxFileName(strFile + wxT("/hugin_help_en_EN.hhp"))); + } + else + { + wxLogError(wxString::Format(wxT("Could not find help directory in the bundle"), strFile.c_str())); + return false; + } +#else + frame->GetHelpController().AddBook(wxFileName(m_xrcPrefix + wxT("data/help_en_EN/hugin_help_en_EN.hhp"))); +#endif +#else + // using wxExtHelpController + frame->GetHelpController().Initialize(Initialize(m_xrcPrefix + wxT("data/help_en_EN"))); +#endif +#endif // we are closing Hugin, if the top level window is deleted SetExitOnFrameDelete(true); @@ -555,10 +569,7 @@ int huginApp::OnExit() { DEBUG_TRACE(""); -#ifdef __WXMSW__ delete wxHelpProvider::Set(NULL); -#endif - return wxApp::OnExit(); } @@ -584,7 +595,19 @@ void huginApp::relayImageLoaded(ImageReadyEvent & event) { - ImageCache::getInstance().postEvent(event.request, event.entry); + if (event.entry.get()) + { + ImageCache::getInstance().postEvent(event.request, event.entry); + } + else + { + // loading failed, first remove request from image cache list + ImageCache::getInstance().removeRequest(event.request); + // now notify main frame to remove the failed image from project + wxCommandEvent e(EVT_LOADING_FAILED); + e.SetString(wxString(event.request->getFilename().c_str(), HUGIN_CONV_FILENAME)); + frame->GetEventHandler()->AddPendingEvent(e); + }; } void huginApp::imageLoadedAsync(ImageCache::RequestPtr request, ImageCache::EntryPtr entry) diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/huginApp.h hugin-2017.0.0+dfsg/src/hugin1/hugin/huginApp.h --- hugin-2016.2.0+dfsg/src/hugin1/hugin/huginApp.h 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/huginApp.h 2017-04-22 17:02:49.000000000 +0000 @@ -24,7 +24,7 @@ #ifndef _HUGINAPP_H #define _HUGINAPP_H -#include "config.h" +#include "hugin_config.h" #include #include #include diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/ImagesList.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/ImagesList.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/ImagesList.cpp 2016-07-21 15:11:10.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/ImagesList.cpp 2017-04-22 17:02:45.000000000 +0000 @@ -24,7 +24,7 @@ * */ -#include +#include "hugin_config.h" #include "panoinc_WX.h" #include "panoinc.h" @@ -37,18 +37,8 @@ #include "hugin/MainFrame.h" #endif -#if wxCHECK_VERSION(2,9,0) - wxDEFINE_EVENT(EVT_IMAGE_ADD,wxCommandEvent); - wxDEFINE_EVENT(EVT_IMAGE_DEL,wxCommandEvent); -#else -#if defined _WIN32 && defined Hugin_shared - DEFINE_LOCAL_EVENT_TYPE(EVT_IMAGE_ADD) - DEFINE_LOCAL_EVENT_TYPE(EVT_IMAGE_DEL) -#else - DEFINE_EVENT_TYPE(EVT_IMAGE_ADD) - DEFINE_EVENT_TYPE(EVT_IMAGE_DEL) -#endif -#endif +wxDEFINE_EVENT(EVT_IMAGE_ADD,wxCommandEvent); +wxDEFINE_EVENT(EVT_IMAGE_DEL,wxCommandEvent); //------------------------------------------------------------------------------ @@ -504,41 +494,6 @@ }; m_singleSelect=(GetWindowStyle() & wxLC_SINGLE_SEL)!=0; -#if defined __WXGTK__ && !wxCHECK_VERSION(3,0,0) - // wxGTK shows a bad behaviour, if we change the style - // all items and columns are deleted, we need to create it again - Freeze(); - InsertColumn(0, wxT("#"), wxLIST_FORMAT_RIGHT, 35 ); - InsertColumn(1, _("Filename"), wxLIST_FORMAT_LEFT, 200 ); - InsertColumn(2, _("Number of masks"), wxLIST_FORMAT_RIGHT,120); - InsertColumn(3, _("Crop"), wxLIST_FORMAT_RIGHT,120); - - //get saved width - for ( int j=0; j < GetColumnCount() ; j++ ) - { - // -1 is auto - int width = wxConfigBase::Get()->Read(wxString::Format(m_configClassName+wxT("/ColumnWidth%d"), j ), -1); - if(width != -1) - SetColumnWidth(j, width); - } - - for(size_t i=0; igetNrOfImages(); i++) - { - CreateItem(i); - }; - //restore selection - if(selectedItems.size()>0) - { - if(m_singleSelect) - { - size_t imgNr=*selectedItems.begin(); - selectedItems.clear(); - selectedItems.insert(imgNr); - } - SelectImages(selectedItems); - }; - Thaw(); -#endif }; IMPLEMENT_DYNAMIC_CLASS(ImagesListMask, ImagesList) diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/ImagesList.h hugin-2017.0.0+dfsg/src/hugin1/hugin/ImagesList.h --- hugin-2016.2.0+dfsg/src/hugin1/hugin/ImagesList.h 2015-09-15 15:27:14.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/ImagesList.h 2016-10-03 07:51:44.000000000 +0000 @@ -32,18 +32,8 @@ //#include "hugin/MainFrame.h" //declare 2 event types to communicate with parent about adding/deleting images -#if wxCHECK_VERSION(2,9,0) wxDECLARE_EVENT(EVT_IMAGE_ADD,wxCommandEvent); wxDECLARE_EVENT(EVT_IMAGE_DEL,wxCommandEvent); -#else -#if defined _WIN32 && defined Hugin_shared - DECLARE_LOCAL_EVENT_TYPE(EVT_IMAGE_ADD,-1) - DECLARE_LOCAL_EVENT_TYPE(EVT_IMAGE_DEL,-1) -#else - DECLARE_EVENT_TYPE(EVT_IMAGE_ADD,-1) - DECLARE_EVENT_TYPE(EVT_IMAGE_DEL,-1) -#endif -#endif /** multi use list. * diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/ImagesPanel.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/ImagesPanel.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/ImagesPanel.cpp 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/ImagesPanel.cpp 2017-04-22 17:02:45.000000000 +0000 @@ -25,7 +25,7 @@ * */ -#include +#include "hugin_config.h" #include "panoinc_WX.h" #include "panoinc.h" #include @@ -254,8 +254,8 @@ m_optPhotoChoice->SetSelection(found); }; const HuginBase::PanoramaOptions opts = m_pano->getOptions(); - m_overlap->SetValue(hugin_utils::doubleTowxString(opts.outputStacksMinOverlap,3)); - m_maxEv->SetValue(hugin_utils::doubleTowxString(opts.outputLayersExposureDiff,2)); + m_overlap->ChangeValue(hugin_utils::doubleTowxString(opts.outputStacksMinOverlap,3)); + m_maxEv->ChangeValue(hugin_utils::doubleTowxString(opts.outputLayersExposureDiff,2)); } void ImagesPanel::panoramaImagesChanged(HuginBase::Panorama &pano, const HuginBase::UIntSet & _imgNr) @@ -312,11 +312,7 @@ { wxConfigBase* config=wxConfigBase::Get(); long nFeatures = HUGIN_ASS_NCONTROLPOINTS; -#if wxCHECK_VERSION(2,9,4) if(wxGetKeyState(WXK_COMMAND)) -#else - if(wxGetKeyState(WXK_CONTROL)) -#endif { nFeatures = config->Read(wxT("/MainFrame/nControlPoints"), HUGIN_ASS_NCONTROLPOINTS); nFeatures = wxGetNumberFromUser( @@ -399,7 +395,8 @@ }; if(focallength>0) { - m_focallength->SetValue(hugin_utils::doubleTowxString(focallength,m_degDigits)); + // use ChangeValue explicit, SetValue would create EVT_TEXT event which collides with our TextKillFocusHandler + m_focallength->ChangeValue(hugin_utils::doubleTowxString(focallength,m_degDigits)); } else { @@ -407,7 +404,7 @@ }; if(cropFactor>0) { - m_cropfactor->SetValue(hugin_utils::doubleTowxString(cropFactor,m_degDigits)); + m_cropfactor->ChangeValue(hugin_utils::doubleTowxString(cropFactor,m_degDigits)); } else { diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/ImagesTree.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/ImagesTree.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/ImagesTree.cpp 2015-10-24 07:04:58.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/ImagesTree.cpp 2017-05-25 08:44:56.000000000 +0000 @@ -23,7 +23,7 @@ * */ -#include +#include "hugin_config.h" #include "panoinc_WX.h" #include "panoinc.h" @@ -40,6 +40,9 @@ #include #include "hugin/ImageVariableDialog.h" #include "hugin/huginApp.h" +#include "hugin/MainFrame.h" +#include "hugin/GLPreviewFrame.h" +#include enum { @@ -66,8 +69,7 @@ EVT_MENU(ID_UNSELECT_LENS_STACK, ImagesTreeCtrl::OnUnselectLensStack) EVT_MENU_RANGE(ID_OPERATION_START, ID_OPERATION_START+50, ImagesTreeCtrl::OnExecuteOperation) EVT_TREE_BEGIN_DRAG(-1, ImagesTreeCtrl::OnBeginDrag) - EVT_LEFT_UP(ImagesTreeCtrl::OnEndDrag) - EVT_LEFT_DOWN(ImagesTreeCtrl::OnLeftDown) + EVT_LEFT_UP(ImagesTreeCtrl::OnLeftUp) EVT_LEFT_DCLICK(ImagesTreeCtrl::OnLeftDblClick) EVT_TREE_KEY_DOWN(-1, ImagesTreeCtrl::OnChar) EVT_TREE_BEGIN_LABEL_EDIT(-1, ImagesTreeCtrl::OnBeginEdit) @@ -154,40 +156,40 @@ ADDCOLUMN(_("Shutter Speed"), "time", 50, wxALIGN_LEFT, false, HuginBase::ImageVariableGroup::IVE_Filename, _("Shutter speed")) ADDCOLUMN(_("ISO"), "iso", 50, wxALIGN_LEFT, false, HuginBase::ImageVariableGroup::IVE_Filename, _("ISO speed")) - ADDCOLUMN(_("Yaw (y)"), "y", 60, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Yaw")) - ADDCOLUMN(_("Pitch (p)"), "p", 60, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Pitch")) - ADDCOLUMN(_("Roll (r)"), "r", 60, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Roll")) - ADDCOLUMN(wxT("X (TrX)"), "TrX", 60, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Camera translation X")) - ADDCOLUMN(wxT("Y (TrY)"), "TrY", 60, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Camera translation Y")) - ADDCOLUMN(wxT("Z (TrZ)"), "TrZ", 60, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Camera translation Z")) - ADDCOLUMN(_("Plane yaw"), "Tpy", 60, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Translation remap plane yaw")) - ADDCOLUMN(_("Plane pitch"), "Tpp", 60, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Translation remap plane pitch")) + ADDCOLUMN(_("Yaw (y)"), "y", 60, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Yaw")) + ADDCOLUMN(_("Pitch (p)"), "p", 60, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Pitch")) + ADDCOLUMN(_("Roll (r)"), "r", 60, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Roll")) + ADDCOLUMN(wxT("X (TrX)"), "TrX", 60, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Camera translation X")) + ADDCOLUMN(wxT("Y (TrY)"), "TrY", 60, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Camera translation Y")) + ADDCOLUMN(wxT("Z (TrZ)"), "TrZ", 60, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Camera translation Z")) + ADDCOLUMN(_("Plane yaw"), "Tpy", 60, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Translation remap plane yaw")) + ADDCOLUMN(_("Plane pitch"), "Tpp", 60, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Translation remap plane pitch")) ADDCOLUMN(_("Camera translation"), "cam_trans", 60, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_Yaw, _("Camera translation")) ADDCOLUMN(_("Lens type (f)"), "projection", 100, wxALIGN_LEFT, false, HuginBase::ImageVariableGroup::IVE_Filename, _("Lens type (rectilinear, fisheye, equirectangular, ...)")) - ADDCOLUMN(_("Hfov (v)"), "v", 80, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_HFOV, _("Horizontal field of view (v)")) - ADDCOLUMN(wxT("a"), "a", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_RadialDistortion, _("Radial distortion (a)")) - ADDCOLUMN(wxT("b"), "b", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_RadialDistortion, _("Radial distortion (b, barrel)")) - ADDCOLUMN(wxT("c"), "c", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_RadialDistortion, _("Radial distortion (c)")) - ADDCOLUMN(wxT("d"), "d", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_RadialDistortionCenterShift, _("Horizontal image center shift (d)")) - ADDCOLUMN(wxT("e"), "e", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_RadialDistortionCenterShift, _("Vertical image center shift (e)")) - ADDCOLUMN(wxT("g"), "g", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_Shear, _("Horizontal image shearing (g)")) - ADDCOLUMN(wxT("t"), "t", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_Shear, _("Vertical image shearing (t)")) - - ADDCOLUMN(wxT("EV"), "Eev", 50, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_ExposureValue, _("Exposure value (Eev)")) - ADDCOLUMN(wxT("Er"), "Er", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_WhiteBalanceRed, _("Red multiplier (Er)")) - ADDCOLUMN(wxT("Eb"), "Eb", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_WhiteBalanceBlue, _("Blue multiplier (Eb)")) - ADDCOLUMN(wxT("Vb"), "Vb", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_RadialVigCorrCoeff, _("Vignetting (Vb, Vc, Vd)")) - ADDCOLUMN(wxT("Vc"), "Vc", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_RadialVigCorrCoeff, _("Vignetting (Vb, Vc, Vd)")) - ADDCOLUMN(wxT("Vd"), "Vd", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_RadialVigCorrCoeff, _("Vignetting (Vb, Vc, Vd)")) - ADDCOLUMN(wxT("Vx"), "Vx", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_RadialVigCorrCenterShift, _("Horizontal vignetting center shift (Vx)")) - ADDCOLUMN(wxT("Vy"), "Vy", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_RadialVigCorrCenterShift, _("Vertical vignetting center shift (Vy)")) - ADDCOLUMN(_("Response type"), "response", 80, wxALIGN_RIGHT, false, HuginBase::ImageVariableGroup::IVE_Filename, _("Camera response type")) - ADDCOLUMN(wxT("Ra"), "Ra", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_EMoRParams, _("Camera response parameter")) - ADDCOLUMN(wxT("Rb"), "Rb", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_EMoRParams, _("Camera response parameter")) - ADDCOLUMN(wxT("Rc"), "Rc", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_EMoRParams, _("Camera response parameter")) - ADDCOLUMN(wxT("Rd"), "Rd", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_EMoRParams, _("Camera response parameter")) - ADDCOLUMN(wxT("Re"), "Re", 40, wxALIGN_RIGHT, true, HuginBase::ImageVariableGroup::IVE_EMoRParams, _("Camera response parameter")) + ADDCOLUMN(_("Hfov (v)"), "v", 80, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_HFOV, _("Horizontal field of view (v)")) + ADDCOLUMN(wxT("a"), "a", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_RadialDistortion, _("Radial distortion (a)")) + ADDCOLUMN(wxT("b"), "b", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_RadialDistortion, _("Radial distortion (b, barrel)")) + ADDCOLUMN(wxT("c"), "c", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_RadialDistortion, _("Radial distortion (c)")) + ADDCOLUMN(wxT("d"), "d", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_RadialDistortionCenterShift, _("Horizontal image center shift (d)")) + ADDCOLUMN(wxT("e"), "e", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_RadialDistortionCenterShift, _("Vertical image center shift (e)")) + ADDCOLUMN(wxT("g"), "g", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_Shear, _("Horizontal image shearing (g)")) + ADDCOLUMN(wxT("t"), "t", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_Shear, _("Vertical image shearing (t)")) + + ADDCOLUMN(wxT("EV"), "Eev", 50, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_ExposureValue, _("Exposure value (Eev)")) + ADDCOLUMN(wxT("Er"), "Er", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_WhiteBalanceRed, _("Red multiplier (Er)")) + ADDCOLUMN(wxT("Eb"), "Eb", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_WhiteBalanceBlue, _("Blue multiplier (Eb)")) + ADDCOLUMN(wxT("Vb"), "Vb", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_RadialVigCorrCoeff, _("Vignetting (Vb, Vc, Vd)")) + ADDCOLUMN(wxT("Vc"), "Vc", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_RadialVigCorrCoeff, _("Vignetting (Vb, Vc, Vd)")) + ADDCOLUMN(wxT("Vd"), "Vd", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_RadialVigCorrCoeff, _("Vignetting (Vb, Vc, Vd)")) + ADDCOLUMN(wxT("Vx"), "Vx", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_RadialVigCorrCenterShift, _("Horizontal vignetting center shift (Vx)")) + ADDCOLUMN(wxT("Vy"), "Vy", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_RadialVigCorrCenterShift, _("Vertical vignetting center shift (Vy)")) + ADDCOLUMN(_("Response type"), "response", 80, wxALIGN_LEFT, false, HuginBase::ImageVariableGroup::IVE_Filename, _("Camera response type")) + ADDCOLUMN(wxT("Ra"), "Ra", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_EMoRParams, _("Camera response parameter")) + ADDCOLUMN(wxT("Rb"), "Rb", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_EMoRParams, _("Camera response parameter")) + ADDCOLUMN(wxT("Rc"), "Rc", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_EMoRParams, _("Camera response parameter")) + ADDCOLUMN(wxT("Rd"), "Rd", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_EMoRParams, _("Camera response parameter")) + ADDCOLUMN(wxT("Re"), "Re", 40, wxALIGN_LEFT, true, HuginBase::ImageVariableGroup::IVE_EMoRParams, _("Camera response parameter")) //empty column to have enough space on the right side AddColumn(wxEmptyString,10); @@ -230,6 +232,9 @@ Freeze(); UpdateOptimizerVariables(); Thaw(); +#ifdef __WXGTK__ + Refresh(); +#endif }; if(m_needsUpdate && (m_groupMode==GROUP_OUTPUTLAYERS || m_groupMode==GROUP_OUTPUTSTACK)) { @@ -332,6 +337,11 @@ item=GetNextChild(m_root, cookie); }; }; + // updates checkboxes images for optimizer variables + if(m_optimizerMode) + { + UpdateOptimizerVariables(); + }; Thaw(); m_needsUpdate = false; @@ -887,10 +897,6 @@ void ImagesTreeCtrl::UpdateOptimizerVariables() { HuginBase::OptimizeVector optVec=m_pano->getOptimizeVector(); - wxFont font1=GetItemFont(m_root); - wxFont font2(font1); - font2.SetUnderlined(true); - font2.SetWeight(wxFONTWEIGHT_BOLD); wxTreeItemIdValue cookie; wxTreeItemId item=GetFirstChild(m_root, cookie); while(item.IsOk()) @@ -918,29 +924,31 @@ { if(set_contains(m_editableColumns,i)) { - bool opt=false; - for(HuginBase::UIntSet::const_iterator it=imgNrs.begin(); it!=imgNrs.end() && !opt;++it) + if (GetItemText(item, i).IsEmpty()) { - if(m_columnVector[i]=="cam_trans") - { - opt=set_contains(optVec[*it], "TrX") && - set_contains(optVec[*it], "TrY") && - set_contains(optVec[*it], "TrZ") && - set_contains(optVec[*it], "Tpy") && - set_contains(optVec[*it], "Tpp"); - } - else - { - opt=set_contains(optVec[*it], m_columnVector[i]); - }; - }; - if(opt) - { - SetItemFont(item,i,font2); + // item with no text can have no checkbox + // this can happen with linked variables + SetItemImage(item, i, -1); } else { - SetItemFont(item,i,font1); + bool opt=false; + for(HuginBase::UIntSet::const_iterator it=imgNrs.begin(); it!=imgNrs.end() && !opt;++it) + { + if(m_columnVector[i]=="cam_trans") + { + opt=set_contains(optVec[*it], "TrX") && + set_contains(optVec[*it], "TrY") && + set_contains(optVec[*it], "TrZ") && + set_contains(optVec[*it], "Tpy") && + set_contains(optVec[*it], "Tpp"); + } + else + { + opt=set_contains(optVec[*it], m_columnVector[i]); + }; + }; + SetItemImage(item, i, opt ? 1 : 0); }; }; }; @@ -997,6 +1005,41 @@ void ImagesTreeCtrl::SetOptimizerMode() { m_optimizerMode=true; + // connnect events with handlers + Bind(wxEVT_MOTION, &ImagesTreeCtrl::OnMouseMove, this); + Bind(wxEVT_LEFT_DOWN, &ImagesTreeCtrl::OnLeftDown, this); + //create bitmaps for different checkboxes state + wxRendererNative& renderer = wxRendererNative::Get(); + const wxSize checkBoxSize = renderer.GetCheckBoxSize(this); + wxImageList* checkboxImageList = new wxImageList(checkBoxSize.GetWidth(), checkBoxSize.GetHeight(), true, 0); + wxBitmap checkBoxImage(checkBoxSize, 32); + wxMemoryDC dc(checkBoxImage); + // unchecked checkbox + dc.Clear(); + renderer.DrawCheckBox(this, dc, wxRect(checkBoxSize)); + dc.SelectObject(wxNullBitmap); + checkboxImageList->Add(checkBoxImage); + // checked checkbox + dc.SelectObject(checkBoxImage); + dc.Clear(); + renderer.DrawCheckBox(this, dc, wxRect(checkBoxSize), wxCONTROL_CHECKED); + dc.SelectObject(wxNullBitmap); + checkboxImageList->Add(checkBoxImage); + // mouse over unchecked checkbox + dc.SelectObject(checkBoxImage); + dc.Clear(); + renderer.DrawCheckBox(this, dc, wxRect(checkBoxSize), wxCONTROL_CURRENT); + dc.SelectObject(wxNullBitmap); + checkboxImageList->Add(checkBoxImage); + // mouse over checked checkbox + dc.SelectObject(checkBoxImage); + dc.Clear(); + renderer.DrawCheckBox(this, dc, wxRect(checkBoxSize), wxCONTROL_CHECKED | wxCONTROL_CURRENT); + dc.SelectObject(wxNullBitmap); + checkboxImageList->Add(checkBoxImage); + + AssignImageList(checkboxImageList); + // activate edit mode for(HuginBase::UIntSet::const_iterator it=m_editableColumns.begin(); it!=m_editableColumns.end(); ++it) { if(m_columnVector[*it]!="cam_trans") @@ -1331,11 +1374,7 @@ void ImagesTreeCtrl::OnBeginDrag(wxTreeEvent &e) { -#if wxCHECK_VERSION(2,9,4) - bool ctrlPressed=wxGetKeyState(WXK_COMMAND); -#else - bool ctrlPressed=wxGetKeyState(WXK_CONTROL); -#endif + const bool ctrlPressed=wxGetKeyState(WXK_COMMAND); if(m_pano->getNrOfImages()>0 && !m_dragging) { m_draggingImages=GetSelectedImages(); @@ -1352,7 +1391,7 @@ }; }; -void ImagesTreeCtrl::OnEndDrag(wxMouseEvent &e) +void ImagesTreeCtrl::OnLeftUp(wxMouseEvent &e) { //we can't use wxEVT_TREE_END_DRAG because this event is fire several times, e.g. when // the mouse leaves the area of the tree @@ -1396,6 +1435,35 @@ PanoCommand::GlobalCmdHist::getInstance().addCommand( new PanoCommand::MoveImageCmd(*m_pano, img1, img2) ); + // now update drag images groups in fast preview window, this information is not stored in Panorama class + HuginBase::UIntSet images = MainFrame::Get()->getGLPreview()->GetDragGroupImages(); + if (!images.empty() && images.size() < m_pano->getNrOfImages()) + { + std::vector imgList(m_pano->getNrOfImages(), false); + for (auto& i : images) + { + imgList[i] = true; + }; + const bool moveImageChecked = imgList[img1]; + imgList.erase(imgList.begin() + img1); + if (img2 < imgList.size()) + { + imgList.insert(imgList.begin() + img2, moveImageChecked); + } + else + { + imgList.push_back(moveImageChecked); + }; + images.clear(); + for (size_t i = 0; i < imgList.size(); ++i) + { + if (imgList[i]) + { + images.insert(i); + }; + }; + MainFrame::Get()->getGLPreview()->SetDragGroupImages(images, true); + }; }; }; } @@ -1455,117 +1523,139 @@ } else { + if (m_optimizerMode && m_leftDownItem.IsOk()) + { + int flags; + int col; + wxTreeItemId item = HitTest(e.GetPosition(), flags, col); + // check if left up is on the same item as left down + if (item.IsOk() && item == m_leftDownItem && col == m_leftDownColumn && (flags & wxTREE_HITTEST_ONITEMICON)) + { + HuginBase::UIntSet imgs; + ImagesTreeData* data = static_cast(GetItemData(m_leftDownItem)); + if (data->IsGroup()) + { + wxTreeItemIdValue cookie; + wxTreeItemId childItem = GetFirstChild(m_leftDownItem, cookie); + while (childItem.IsOk()) + { + data = static_cast(GetItemData(childItem)); + imgs.insert(data->GetImgNr()); + childItem = GetNextChild(m_leftDownItem, cookie); + }; + } + else + { + imgs.insert(data->GetImgNr()); + }; + HuginBase::OptimizeVector optVec = m_pano->getOptimizeVector(); + std::set var; + if (m_columnVector[m_leftDownColumn] == "cam_trans") + { + var.insert("TrX"); + var.insert("TrY"); + var.insert("TrZ"); + var.insert("Tpy"); + var.insert("Tpp"); + } + else + { + var.insert(m_columnVector[m_leftDownColumn]); + if (m_columnVector[m_leftDownColumn] == "Tpy" || m_columnVector[m_leftDownColumn] == "Tpp") + { + var.insert("Tpy"); + var.insert("Tpp"); + }; + if (m_columnVector[m_leftDownColumn] == "Vb" || m_columnVector[m_leftDownColumn] == "Vc" || m_columnVector[m_leftDownColumn] == "Vd") + { + var.insert("Vb"); + var.insert("Vc"); + var.insert("Vd"); + }; + if (m_columnVector[m_leftDownColumn] == "Vx" || m_columnVector[m_leftDownColumn] == "Vy") + { + var.insert("Vx"); + var.insert("Vy"); + }; + if (m_columnVector[m_leftDownColumn] == "Ra" || m_columnVector[m_leftDownColumn] == "Rb" || m_columnVector[m_leftDownColumn] == "Rc" || + m_columnVector[m_leftDownColumn] == "Rd" || m_columnVector[m_leftDownColumn] == "Re") + { + var.insert("Ra"); + var.insert("Rb"); + var.insert("Rc"); + var.insert("Rd"); + var.insert("Re"); + }; + }; + bool deactivate = false; + for (std::set::const_iterator varIt = var.begin(); varIt != var.end(); ++varIt) + { + //search, if image variable is marked for optimise for at least one image of group + for (HuginBase::UIntSet::const_iterator imgIt = imgs.begin(); imgIt != imgs.end() && !deactivate; ++imgIt) + { + if (set_contains(optVec[*imgIt], *varIt)) + { + deactivate = true; + }; + }; + }; + // now deactivate or activate the image variable for optimisation + if (deactivate) + { + for (std::set::const_iterator varIt = var.begin(); varIt != var.end(); ++varIt) + { + for (HuginBase::UIntSet::const_iterator imgIt = imgs.begin(); imgIt != imgs.end(); ++imgIt) + { + optVec[*imgIt].erase(*varIt); + }; + } + } + else + { + for (std::set::const_iterator varIt = var.begin(); varIt != var.end(); ++varIt) + { + for (HuginBase::UIntSet::const_iterator imgIt = imgs.begin(); imgIt != imgs.end(); ++imgIt) + { + optVec[*imgIt].insert(*varIt); + }; + }; + }; + PanoCommand::GlobalCmdHist::getInstance().addCommand( + new PanoCommand::UpdateOptimizeVectorCmd(*m_pano, optVec) + ); + m_leftDownItem.Unset(); + return; + }; + }; + if (m_leftDownItem.IsOk()) + { + m_leftDownItem.Unset(); + }; e.Skip(); }; }; void ImagesTreeCtrl::OnLeftDown(wxMouseEvent &e) { - if(!m_dragging && m_optimizerMode) + if (!m_dragging) { - if(e.LeftDown() && e.CmdDown()) + if (e.LeftDown()) { + // force end editing + EndEdit(false); + // find where user clicked int flags; int col; - wxTreeItemId item=HitTest(e.GetPosition(),flags,col); - if(item.IsOk()) + wxTreeItemId item = HitTest(e.GetPosition(), flags, col); + if (item.IsOk() && (flags & wxTREE_HITTEST_ONITEMICON)) { - if(set_contains(m_editableColumns, col)) + if (set_contains(m_editableColumns, col)) { - if(!GetItemText(item, col).IsEmpty()) + if (!GetItemText(item, col).IsEmpty()) { - HuginBase::UIntSet imgs; - ImagesTreeData* data=static_cast(GetItemData(item)); - if(data->IsGroup()) - { - wxTreeItemIdValue cookie; - wxTreeItemId childItem=GetFirstChild(item,cookie); - while(childItem.IsOk()) - { - data=static_cast(GetItemData(childItem)); - imgs.insert(data->GetImgNr()); - childItem=GetNextChild(item, cookie); - }; - } - else - { - imgs.insert(data->GetImgNr()); - }; - HuginBase::OptimizeVector optVec=m_pano->getOptimizeVector(); - std::set var; - if(m_columnVector[col]=="cam_trans") - { - var.insert("TrX"); - var.insert("TrY"); - var.insert("TrZ"); - var.insert("Tpy"); - var.insert("Tpp"); - } - else - { - var.insert(m_columnVector[col]); - if(m_columnVector[col]=="Tpy" || m_columnVector[col]=="Tpp") - { - var.insert("Tpy"); - var.insert("Tpp"); - }; - if(m_columnVector[col]=="Vb" || m_columnVector[col]=="Vc" || m_columnVector[col]=="Vd") - { - var.insert("Vb"); - var.insert("Vc"); - var.insert("Vd"); - }; - if(m_columnVector[col]=="Vx" || m_columnVector[col]=="Vy") - { - var.insert("Vx"); - var.insert("Vy"); - }; - if(m_columnVector[col]=="Ra" || m_columnVector[col]=="Rb" || m_columnVector[col]=="Rc" || - m_columnVector[col]=="Rd" || m_columnVector[col]=="Re") - { - var.insert("Ra"); - var.insert("Rb"); - var.insert("Rc"); - var.insert("Rd"); - var.insert("Re"); - }; - }; - bool deactivate=false; - for(std::set::const_iterator varIt=var.begin(); varIt!=var.end(); ++varIt) - { - //search, if image variable is marked for optimise for at least one image of group - for(HuginBase::UIntSet::const_iterator imgIt=imgs.begin(); imgIt!=imgs.end() && !deactivate; ++imgIt) - { - if(set_contains(optVec[*imgIt], *varIt)) - { - deactivate=true; - }; - }; - }; - // now deactivate or activate the image variable for optimisation - if(deactivate) - { - for(std::set::const_iterator varIt=var.begin(); varIt!=var.end(); ++varIt) - { - for(HuginBase::UIntSet::const_iterator imgIt=imgs.begin(); imgIt!=imgs.end(); ++imgIt) - { - optVec[*imgIt].erase(*varIt); - }; - } - } - else - { - for(std::set::const_iterator varIt=var.begin(); varIt!=var.end(); ++varIt) - { - for(HuginBase::UIntSet::const_iterator imgIt=imgs.begin(); imgIt!=imgs.end(); ++imgIt) - { - optVec[*imgIt].insert(*varIt); - }; - }; - }; - PanoCommand::GlobalCmdHist::getInstance().addCommand( - new PanoCommand::UpdateOptimizeVectorCmd(*m_pano, optVec) - ); + // store for later and stop processing this event further + m_leftDownItem = item; + m_leftDownColumn = col; return; }; }; @@ -1575,6 +1665,39 @@ e.Skip(); }; +void ImagesTreeCtrl::OnMouseMove(wxMouseEvent &e) +{ + int flags; + int col; + wxTreeItemId item = HitTest(e.GetPosition(), flags, col); + if (item.IsOk() && (flags & wxTREE_HITTEST_ONITEMICON)) + { + // mouse moved over optimizer checkbox + int imgNr = GetItemImage(item, col); + if (imgNr >= 0 && imgNr < 2) + { + // update checkbox image and store position for later + SetItemImage(item, col, imgNr + 2); + m_lastCurrentItem = item; + m_lastCurrentCol = col; + }; + } + else + { + // mouse moved from checkbox away, so update images + if (m_lastCurrentItem.IsOk()) + { + int imgNr = GetItemImage(m_lastCurrentItem, m_lastCurrentCol); + if (imgNr > 1) + { + SetItemImage(m_lastCurrentItem, m_lastCurrentCol, imgNr - 2); + }; + m_lastCurrentItem.Unset(); + }; + }; + e.Skip(); +}; + void ImagesTreeCtrl::SelectAllParameters(bool select, bool allImages) { std::set imgVars; @@ -1718,6 +1841,16 @@ }; break; }; +#if defined __WXMAC__ + case 'A': + case 'a': + // check for cmd+A -> select all + if (e.GetExtraLong() == wxMOD_CMD) + { + SelectAll(); + }; + break; +#endif case 1: //Ctrl+A { SelectAll(); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/ImagesTree.h hugin-2017.0.0+dfsg/src/hugin1/hugin/ImagesTree.h --- hugin-2016.2.0+dfsg/src/hugin1/hugin/ImagesTree.h 2015-10-23 23:55:30.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/ImagesTree.h 2017-04-22 17:02:45.000000000 +0000 @@ -33,11 +33,7 @@ #include "hugin/PanoOperation.h" /** the main images tree control, used on images and optimizer tabs */ -#if wxCHECK_VERSION(2,9,0) class ImagesTreeCtrl: public wxcode::wxTreeListCtrl, public HuginBase::PanoramaObserver -#else -class ImagesTreeCtrl: public wxTreeListCtrl, public HuginBase::PanoramaObserver -#endif { public: /** enumeration for grouping mode */ @@ -111,10 +107,12 @@ void OnEditImageVariables(wxCommandEvent &e); /** event handler when dragging begins, veto if dragging is not possible */ void OnBeginDrag(wxTreeEvent &e); - /** event handler when dragging ends, updates the Panorama */ - void OnEndDrag(wxMouseEvent &e); + /** event handler for left up, handles end of dragging and updates of optimizer variables states */ + void OnLeftUp(wxMouseEvent &e); /** event handler for left mouse down, handles toggle of optimizer variables */ void OnLeftDown(wxMouseEvent &e); + /** event handler for mouse motion, handles focussing of check boxes */ + void OnMouseMove(wxMouseEvent &e); /** event handler for left double click */ void OnLeftDblClick(wxMouseEvent &e); /** event handler for select all optimizer variables */ @@ -197,6 +195,13 @@ /** pointer to root item, not shown */ wxTreeItemId m_root; + /** stores last item on which the mouse was hovering */ + wxTreeItemId m_lastCurrentItem; + long m_lastCurrentCol; + /** stores where left mouse click happend */ + wxTreeItemId m_leftDownItem; + long m_leftDownColumn; + //for saving column width wxString m_configClassName; DECLARE_EVENT_TABLE() @@ -205,11 +210,7 @@ /** xrc handler */ -#if wxCHECK_VERSION(2,9,0) class ImagesTreeCtrlXmlHandler : public wxcode::wxTreeListCtrlXmlHandler -#else -class ImagesTreeCtrlXmlHandler : public wxTreeListCtrlXmlHandler -#endif { DECLARE_DYNAMIC_CLASS(ImagesTreeCtrlXmlHandler) diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/ImageVariableDialog.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/ImageVariableDialog.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/ImageVariableDialog.cpp 2015-10-24 07:08:37.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/ImageVariableDialog.cpp 2017-04-22 17:02:45.000000000 +0000 @@ -271,16 +271,16 @@ { //lens parameters case 1: - MainFrame::Get()->DisplayHelp(wxT("/Lens_correction_model.html")); + MainFrame::Get()->DisplayHelp(wxT("Lens_correction_model.html")); break; case 2: - MainFrame::Get()->DisplayHelp(wxT("/Vignetting.html")); + MainFrame::Get()->DisplayHelp(wxT("Vignetting.html")); break; case 3: - MainFrame::Get()->DisplayHelp(wxT("/Camera_response_curve.html")); + MainFrame::Get()->DisplayHelp(wxT("Camera_response_curve.html")); break; default: - MainFrame::Get()->DisplayHelp(wxT("/Image_positioning_model.html")); + MainFrame::Get()->DisplayHelp(wxT("Image_positioning_model.html")); break; }; }; diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/LocalizedFileTipProvider.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/LocalizedFileTipProvider.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/LocalizedFileTipProvider.cpp 2015-09-27 14:05:46.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/LocalizedFileTipProvider.cpp 2017-04-22 17:02:46.000000000 +0000 @@ -26,7 +26,7 @@ * */ -#include +#include "hugin_config.h" #include "base_wx/wxutils.h" #include "panoinc_WX.h" @@ -71,12 +71,6 @@ // Read the tip, and increment the current tip counter. tip = m_textfile.GetLine(m_currentTip++); -#if !wxCHECK_VERSION(3,0,0) - // Allow a derived class's overrided virtual to modify the tip - // now if so desired. - tip = PreprocessTip(tip); -#endif - // Break if tip isn't a comment, and isn't an empty string // (or only stray space characters). if ( !tip.StartsWith(wxT("#")) && (tip.Trim() != wxEmptyString) ) diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/MainFrame.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/MainFrame.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/MainFrame.cpp 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/MainFrame.cpp 2017-06-10 07:26:15.000000000 +0000 @@ -24,12 +24,11 @@ * */ -#include -#include -#include +#include "hugin_config.h" #include #include +#include #include "panoinc_WX.h" #include "panoinc.h" @@ -129,7 +128,8 @@ file.GetExt().CmpNoCase(wxT("pts")) == 0 ) { // load project - if (mf->CloseProject(true)) { + if (mf->CloseProject(true, MainFrame::LOAD_NEW_PROJECT)) + { mf->LoadProjectFile(file.GetFullPath()); // remove old images from cache ImageCache::getInstance().flush(); @@ -194,6 +194,11 @@ } +#if defined _WIN32 && defined Hugin_shared +DEFINE_LOCAL_EVENT_TYPE(EVT_LOADING_FAILED) +#else +DEFINE_EVENT_TYPE(EVT_LOADING_FAILED) +#endif // event table. this frame will recieve mostly global commands. BEGIN_EVENT_TABLE(MainFrame, wxFrame) @@ -255,6 +260,7 @@ EVT_BUTTON(XRCID("action_add_time_images"), MainFrame::OnAddTimeImages) EVT_CLOSE( MainFrame::OnExit) EVT_SIZE(MainFrame::OnSize) + EVT_COMMAND(wxID_ANY, EVT_LOADING_FAILED, MainFrame::OnLoadingFailed) END_EVENT_TABLE() // change this variable definition @@ -263,6 +269,12 @@ //wxBitmap *p_img = (wxBitmap *) NULL; //WX_DEFINE_ARRAY() +enum +{ + wxIDPYTHONSCRIPTS = wxID_HIGHEST + 2000, + wxIDUSEROUTPUTSEQUENCE = wxID_HIGHEST + 2500 +}; + MainFrame::MainFrame(wxWindow* parent, HuginBase::Panorama & pano) : cp_frame(0), pano(pano) { @@ -270,11 +282,7 @@ svmModel=NULL; bool disableOpenGL=false; -#if wxCHECK_VERSION(2,9,4) if(wxGetKeyState(WXK_COMMAND)) -#else - if(wxGetKeyState(WXK_CONTROL)) -#endif { wxDialog dlg; wxXmlResource::Get()->LoadDialog(&dlg, NULL, wxT("disable_opengl_dlg")); @@ -388,7 +396,7 @@ }; items.sort(comparePluginItem); - int pluginID = wxID_HIGHEST + 2000; + int pluginID = wxIDPYTHONSCRIPTS; for (PluginItems::const_iterator it = items.begin(); it != items.end(); ++it) { PluginItem item = *it; @@ -418,6 +426,64 @@ GetMenuBar()->Enable(XRCID("action_python_script"), false); #endif + // add saved user defined output sequences + { + wxArrayString files; + // search all .executor files, do not follow links + wxDir::GetAllFiles(GetDataPath(), &files, wxT("*.executor"), wxDIR_FILES | wxDIR_HIDDEN | wxDIR_NO_FOLLOW); + const size_t nrAllUserSequences = files.size(); + wxDir::GetAllFiles(hugin_utils::GetUserAppDataDir(), &files, wxT("*executor"), wxDIR_FILES | wxDIR_HIDDEN | wxDIR_NO_FOLLOW); + if (!files.IsEmpty()) + { + // we found some files + long outputId = wxIDUSEROUTPUTSEQUENCE; + int outputMenuId=mainMenu->FindMenu(_("&Output")); + if (outputMenuId != wxNOT_FOUND) + { + wxMenu* outputSequencesMenu = new wxMenu; + size_t i = 0; + for (auto file : files) + { + if (i > 0 && i == nrAllUserSequences && outputSequencesMenu->GetMenuItemCount() > 0) + { + outputSequencesMenu->AppendSeparator(); + }; + wxFileInputStream inputStream(file); + if (inputStream.IsOk()) + { + // read descriptions from file + wxFileConfig executorFile(inputStream); + wxString desc = executorFile.Read(wxT("/General/Description"), wxEmptyString); + desc = desc.Trim(true).Trim(false); + wxString help = executorFile.Read(wxT("/General/Help"), wxEmptyString); + help = help.Trim(true).Trim(false); + if (help.IsEmpty()) + { + help = wxString::Format(_("User defined sequence: %s"), file); + }; + // add menu + if (!desc.IsEmpty()) + { + outputSequencesMenu->Append(outputId, desc, help); + Bind(wxEVT_MENU, &MainFrame::OnUserDefinedStitchSaved, this, outputId); + m_userOutput[outputId] = file; + ++outputId; + }; + }; + i++; + }; + if ((outputSequencesMenu->GetMenuItemCount() == 1 && !(outputSequencesMenu->FindItemByPosition(0)->IsSeparator())) || + outputSequencesMenu->GetMenuItemCount() > 1) + { + mainMenu->GetMenu(outputMenuId)->AppendSubMenu(outputSequencesMenu, _("User defined output sequences")); + } + else + { + delete outputSequencesMenu; + }; + }; + }; + }; // create tool bar SetToolBar(wxXmlResource::Get()->LoadToolBar(this, wxT("main_toolbar"))); @@ -691,19 +757,43 @@ Close(); } -bool MainFrame::CloseProject(bool cancelable) +bool MainFrame::CloseProject(bool cancelable, CloseReason reason) { if (pano.isDirty()) { - wxMessageDialog message(wxGetActiveWindow(), - _("Save changes to the panorama before closing?"), + wxString messageString; + switch (reason) + { + case LOAD_NEW_PROJECT: + messageString = _("Save changes to the panorama before opening an other project?"); + break; + case NEW_PROJECT: + messageString = _("Save changes to the panorama before starting a new project?"); + break; + case CLOSE_PROGRAM: + default: + messageString = _("Save changes to the panorama before closing?"); + break; + }; + wxMessageDialog message(wxGetActiveWindow(), messageString, #ifdef _WIN32 _("Hugin"), #else wxT(""), #endif wxICON_EXCLAMATION | wxYES_NO | (cancelable? (wxCANCEL):0)); -#if wxCHECK_VERSION(2, 9, 0) - message.SetExtendedMessage(_("If you close without saving, changes since your last save will be discarded")); + switch(reason) + { + case LOAD_NEW_PROJECT: + message.SetExtendedMessage(_("If you load an other project without saving, your changes since your last save will be discarded.")); + break; + case NEW_PROJECT: + message.SetExtendedMessage(_("If you start a new project without saving, your changes since your last save will be discarded.")); + break; + case CLOSE_PROGRAM: + default: + message.SetExtendedMessage(_("If you close without saving, your changes since your last save will be discarded.")); + break; + }; #if defined __WXMAC__ || defined __WXMSW__ // Apple human interface guidelines and Windows user experience interaction guidelines message.SetYesNoLabels(wxID_SAVE, _("Don't Save")); @@ -711,7 +801,6 @@ // Gnome human interface guidelines: message.SetYesNoLabels(wxID_SAVE, _("Close without saving")); #endif -#endif int answer = message.ShowModal(); switch (answer){ case wxID_YES: @@ -734,7 +823,7 @@ DEBUG_TRACE(""); if(m_guiLevel!=GUI_SIMPLE) { - if(!CloseProject(e.CanVeto())) + if(!CloseProject(e.CanVeto(), CLOSE_PROGRAM)) { if (e.CanVeto()) { @@ -877,7 +966,6 @@ void MainFrame::LoadProjectFile(const wxString & filename) { DEBUG_TRACE(""); - m_filename = filename; // remove old images from cache // hmm probably not a good idea, if the project is reloaded.. @@ -887,7 +975,9 @@ wxFileName fname(filename); wxString path = fname.GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR); - if (fname.IsOk() && fname.FileExists()) { + if (fname.IsOk() && fname.FileExists()) + { + m_filename = filename; wxBusyCursor wait; deregisterPTWXDlgFcn(); PanoCommand::GlobalCmdHist::getInstance().addCommand( @@ -939,7 +1029,7 @@ #ifdef __WXMAC__ void MainFrame::MacOnOpenFile(const wxString & filename) { - if(!CloseProject(true)) return; //if closing old project is canceled do nothing. + if(!CloseProject(true, LOAD_NEW_PROJECT)) return; //if closing old project is canceled do nothing. ImageCache::getInstance().flush(); LoadProjectFile(filename); @@ -950,7 +1040,7 @@ { DEBUG_TRACE(""); - if(CloseProject(true)) //if closing old project is canceled do nothing. + if(CloseProject(true, LOAD_NEW_PROJECT)) //if closing old project is canceled do nothing. { // get the global config object wxConfigBase* config = wxConfigBase::Get(); @@ -998,7 +1088,7 @@ void MainFrame::OnNewProject(wxCommandEvent & e) { - if(!CloseProject(true)) return; //if closing current project is canceled + if(!CloseProject(true, NEW_PROJECT)) return; //if closing current project is canceled m_filename = wxT(""); PanoCommand::GlobalCmdHist::getInstance().addCommand(new PanoCommand::wxNewProjectCmd(pano)); @@ -1136,6 +1226,47 @@ m_notebook->SetSelection(0); } +void MainFrame::OnLoadingFailed(wxCommandEvent & e) +{ + // check if file exists + if (wxFileExists(e.GetString())) + { + // file exists, but could not loaded + wxMessageBox(wxString::Format(_("Could not load image \"%s\".\nThis file is not a valid image.\nThis file will be removed from the project."), e.GetString()), +#ifdef _WIN32 + _("Hugin"), +#else + wxT(""), +#endif + wxOK | wxICON_ERROR); + } + else + { + // file does not exists + wxMessageBox(wxString::Format(_("Could not load image \"%s\".\nThis file was renamed, deleted or is on a non-accessible drive.\nThis file will be removed from the project."), e.GetString()), +#ifdef _WIN32 + _("Hugin"), +#else + wxT(""), +#endif + wxOK | wxICON_ERROR); + }; + // now remove the file from the pano + const std::string filename(e.GetString().mb_str(HUGIN_CONV_FILENAME)); + HuginBase::UIntSet imagesToRemove; + for (size_t i = 0; i < pano.getNrOfImages(); ++i) + { + if (pano.getImage(i).getFilename() == filename) + { + imagesToRemove.insert(i); + }; + }; + if (!imagesToRemove.empty()) + { + PanoCommand::GlobalCmdHist::getInstance().addCommand(new PanoCommand::RemoveImagesCmd(pano, imagesToRemove)); + }; +} + void MainFrame::OnAbout(wxCommandEvent & e) { @@ -1182,83 +1313,32 @@ void MainFrame::OnKeyboardHelp(wxCommandEvent & e) { - DisplayHelp(wxT("/Hugin_Keyboard_shortcuts.html")); + DisplayHelp(wxT("Hugin_Keyboard_shortcuts.html")); } void MainFrame::OnFAQ(wxCommandEvent & e) { - DisplayHelp(wxT("/Hugin_FAQ.html")); + DisplayHelp(wxT("Hugin_FAQ.html")); } void MainFrame::DisplayHelp(wxString section) { - // TODO: - // structure a frame with navigation on the left and content on the right - // always load the same navigation on the left and the section into the frame - // find a way to target always the same window rather than opening new window / tabs in the browser every time - // make it look nicer with some CSS styling - - // section is the HTML document to be displayed, from inside the data folder - - DEBUG_TRACE(""); - -#ifdef __WXMSW__ if (section.IsEmpty()) { - // wxWidgets 3.x has a bug, that prevents DisplaySection to work on Win8/10 64 bit - // see: http://trac.wxwidgets.org/ticket/14888 - // so using DisplayContents() and our own implementation of HuginCHMHelpController GetHelpController().DisplayContents(); } else { -#if wxCHECK_VERSION(3,1,1) - GetHelpController().DisplaySection(section); -#else +#if defined __wxMSW__ && !(wxCHECK_VERSION(3,1,1)) + // wxWidgets 3.x has a bug, that prevents DisplaySection to work on Win8/10 64 bit + // see: http://trac.wxwidgets.org/ticket/14888 + // so using DisplayContents() and our own implementation of HuginCHMHelpController GetHelpController().DisplayHelpPage(section); -#endif - }; -#else - if (section.IsEmpty()) - { - section = wxT("/Hugin.html"); - } -#if defined __WXMAC__ && defined MAC_SELF_CONTAINED_BUNDLE - // On Mac, xrc/data/help_LOCALE should be in the bundle as LOCALE.lproj/help - // which we can rely on the operating sytem to pick the right locale's. - wxString strFile = MacGetPathToBundledResourceFile(CFSTR("help")); - if(strFile!=wxT("")) - { - strFile += section; - } else { - wxLogError(wxString::Format(wxT("Could not find help directory in the bundle"), strFile.c_str())); - return; - } #else - // find base filename - wxString helpFile = wxT("help_") + huginApp::Get()->GetLocale().GetCanonicalName() + section; - DEBUG_INFO("help file candidate: " << helpFile.mb_str(wxConvLocal)); - //if the language is not default, load custom About file (if exists) - wxString strFile = GetXRCPath() + wxT("data/") + helpFile; - if(wxFile::Exists(strFile)) - { - DEBUG_TRACE("Using About: " << strFile.mb_str(wxConvLocal)); - } else { - strFile = GetXRCPath() + wxT("data/help_en_EN") + section; - } -#endif - if(!wxFile::Exists(strFile)) - { - wxLogError(wxString::Format(wxT("Could not open help file: %s"), strFile.c_str())); - return; - } - DEBUG_INFO("help file: " << strFile.mb_str(wxConvLocal)); - if(!wxLaunchDefaultBrowser(strFile)) - { - wxLogError(_("Can't start system's web browser")); - } + GetHelpController().DisplaySection(section); #endif + }; } void MainFrame::OnTipOfDay(wxCommandEvent& WXUNUSED(e)) @@ -1435,6 +1515,19 @@ pano_panel->DoUserDefinedStitch(); } +void MainFrame::OnUserDefinedStitchSaved(wxCommandEvent & e) +{ + auto filename = m_userOutput.find(e.GetId()); + if (filename != m_userOutput.end()) + { + pano_panel->DoUserDefinedStitch(filename->second); + } + else + { + wxBell(); + }; +} + void MainFrame::OnMergeProject(wxCommandEvent & e) { // get the global config object @@ -1817,6 +1910,11 @@ theMenuBar->Enable(XRCID("ID_SHOW_PREVIEW_FRAME"), option); theMenuBar->Enable(XRCID("action_stitch"), option); theMenuBar->Enable(XRCID("action_stitch_userdefined"), option); + const int userOutputMenuId = theMenuBar->FindMenuItem(_("&Output"), _("User defined output sequences")); + if (userOutputMenuId != wxNOT_FOUND) + { + theMenuBar->Enable(userOutputMenuId, option); + }; m_menu_file_advanced->Enable(XRCID("action_import_papywizard"), option); //theMenuBar->Enable(XRCID("ID_SHOW_GL_PREVIEW_FRAME"), option); } @@ -1891,8 +1989,17 @@ if (!f.empty()) { wxFileName fn(f); - if(fn.FileExists()) - LoadProjectFile(f); + if (fn.FileExists()) + { + // if closing old project was canceled do nothing + if (CloseProject(true, LOAD_NEW_PROJECT)) + { + // remove old images from cache + ImageCache::getInstance().flush(); + // finally load project + LoadProjectFile(f); + }; + } else { m_mruFiles.RemoveFileFromHistory(index); @@ -2118,12 +2225,6 @@ void MainFrame::RunAssistant(wxWindow* mainWin) { - if (pano.getNrOfImages() < 2) - { - wxMessageBox(_("At least two images are required.\nPlease add more images."),_("Error"), wxOK, mainWin); - return; - } - //save project into temp directory wxString tempDir= wxConfig::Get()->Read(wxT("tempDir"),wxT("")); if(!tempDir.IsEmpty()) @@ -2158,22 +2259,30 @@ //if return value is non-zero, an error occurred in the assistant if(ret!=0) { - //check for unconnected images - HuginGraph::ImageGraph graph(pano); - const HuginGraph::ImageGraph::Components comps = graph.GetComponents(); - if(comps.size() > 1) - { - // switch to images panel. - unsigned i1 = *(comps[0].rbegin()); - unsigned i2 = *(comps[1].begin()); - ShowCtrlPointEditor( i1, i2); - // display message box with - wxMessageBox(wxString::Format(_("Warning %d unconnected image groups found:"), comps.size()) + Components2Str(comps) + wxT("\n") - + _("Please create control points between unconnected images using the Control Points tab in the panorama editor.\n\nAfter adding the points, press the \"Align\" button again"),_("Error"), wxOK , mainWin); - return; + if (pano.getNrOfImages() == 1) + { + wxMessageBox(_("The assistant could not find vertical lines. Please add vertical lines in the panorama editor and optimize project manually."), + _("Warning"), wxOK | wxICON_INFORMATION, mainWin); + } + else + { + //check for unconnected images + HuginGraph::ImageGraph graph(pano); + const HuginGraph::ImageGraph::Components comps = graph.GetComponents(); + if (comps.size() > 1) + { + // switch to images panel. + unsigned i1 = *(comps[0].rbegin()); + unsigned i2 = *(comps[1].begin()); + ShowCtrlPointEditor(i1, i2); + // display message box with + wxMessageBox(wxString::Format(_("Warning %d unconnected image groups found:"), static_cast(comps.size())) + Components2Str(comps) + wxT("\n") + + _("Please create control points between unconnected images using the Control Points tab in the panorama editor.\n\nAfter adding the points, press the \"Align\" button again"), _("Error"), wxOK, mainWin); + return; + }; + wxMessageBox(_("The assistant did not complete successfully. Please check the resulting project file."), + _("Warning"), wxOK | wxICON_INFORMATION, mainWin); }; - wxMessageBox(_("The assistant did not complete successfully. Please check the resulting project file."), - _("Warning"),wxOK | wxICON_INFORMATION, mainWin); }; }; diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/MainFrame.h hugin-2017.0.0+dfsg/src/hugin1/hugin/MainFrame.h --- hugin-2016.2.0+dfsg/src/hugin1/hugin/MainFrame.h 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/MainFrame.h 2017-04-22 17:02:46.000000000 +0000 @@ -32,9 +32,13 @@ #include "panodata/Panorama.h" #include "wx/docview.h" -#ifdef __WXMSW__ -#include "wx/msw/helpchm.h" +#include "wx/help.h" +#if !wxUSE_HELP +#error wxWidgets needs to be compiled with help support (wxUSE_HELP not set) +#endif +#if defined __WXMSW__ && !(wxCHECK_VERSION(3,1,1)) #include "base_wx/wxPlatform.h" +#define wxHelpController HuginCHMHelpController #endif #include @@ -126,7 +130,13 @@ #ifdef __WXMAC__ void MacOnOpenFile(const wxString & filename); #endif - bool CloseProject(bool cancelable); + enum CloseReason + { + CLOSE_PROGRAM, + LOAD_NEW_PROJECT, + NEW_PROJECT + }; + bool CloseProject(bool cancelable, CloseReason reason); // TODO: create a nice generic optimisation & stitching function // instead of these gateway functions to the optimizer and pano panels. @@ -135,6 +145,7 @@ void OnPhotometricOptimize(wxCommandEvent & e); void OnDoStitch(wxCommandEvent & e); void OnUserDefinedStitch(wxCommandEvent & e); + void OnUserDefinedStitchSaved(wxCommandEvent & e); void OnTogglePreviewFrame(wxCommandEvent & e); void OnToggleGLPreviewFrame(wxCommandEvent & e); void OnAddImages(wxCommandEvent & e); @@ -168,13 +179,7 @@ struct celeste::svm_model* GetSVMModel(); GLPreviewFrame * getGLPreview(); -#ifdef __WXMSW__ -#if wxCHECK_VERSION(3,1,1) - wxCHMHelpController& GetHelpController() { return m_msHtmlHelp; } -#else - HuginCHMHelpController& GetHelpController() { return m_msHtmlHelp; } -#endif -#endif + wxHelpController& GetHelpController() { return m_HelpController; } void SetGuiLevel(GuiLevel newLevel); const GuiLevel GetGuiLevel() const { return m_guiLevel; }; @@ -236,6 +241,8 @@ void OnShowDonate(wxCommandEvent &e); void OnShowPanel(wxCommandEvent &e); + /** event handler called when loading of image file failed */ + void OnLoadingFailed(wxCommandEvent& e); wxFileHistory m_mruFiles; wxNotebook * m_notebook; @@ -275,21 +282,24 @@ wxMenu* m_menu_file_advanced; // sticky setting, to prevent reading to often bool m_optOnlyActiveImages; - -#ifdef __WXMSW__ -#if wxCHECK_VERSION(3,1,1) - wxCHMHelpController m_msHtmlHelp; -#else - HuginCHMHelpController m_msHtmlHelp; -#endif -#endif + // help controller + wxHelpController m_HelpController; #ifdef HUGIN_HSI // list associating the wxID in the menu with a python script std::map m_plugins; #endif + // list for user-defined output sequences + std::map m_userOutput; DECLARE_EVENT_TABLE() }; +// event used to signal invalid or missing image files +#if defined _WIN32 && defined Hugin_shared +DECLARE_LOCAL_EVENT_TYPE(EVT_LOADING_FAILED, -1) +#else +DECLARE_EVENT_TYPE(EVT_LOADING_FAILED, -1) +#endif + #endif // _MAINFRAME_H diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/MaskEditorPanel.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/MaskEditorPanel.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/MaskEditorPanel.cpp 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/MaskEditorPanel.cpp 2017-06-15 16:52:43.000000000 +0000 @@ -285,7 +285,7 @@ m_editImg->setImage(m_File,m_currentMasks,masksToDraw,GetRot(imgNr)); else m_editImg->setNewMasks(m_currentMasks,masksToDraw); - if(m_currentMasks.size()==0) + if (m_currentMasks.empty() || m_MaskNr >= m_currentMasks.size()) setMask(UINT_MAX); // enables or disables controls bool enableCtrl=(imgNr= nrImages)) - setImage(nrImages-1); + if ((GetImgNr() < UINT_MAX) && (GetImgNr() >= nrImages)) + { + for (auto i : m_selectedImages) + { + if (i >= nrImages) + { + m_selectedImages.erase(i); + }; + }; + setImage(nrImages - 1); + } else // update changed images if(set_contains(changed,GetImgNr())) diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/MaskImageCtrl.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/MaskImageCtrl.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/MaskImageCtrl.cpp 2016-03-27 13:21:08.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/MaskImageCtrl.cpp 2017-04-29 16:05:50.000000000 +0000 @@ -45,13 +45,6 @@ /** maximal distance for selection of one point */ const int maxSelectionDistance=20; -#if !wxCHECK_VERSION(3,0,0) -#define wxPENSTYLE_SOLID wxSOLID -#define wxPENSTYLE_DOT wxDOT -#define wxBRUSHSTYLE_TRANSPARENT wxTRANSPARENT -#define wxBRUSHSTYLE_SOLID wxSOLID -#endif - // our image control BEGIN_EVENT_TABLE(MaskImageCtrl, wxScrolledWindow) @@ -118,11 +111,35 @@ void MaskImageCtrl::setImage(const std::string & file, HuginBase::MaskPolygonVector newMask, HuginBase::MaskPolygonVector masksToDraw, ImageRotation rot) { DEBUG_TRACE("setting Image " << file); - m_imageFilename = file; - wxString fn(m_imageFilename.c_str(),HUGIN_CONV_FILENAME); - if (wxFileName::FileExists(fn)) + if(!file.empty()) { - m_img = ImageCache::getInstance().getImage(m_imageFilename); + try + { + m_img = ImageCache::getInstance().getImage(file); + } + catch (...) + { + // loading of image failed, set all to empty values + m_imageFilename = ""; + m_maskEditState = NO_IMAGE; + m_bitmap = wxBitmap(); + // delete the image (release shared_ptr) + // create an empty image. + m_img = ImageCache::EntryPtr(new ImageCache::Entry); + HuginBase::MaskPolygonVector mask; + m_imageMask = mask; + m_masksToDraw = mask; + m_imgRotation = ROT0; + setActiveMask(UINT_MAX, false); + SetVirtualSize(100, 100); + Refresh(true); + // now notify main frame to remove the image from project + wxCommandEvent e(EVT_LOADING_FAILED); + e.SetString(wxString(file.c_str(), HUGIN_CONV_FILENAME)); + MainFrame::Get()->GetEventHandler()->AddPendingEvent(e); + return; + } + m_imageFilename = file; if(m_maskMode) { m_maskEditState = NO_MASK; @@ -1135,7 +1152,7 @@ void MaskImageCtrl::OnDraw(wxDC & dc) { - if(m_maskEditState!=NO_IMAGE) + if(m_maskEditState!=NO_IMAGE && m_bitmap.IsOk()) { int offset=scale(HuginBase::maskOffset); //draw border around image to allow drawing mask over boudaries of image @@ -1348,27 +1365,7 @@ m_bitmap=wxBitmap(img); //create disabled m_bitmap for drawing active masks -#if wxCHECK_VERSION(2,9,0) img = img.ConvertToDisabled(192); -#else - { - int width = img.GetWidth(); - int height = img.GetHeight(); - for (int y = height-1; y >= 0; --y) - { - for (int x = width-1; x >= 0; --x) - { - unsigned char* data = img.GetData() + (y*(width*3))+(x*3); - unsigned char* r = data; - unsigned char* g = data+1; - unsigned char* b = data+2; - *r=(unsigned char)wxMin(0.6*(*r)+77,255); - *b=(unsigned char)wxMin(0.6*(*b)+77,255); - *g=(unsigned char)wxMin(0.6*(*g)+77,255); - } - } - } -#endif m_disabledBitmap=wxBitmap(img); if (m_imgRotation == ROT90 || m_imgRotation == ROT270) { @@ -1378,7 +1375,7 @@ { SetVirtualSize(m_imageSize.GetWidth(), m_imageSize.GetHeight()); }; - SetScrollRate(1,1); + SetScrollRate(std::max(1, m_bitmap.GetWidth() / 75), std::max(1, m_bitmap.GetHeight() / 75)); Refresh(true); }; diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/MeshManager.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/MeshManager.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/MeshManager.cpp 2016-01-27 16:36:04.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/MeshManager.cpp 2017-04-22 17:02:46.000000000 +0000 @@ -114,6 +114,11 @@ meshes.clear(); } +bool MeshManager::GetLayoutMode() const +{ + return layout_mode_on; +} + void MeshManager::SetLayoutScale(double scale) { for(unsigned int i=0;i +#include "hugin_config.h" #include "panoinc_WX.h" #include "panoinc.h" @@ -94,17 +94,6 @@ XRCCTRL(*this, "optimizer_panel_splitter", wxSplitterWindow)->SetSashGravity(0.66); - wxString text(_("Any variables below which are bold and underlined will be optimized.")); - text.Append(wxT(" ")); -#if defined __WXMAC__ || defined __WXOSX_COCOA__ - text.Append(_("Use command + left mouse click to toggle state of variables.")); -#else - text.Append(_("Use control + left mouse click to toggle state of variables.")); -#endif - text.Append(wxT(" ")); - text.Append(_("Variables which shown in normal font will act as references or anchors.")); - XRCCTRL(*this, "optimizer_panel_information_text", wxStaticText)->SetLabel(text); - return true; } diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/OptimizePhotometricPanel.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/OptimizePhotometricPanel.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/OptimizePhotometricPanel.cpp 2016-01-27 17:35:40.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/OptimizePhotometricPanel.cpp 2017-05-27 14:35:28.000000000 +0000 @@ -24,7 +24,7 @@ * */ -#include +#include "hugin_config.h" #include "panoinc_WX.h" #include "panoinc.h" @@ -78,7 +78,7 @@ m_only_active_images_cb = XRCCTRL(*this, "optimize_photo_panel_only_active_images", wxCheckBox); DEBUG_ASSERT(m_only_active_images_cb); - m_only_active_images_cb->SetValue(wxConfigBase::Get()->Read(wxT("/OptimizeOptimizePhotometricPanelPanel/OnlyActiveImages"),1l) != 0); + m_only_active_images_cb->SetValue(wxConfigBase::Get()->Read(wxT("/OptimizePhotometricPanel/OnlyActiveImages"),1l) != 0); m_images_tree = XRCCTRL(*this, "optimize_photo_panel_images", ImagesTreeCtrl); DEBUG_ASSERT(m_images_tree); @@ -87,17 +87,6 @@ XRCCTRL(*this, "optimize_photo_panel_splitter", wxSplitterWindow)->SetSashGravity(0.66); - wxString text(_("Any variables below which are bold and underlined will be optimized.")); - text.Append(wxT(" ")); -#if defined __WXMAC__ || defined __WXOSX_COCOA__ - text.Append(_("Use command + left mouse click to toggle state of variables.")); -#else - text.Append(_("Use control + left mouse click to toggle state of variables.")); -#endif - text.Append(wxT(" ")); - text.Append(_("Variables which shown in normal font will act as references or anchors.")); - XRCCTRL(*this, "optimize_photo_panel_information_text", wxStaticText)->SetLabel(text); - return true; } @@ -264,6 +253,8 @@ nPoints = nPoints * optPano.getNrOfImages(); // get the small images std::vector srcImgs; + HuginBase::LimitIntensityVector limits; + float imageStepSize = 1 / 255.0f; for (size_t i=0; i < optPano.getNrOfImages(); i++) { ImageCache::EntryPtr e = ImageCache::getInstance().getSmallImage(optPano.getImage(i).getFilename()); @@ -272,34 +263,55 @@ wxMessageBox(_("Error: could not load all images"), _("Error")); return; } + HuginBase::LimitIntensity limit; vigra::FRGBImage * img = new vigra::FRGBImage; - if (e->image8 && e->image8->width() > 0) + if (e->imageFloat && e->imageFloat->size().area() > 0) { - vigra_ext::reduceToNextLevel(*(e->image8), *img); - vigra::omp::transformImage(vigra::srcImageRange(*img), vigra::destImage(*img), - vigra::functor::Arg1()/vigra::functor::Param(255.0)); + if (e->mask->size().area() > 0) + { + vigra::BImage maskSmall; + vigra_ext::reduceToNextLevel(*(e->imageFloat), *(e->mask), *img, maskSmall); + vigra_ext::FindComponentsMinMax minmax; + vigra::inspectImageIf(srcImageRange(*img), srcImage(maskSmall), minmax); + imageStepSize = std::min(imageStepSize, (minmax.max - minmax.min) / 16384.0f); + } + else + { + vigra_ext::reduceToNextLevel(*(e->imageFloat), *img); + vigra_ext::FindComponentsMinMax minmax; + vigra::inspectImage(srcImageRange(*img), minmax); + imageStepSize = std::min(imageStepSize, (minmax.max - minmax.min) / 16384.0f); + }; + limit = HuginBase::LimitIntensity(HuginBase::LimitIntensity::LIMIT_FLOAT); } else { - if (e->image16 && e->image16->width() > 0) + if (e->image16 && e->image16->size().area() > 0) { vigra_ext::reduceToNextLevel(*(e->image16), *img); vigra::omp::transformImage(vigra::srcImageRange(*img), vigra::destImage(*img), - vigra::functor::Arg1()/vigra::functor::Param(65535.0)); + vigra::functor::Arg1() / vigra::functor::Param(65535.0)); + limit = HuginBase::LimitIntensity(HuginBase::LimitIntensity::LIMIT_UINT16); + imageStepSize = std::min(imageStepSize, 1 / 65536.0f); } else { - vigra_ext::reduceToNextLevel(*(e->imageFloat), *img); - } + vigra_ext::reduceToNextLevel(*(e->get8BitImage()), *img); + vigra::omp::transformImage(vigra::srcImageRange(*img), vigra::destImage(*img), + vigra::functor::Arg1() / vigra::functor::Param(255.0)); + limit = HuginBase::LimitIntensity(HuginBase::LimitIntensity::LIMIT_UINT8); + imageStepSize = std::min(imageStepSize, 1 / 255.0f); + }; }; srcImgs.push_back(img); + limits.push_back(limit); if (!progress.updateDisplayValue()) { // check if user pressed cancel return; }; } - HuginBase::PointSampler::extractPoints(optPano, srcImgs, nPoints, true, &progress, points); + points= HuginBase::RandomPointSampler(optPano, &progress, srcImgs, limits, nPoints).execute().getResultPoints(); if (!progress.updateDisplayValue()) { @@ -344,12 +356,12 @@ //invalid combination return; }; - HuginBase::SmartPhotometricOptimizer::smartOptimizePhotometric(optPano, optMode, points, &progress, error); + HuginBase::SmartPhotometricOptimizer::smartOptimizePhotometric(optPano, optMode, points, imageStepSize, &progress, error); } else { // optimize selected parameters - HuginBase::PhotometricOptimizer::optimizePhotometric(optPano, optvars, points, &progress, error); + HuginBase::PhotometricOptimizer::optimizePhotometric(optPano, optvars, points, imageStepSize, &progress, error); } if (progress.wasCancelled()) { diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/PanoOperation.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/PanoOperation.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/PanoOperation.cpp 2016-03-19 07:57:36.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/PanoOperation.cpp 2017-05-23 17:28:22.000000000 +0000 @@ -505,19 +505,14 @@ PanoCommand::PanoCommand* LoadLensOperation::GetInternalCommand(wxWindow* parent, HuginBase::Panorama& pano, HuginBase::UIntSet images) { HuginBase::StandardImageVariableGroups variable_groups(pano); - if(images.size()==1) + HuginBase::UIntSet lensImages = variable_groups.getLenses().getPartsSet()[variable_groups.getLenses().getPartNumber(*images.begin())]; + if (!m_fromDatabase && images.size() == 1 && lensImages.size() > 1) { + // database is always linking the parameters, so no need to ask user if(wxMessageBox(_("You selected only one image.\nShould the loaded parameters be applied to all images with the same lens?"),_("Question"), wxICON_QUESTION | wxYES_NO)==wxYES) { - unsigned int lensNr = variable_groups.getLenses().getPartNumber(*images.begin()); // get all images with the current lens. - for (size_t i = 0; i < pano.getNrOfImages(); i++) - { - if (variable_groups.getLenses().getPartNumber(i) == lensNr) - { - images.insert(i); - }; - }; + std::copy(lensImages.begin(), lensImages.end(), std::inserter(images, images.end())); }; }; vigra::Size2D sizeImg0=pano.getImage(*(images.begin())).getSize(); @@ -811,9 +806,10 @@ m_resetExposure=0; if(m_resetMode==RESET_PHOTOMETRICS) { - m_resetExposure=1; + m_resetExposure=3; }; m_resetVignetting=(m_resetMode==RESET_PHOTOMETRICS); + m_resetColor = 0; if(m_resetMode==RESET_PHOTOMETRICS) { m_resetColor=1; @@ -935,7 +931,7 @@ }; if(m_resetExposure>0) { - if(m_resetExposure==1) + if(m_resetExposure==1 || m_resetExposure==3) { if (pano.getImage(imgNr).ExposureValueisLinked()) { @@ -945,7 +941,7 @@ } //reset to exif value double eV=srcImg.calcExifExposureValue(); - if(eV!=0) + if ((m_resetExposure == 1 && eV != 0) || m_resetExposure == 3) { map_get(ImgVars,"Eev").setValue(eV); } @@ -1089,6 +1085,7 @@ reset_dlg.LimitToPhotometric(); checkGeometric=false; checkPhotometric=true; + break; case RESET_DIALOG: default: checkGeometric=true; diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/PanoOutputDialog.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/PanoOutputDialog.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/PanoOutputDialog.cpp 2015-11-08 08:46:30.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/PanoOutputDialog.cpp 2017-04-22 17:02:47.000000000 +0000 @@ -152,11 +152,11 @@ // check, if hdr images wxFileName file1(wxString(m_pano.getImage(0).getFilename().c_str(), HUGIN_CONV_FILENAME)); wxString ext1=file1.GetExt().Lower(); - if(ext1==wxT(".hdr") || ext1==wxT(".exr")) + if(ext1 == wxT(".hdr") || ext1 == wxT(".exr") || ext1==wxT("hdr") || ext1==wxT("exr")) { - XRCCTRL(*this, "output_hdr", wxCheckBox)->SetValue(true); - XRCCTRL(*this, "output_hdr", wxCheckBox)->Enable(true); - XRCCTRL(*this, "output_hdr_bitmap", wxStaticBitmap)->Enable(true); + XRCCTRL(*this, "output_normal", wxCheckBox)->SetValue(true); + XRCCTRL(*this, "output_normal", wxCheckBox)->Enable(true); + XRCCTRL(*this, "output_normal_bitmap", wxStaticBitmap)->Enable(true); return; } //hide hdr controls for simple interface diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/PanoPanel.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/PanoPanel.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/PanoPanel.cpp 2016-05-28 07:53:10.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/PanoPanel.cpp 2017-05-06 12:09:50.000000000 +0000 @@ -25,7 +25,7 @@ * */ -#include +#include "hugin_config.h" #include #include "panoinc_WX.h" @@ -366,9 +366,9 @@ std::string val; val = hugin_utils::doubleToString(opt.getHFOV(),1); - m_HFOVText->SetValue(wxString(val.c_str(), wxConvLocal)); + m_HFOVText->ChangeValue(wxString(val.c_str(), wxConvLocal)); val = hugin_utils::doubleToString(opt.getVFOV(), 1); - m_VFOVText->SetValue(wxString(val.c_str(), wxConvLocal)); + m_VFOVText->ChangeValue(wxString(val.c_str(), wxConvLocal)); // disable VFOV edit field, due to bugs in setHeight(), setWidth() bool hasImages = pano->getActiveImages().size() > 0; @@ -377,13 +377,65 @@ m_CalcHFOVButton->Enable(m_keepViewOnResize && hasImages); m_CalcOptROIButton->Enable(hasImages); - m_WidthTxt->SetValue(wxString::Format(wxT("%d"), opt.getWidth())); - m_HeightTxt->SetValue(wxString::Format(wxT("%d"), opt.getHeight())); + m_WidthTxt->ChangeValue(wxString::Format(wxT("%d"), opt.getWidth())); + m_HeightTxt->ChangeValue(wxString::Format(wxT("%d"), opt.getHeight())); - m_ROILeftTxt->SetValue(wxString::Format(wxT("%d"), opt.getROI().left() )); - m_ROIRightTxt->SetValue(wxString::Format(wxT("%d"), opt.getROI().right() )); - m_ROITopTxt->SetValue(wxString::Format(wxT("%d"), opt.getROI().top() )); - m_ROIBottomTxt->SetValue(wxString::Format(wxT("%d"), opt.getROI().bottom() )); + m_ROILeftTxt->ChangeValue(wxString::Format(wxT("%d"), opt.getROI().left() )); + m_ROIRightTxt->ChangeValue(wxString::Format(wxT("%d"), opt.getROI().right() )); + m_ROITopTxt->ChangeValue(wxString::Format(wxT("%d"), opt.getROI().top() )); + m_ROIBottomTxt->ChangeValue(wxString::Format(wxT("%d"), opt.getROI().bottom() )); + { + // format text for display of canvas dimension + wxString label = wxString::Format(wxT("%d x %d"), opt.getROI().width(), opt.getROI().height()); + if (opt.getROI().area() >= 20000000) + { + label.Append(wxString::Format(wxT("=%.0f MP"), opt.getROI().area() / 1000000.0)); + } + else + { + label.Append(wxString::Format(wxT("=%.1f MP"), opt.getROI().area() / 1000000.0)); + }; + if (opt.getROI().area() > 0) + { + float ratio = 1.0f*opt.getROI().width() / opt.getROI().height(); + if (ratio > 1.0f) + { + bool handled = false; + for (unsigned int i = 1; i < 10; ++i) + { + if (fabs(i*ratio - hugin_utils::roundi(i*ratio)) < 1e-2) + { + label.Append(wxString::Format(wxT(", %d:%d"), hugin_utils::roundi(i*ratio), i)); + handled = true; + break; + } + }; + if (!handled) + { + label.Append(wxString::Format(wxT(", %.2f:1"), ratio)); + }; + } + else + { + ratio = 1.0f / ratio; + bool handled = false; + for (unsigned int i = 1; i < 10; ++i) + { + if (fabs(i*ratio - hugin_utils::roundi(i*ratio)) < 1e-2) + { + label.Append(wxString::Format(wxT(", %d:%d"), i, hugin_utils::roundi(i*ratio))); + handled = true; + break; + } + }; + if (!handled) + { + label.Append(wxString::Format(wxT(", 1:%.2f"), ratio)); + }; + }; + }; + XRCCTRL(*this, "pano_size_label", wxStaticText)->SetLabel(label); + }; // output types XRCCTRL(*this, "pano_cb_ldr_output_blended", wxCheckBox)->SetValue(opt.outputLDRBlended); @@ -525,7 +577,7 @@ m_FileFormatOptionsLabel->SetLabel(_("Quality:")); m_FileFormatJPEGQualityText->Show(); m_FileFormatTIFFCompChoice->Hide(); - m_FileFormatJPEGQualityText->SetValue(wxString::Format(wxT("%d"), opt.quality)); + m_FileFormatJPEGQualityText->ChangeValue(wxString::Format(wxT("%d"), opt.quality)); } else if (opt.outputImageType == "png") { m_FileFormatOptionsLabel->Hide(); m_FileFormatJPEGQualityText->Hide(); @@ -835,7 +887,8 @@ wxDialog dlg; wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("enblend_options_dialog")); wxTextCtrl * enblend_opts_text = XRCCTRL(dlg, "blender_arguments_text", wxTextCtrl); - enblend_opts_text->SetValue(wxString(opt.enblendOptions.c_str(), wxConvLocal)); + enblend_opts_text->ChangeValue(wxString(opt.enblendOptions.c_str(), wxConvLocal)); + dlg.Bind(wxEVT_COMMAND_BUTTON_CLICKED, [](wxCommandEvent &) {MainFrame::Get()->DisplayHelp(wxT("Enblend.html")); }, wxID_HELP); dlg.CentreOnParent(); if (dlg.ShowModal() == wxID_OK) { @@ -900,7 +953,8 @@ wxDialog dlg; 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)); + enfuse_opts_text->ChangeValue(wxString(opt.enfuseOptions.c_str(), wxConvLocal)); + dlg.Bind(wxEVT_COMMAND_BUTTON_CLICKED, [](wxCommandEvent &) {MainFrame::Get()->DisplayHelp(wxT("Enfuse.html")); }, wxID_HELP); dlg.CentreOnParent(); if (dlg.ShowModal() == wxID_OK) { @@ -972,11 +1026,7 @@ HuginBase::PanoramaOptions opt = pano->getOptions(); double sizeFactor = 1.0; -#if wxCHECK_VERSION(2,9,4) if (wxGetKeyState(WXK_COMMAND)) -#else - if (wxGetKeyState(WXK_CONTROL)) -#endif { wxConfigBase::Get()->Read(wxT("/Assistant/panoDownsizeFactor"), &sizeFactor, HUGIN_ASS_PANO_DOWNSIZE_FACTOR); }; @@ -1275,7 +1325,7 @@ } }; -void PanoPanel::DoUserDefinedStitch() +void PanoPanel::DoUserDefinedStitch(const wxString& settings) { if (pano->getNrOfImages() == 0) { @@ -1292,19 +1342,35 @@ // output ROI contains no images return; }; - // create a copy, if we need to update the crop setting - wxConfigBase* config = wxConfigBase::Get(); - wxString path = config->Read(wxT("/userDefinedOutputPath"), MainFrame::Get()->GetDataPath()); - wxFileDialog userOutputDlg(this, _("Select user defined output"), - path, wxT(""), _("User defined output|*.executor"), - wxFD_OPEN | wxFD_MULTIPLE | wxFD_FILE_MUST_EXIST, wxDefaultPosition); - if (userOutputDlg.ShowModal() != wxID_OK) + wxFileName userOutputSequence; + if (settings.IsEmpty()) { - return; + // no filename given, ask user + wxConfigBase* config = wxConfigBase::Get(); + wxString path = config->Read(wxT("/userDefinedOutputPath"), MainFrame::Get()->GetDataPath()); + wxFileDialog userOutputDlg(this, _("Select user defined output"), + path, wxT(""), _("User defined output|*.executor"), + wxFD_OPEN | wxFD_MULTIPLE | wxFD_FILE_MUST_EXIST, wxDefaultPosition); + if (userOutputDlg.ShowModal() != wxID_OK) + { + return; + }; + // remember path for later + config->Write(wxT("/userDefinedOutputPath"), userOutputDlg.GetDirectory()); + userOutputSequence = userOutputDlg.GetPath(); + } + else + { + //filename given, check existance + userOutputSequence = settings; + if (!userOutputSequence.Exists()) + { + wxMessageBox(wxString::Format(wxT("User defined output %s not found.\nStopping processing."), userOutputSequence.GetFullPath()), _("Warning"), wxOK | wxICON_INFORMATION); + return; + }; }; - // remember path for later - config->Write(wxT("/userDefinedOutputPath"), userOutputDlg.GetDirectory()); + // create a copy, if we need to update the crop setting // save project // copy pto file to temporary file wxString tempDir = wxConfigBase::Get()->Read(wxT("tempDir"), wxT("")); @@ -1398,7 +1464,7 @@ return; }; - wxString switches(wxT(" --user-defined-output=") + hugin_utils::wxQuoteFilename(userOutputDlg.GetPath()) + wxT(" --delete -o ")); + wxString switches(wxT(" --user-defined-output=") + hugin_utils::wxQuoteFilename(userOutputSequence.GetFullPath()) + wxT(" --delete -o ")); if (wxConfigBase::Get()->Read(wxT("/Processor/overwrite"), HUGIN_PROCESSOR_OVERWRITE) == 1) switches = wxT(" --overwrite") + switches; wxString command = hugin_stitch_project + switches + hugin_utils::wxQuoteFilename(dlg.GetPath()) + wxT(" ") + hugin_utils::wxQuoteFilename(currentPTOfn); @@ -1422,11 +1488,7 @@ void PanoPanel::OnDoStitch ( wxCommandEvent & e ) { long t; -#if wxCHECK_VERSION(2,9,4) if(wxGetKeyState(WXK_COMMAND)) -#else - if(wxGetKeyState(WXK_CONTROL)) -#endif { t=1; } @@ -1636,7 +1698,6 @@ { // Tell the user the stitch will be really big, and give them a // chance to reduce the size. -#if wxCHECK_VERSION(2,9,0) wxMessageDialog dialog(this, _("Are you sure you want to stitch such a large panorama?"), #ifdef _WIN32 @@ -1647,31 +1708,6 @@ wxICON_EXCLAMATION | wxYES_NO); dialog.SetExtendedMessage(message); dialog.SetYesNoLabels(_("Stitch anyway"), _("Let me fix that")); -#else // replacement for old wxWidgets versions. - // wxMessageDialog derives from wxDialog, but I don't understand - // why because on most platforms wxMessageDialog uses the native - // message box, and trying to make descriptive buttons through - // wxDialog::CreateStdButtonSizer causes a crash on wxGTK. - // Descriptive buttons are recommended by the Windows, Gnome, KDE, - // and Apple user interface guidelines. - // Due to this wxWidgets WTF, the buttons will are labeled Yes and - // No on wxWidgets 2.8 and earlier. This makes it a little - // confusing, and it is more likely someone will just click yes - // without reading the message and then wonder why their computer - // has ground to a halt. - /** @todo (Possibly) make a dialog manually with properly labelled - * buttons. - */ - message.Prepend(wxT("\n\n")); - message=_("Are you sure you want to stitch such a large panorama?")+message; - wxMessageDialog dialog(this, message, -#ifdef _WIN32 - _("Hugin"), -#else - wxT(""), -#endif - wxICON_EXCLAMATION | wxYES_NO); -#endif switch (dialog.ShowModal()) { case wxID_OK: @@ -1718,7 +1754,6 @@ // 4 channels, 16 bit per channel, assuming the we need the 10 fold space for all temporary space if (pano->getOptions().getROI().area() * 80 > freeSpace) { -#if wxCHECK_VERSION(2,9,0) wxMessageDialog dialog(this, wxString::Format(_("The folder \"%s\" has only %.1f MiB free. This is not enough for stitching the current panorama. Decrease the output size or select another output folder.\nAre you sure that you still want to stitch it?"), folder.c_str(), freeSpace / 1048576.0f), #ifdef _WIN32 @@ -1728,16 +1763,6 @@ #endif wxICON_EXCLAMATION | wxYES_NO); dialog.SetYesNoLabels(_("Stitch anyway"), _("Let me fix that")); -#else // replacement for old wxWidgets versions. - wxMessageDialog dialog(this, - wxString::Format(_("The folder \"%s\" has only %.1f MiB free. This is not enough for stitching the current panorama. Decrease the output size or select another output folder.\nAre you sure that you still want to stitch it?"), folder.c_str(), freeSpace / 1048576.0f), -#ifdef _WIN32 - _("Hugin"), -#else - wxT(""), -#endif - wxICON_EXCLAMATION | wxYES_NO); -#endif if (dialog.ShowModal() == wxID_NO) { // bring the user towards the approptiate controls. diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/PanoPanel.h hugin-2017.0.0+dfsg/src/hugin1/hugin/PanoPanel.h --- hugin-2016.2.0+dfsg/src/hugin1/hugin/PanoPanel.h 2015-10-23 22:12:35.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/PanoPanel.h 2017-04-22 17:02:48.000000000 +0000 @@ -71,17 +71,12 @@ virtual void panoramaChanged(HuginBase::Panorama &pano); virtual void panoramaImagesChanged(HuginBase::Panorama &pano, const HuginBase::UIntSet & imgNr) {}; - /** set the image */ -// TODO remove -// void previewSingleChanged(wxCommandEvent & e); - - /** stitching using hugin_stitch_project */ void DoStitch(); /** stitching with PTBatcherGUI */ void DoSendToBatch(); /** stitching with user defined file */ - void DoUserDefinedStitch(); + void DoUserDefinedStitch(const wxString& settings = wxString()); void SetGuiLevel(GuiLevel newGuiLevel); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/PreferencesDialog.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/PreferencesDialog.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/PreferencesDialog.cpp 2016-06-11 16:21:39.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/PreferencesDialog.cpp 2017-04-29 16:05:50.000000000 +0000 @@ -24,7 +24,7 @@ * */ -#include +#include "hugin_config.h" #include "panoinc_WX.h" #include "wx/listbook.h" #include @@ -64,10 +64,10 @@ EVT_BUTTON(XRCID("prefs_defaults"), PreferencesDialog::OnRestoreDefaults) EVT_BUTTON(XRCID("prefs_enblend_select"), PreferencesDialog::OnEnblendExe) EVT_BUTTON(XRCID("prefs_enblend_enfuse_select"), PreferencesDialog::OnEnfuseExe) - EVT_BUTTON(XRCID("pref_exiftool_argfile_choose"), PreferencesDialog::OnExifArgfile) + EVT_BUTTON(XRCID("pref_exiftool_argfile_choose"), PreferencesDialog::OnExifArgfileChoose) EVT_BUTTON(XRCID("pref_exiftool_argfile_edit"), PreferencesDialog::OnExifArgfileEdit) - EVT_BUTTON(XRCID("pref_exiftool_argfile2_choose"), PreferencesDialog::OnExifArgfile2) - EVT_BUTTON(XRCID("pref_exiftool_argfile2_edit"), PreferencesDialog::OnExifArgfileEdit2) + EVT_BUTTON(XRCID("pref_exiftool_argfile2_choose"), PreferencesDialog::OnExifArgfile2Choose) + EVT_BUTTON(XRCID("pref_exiftool_argfile2_edit"), PreferencesDialog::OnExifArgfile2Edit) EVT_CHECKBOX(XRCID("pref_exiftool_metadata"), PreferencesDialog::OnExifTool) EVT_CHECKBOX(XRCID("prefs_ft_RotationSearch"), PreferencesDialog::OnRotationCheckBox) EVT_CHECKBOX(XRCID("prefs_enblend_Custom"), PreferencesDialog::OnCustomEnblend) @@ -202,20 +202,16 @@ // default blender settings FillBlenderList(XRCCTRL(*this, "pref_default_blender", wxChoice)); -#if wxCHECK_VERSION(2,9,1) wxStaticText* preview=XRCCTRL(*this, "prefs_project_filename_preview", wxStaticText); preview->SetWindowStyle(preview->GetWindowStyle() | wxST_ELLIPSIZE_START); preview=XRCCTRL(*this, "prefs_output_filename_preview", wxStaticText); preview->SetWindowStyle(preview->GetWindowStyle() | wxST_ELLIPSIZE_START); -#endif -#if wxCHECK_VERSION(2,9,3) // enable auto-completion XRCCTRL(*this, "prefs_misc_tempdir", wxTextCtrl)->AutoCompleteDirectories(); XRCCTRL(*this, "pref_exiftool_argfile", wxTextCtrl)->AutoCompleteFileNames(); XRCCTRL(*this, "pref_exiftool_argfile2", wxTextCtrl)->AutoCompleteFileNames(); XRCCTRL(*this, "prefs_enblend_EnblendExe", wxTextCtrl)->AutoCompleteFileNames(); XRCCTRL(*this, "prefs_enblend_EnfuseExe", wxTextCtrl)->AutoCompleteFileNames(); -#endif // load autopano settings wxConfigBase* cfg = wxConfigBase::Get(); m_CPDetectorList = XRCCTRL(*this, "pref_cpdetector_list", wxListBox); @@ -229,13 +225,11 @@ this->SetBackgroundColour(XRCCTRL(*this, "prefs_tab", wxNotebook)->GetBackgroundColour()); #endif -#if wxCHECK_VERSION(2,9,1) wxCheckBox* show_hints=XRCCTRL(*this,"pref_show_projection_hints",wxCheckBox); show_hints->Enable(true); show_hints->Show(true); show_hints->Update(); Update(); -#endif GetSizer()->SetSizeHints(this); // GetSizer()->Layout(); @@ -287,7 +281,7 @@ void PreferencesDialog::OnHelp(wxCommandEvent& e) { - MainFrame::Get()->DisplayHelp(wxT("/Hugin_Preferences.html")); + MainFrame::Get()->DisplayHelp(wxT("Hugin_Preferences.html")); }; void PreferencesDialog::OnRotationCheckBox(wxCommandEvent& e) @@ -341,7 +335,7 @@ XRCCTRL(*this, "prefs_enblend_enfuse_select", wxButton)->Enable(e.IsChecked()); } -void PreferencesDialog::OnExifArgfile(wxCommandEvent & e) +void PreferencesDialog::OnExifArgfileChoose(wxCommandEvent & e) { wxFileDialog dlg(this,_("Select ExifTool argfile"), wxT(""), XRCCTRL(*this, "pref_exiftool_argfile", wxTextCtrl)->GetValue(), @@ -354,15 +348,18 @@ } } -void CreateNewArgFile(const wxString& newFilename) +void CreateNewArgFile(const wxString& newFilename, const wxString& sourceFile) { - wxTextFile defaultFile(MainFrame::Get()->GetDataPath()+wxT("hugin_exiftool_copy.arg")); + wxTextFile defaultFile(sourceFile); defaultFile.Open(); wxTextFile newFile(newFilename); newFile.Create(); - for(size_t i=0; iGetValue(); if(!filename.empty()) { - if(!wxFileName::FileExists(filename)) + wxFileName file(filename); + file.Normalize(); + if(!file.Exists()) { if( wxMessageBox(wxString::Format(_("File %s does not exist.\nShould the argfile be created with default tags?"),filename.c_str()), _("Exiftool argfile"), wxYES_NO | wxICON_EXCLAMATION,this)!=wxYES) { return; }; - CreateNewArgFile(filename); + filename = file.GetFullPath(); + CreateNewArgFile(filename, MainFrame::Get()->GetDataPath() + wxT("hugin_exiftool_copy.arg")); + } + else + { + filename = file.GetFullPath(); }; } else @@ -400,7 +404,7 @@ return; }; filename=dlg.GetPath(); - CreateNewArgFile(filename); + CreateNewArgFile(filename, MainFrame::Get()->GetDataPath() + wxT("hugin_exiftool_copy.arg")); }; XRCCTRL(*this, "pref_exiftool_argfile", wxTextCtrl)->SetValue(filename); wxDialog * edit_dlg = wxXmlResource::Get()->LoadDialog(this, wxT("pref_edit_argfile")); @@ -418,7 +422,7 @@ }; }; -void PreferencesDialog::OnExifArgfile2(wxCommandEvent & e) +void PreferencesDialog::OnExifArgfile2Choose(wxCommandEvent & e) { wxFileDialog dlg(this, _("Select ExifTool argfile"), wxT(""), XRCCTRL(*this, "pref_exiftool_argfile2", wxTextCtrl)->GetValue(), @@ -431,27 +435,31 @@ } } -void PreferencesDialog::OnExifArgfileEdit2(wxCommandEvent & e) +void PreferencesDialog::OnExifArgfile2Edit(wxCommandEvent & e) { wxString filename = XRCCTRL(*this, "pref_exiftool_argfile2", wxTextCtrl)->GetValue(); if (!filename.empty()) { - if (!wxFileName::FileExists(filename)) + wxFileName file(filename); + file.Normalize(); + if (!file.Exists()) { - if (wxMessageBox(wxString::Format(_("File %s does not exist.\nShould an empty argfile be created?"), filename.c_str()), + if (wxMessageBox(wxString::Format(_("File %s does not exist.\nShould an example argfile be created?"), filename.c_str()), _("Exiftool argfile"), wxYES_NO | wxICON_EXCLAMATION, this) != wxYES) { return; }; - wxTextFile newFile(filename); - newFile.Create(); - newFile.Write(); - newFile.Close(); + filename = file.GetFullPath(); + CreateNewArgFile(filename, MainFrame::Get()->GetDataPath() + wxT("hugin_exiftool_final_example.arg")); + } + else + { + filename = file.GetFullPath(); }; } else { - if (wxMessageBox(_("No file selected.\nShould an empty argfile be created?"), + if (wxMessageBox(_("No file selected.\nShould an example argfile be created?"), _("Exiftool argfile"), wxYES_NO | wxICON_EXCLAMATION, this) != wxYES) { return; @@ -465,10 +473,7 @@ return; }; filename = dlg.GetPath(); - wxTextFile newFile(filename); - newFile.Create(); - newFile.Write(); - newFile.Close(); + CreateNewArgFile(filename, MainFrame::Get()->GetDataPath() + wxT("hugin_exiftool_final_example.arg")); }; XRCCTRL(*this, "pref_exiftool_argfile2", wxTextCtrl)->SetValue(filename); wxDialog * edit_dlg = wxXmlResource::Get()->LoadDialog(this, wxT("pref_edit_argfile_placeholders")); @@ -489,6 +494,7 @@ void PreferencesDialog::OnExifTool(wxCommandEvent & e) { bool copyMetadata=XRCCTRL(*this, "pref_exiftool_metadata", wxCheckBox)->GetValue(); + XRCCTRL(*this, "pref_exiftool_argfile_general_label", wxStaticText)->Enable(copyMetadata); XRCCTRL(*this, "pref_exiftool_argfile_intermediate_label", wxStaticText)->Enable(copyMetadata); XRCCTRL(*this, "pref_exiftool_argfile_label", wxStaticText)->Enable(copyMetadata); XRCCTRL(*this, "pref_exiftool_argfile", wxTextCtrl)->Enable(copyMetadata); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/PreferencesDialog.h hugin-2017.0.0+dfsg/src/hugin1/hugin/PreferencesDialog.h --- hugin-2016.2.0+dfsg/src/hugin1/hugin/PreferencesDialog.h 2016-03-13 08:58:16.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/PreferencesDialog.h 2017-04-29 16:05:50.000000000 +0000 @@ -63,10 +63,10 @@ void OnEnblendExe(wxCommandEvent & e); void OnEnfuseExe(wxCommandEvent & e); void OnExifTool(wxCommandEvent & e); - void OnExifArgfile(wxCommandEvent & e); + void OnExifArgfileChoose(wxCommandEvent & e); void OnExifArgfileEdit(wxCommandEvent & e); - void OnExifArgfile2(wxCommandEvent & e); - void OnExifArgfileEdit2(wxCommandEvent & e); + void OnExifArgfile2Choose(wxCommandEvent & e); + void OnExifArgfile2Edit(wxCommandEvent & e); void OnRestoreDefaults(wxCommandEvent & e); void OnCustomEnblend(wxCommandEvent & e); void OnCustomEnfuse(wxCommandEvent & e); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/PreviewCropTool.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/PreviewCropTool.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/PreviewCropTool.cpp 2015-05-10 06:52:06.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/PreviewCropTool.cpp 2017-04-22 17:02:48.000000000 +0000 @@ -23,7 +23,7 @@ #include "panoinc_WX.h" #include "panoinc.h" #include "PreviewCropTool.h" -#include +#include "hugin_config.h" #include "base_wx/platform.h" #include "hugin/config_defaults.h" #include "base_wx/CommandHistory.h" diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/PreviewDifferenceTool.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/PreviewDifferenceTool.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/PreviewDifferenceTool.cpp 2015-09-15 15:59:23.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/PreviewDifferenceTool.cpp 2017-04-22 17:02:48.000000000 +0000 @@ -20,7 +20,7 @@ */ #include "PreviewDifferenceTool.h" -#include +#include "hugin_config.h" #include #include #ifdef __WXMAC__ diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/PreviewFrame.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/PreviewFrame.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/PreviewFrame.cpp 2016-03-19 08:50:26.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/PreviewFrame.cpp 2017-04-22 17:02:48.000000000 +0000 @@ -31,7 +31,7 @@ //#endif //wxMac now has toggle buttons. -#include +#include "hugin_config.h" #include "panoinc_WX.h" @@ -99,17 +99,7 @@ #else EVT_CHECKBOX(-1, PreviewFrame::OnChangeDisplayedImgs) #endif -#ifndef __WXMAC__ EVT_SCROLL_CHANGED(PreviewFrame::OnChangeFOV) -#else - #if wxCHECK_VERSION(2,9,0) - EVT_SCROLL_CHANGED(PreviewFrame::OnChangeFOV) - #else - EVT_SCROLL_THUMBRELEASE(PreviewFrame::OnChangeFOV) - EVT_SCROLL_ENDSCROLL(PreviewFrame::OnChangeFOV) - EVT_SCROLL_THUMBTRACK(PreviewFrame::OnChangeFOV) - #endif -#endif EVT_TOOL(ID_FULL_SCREEN, PreviewFrame::OnFullScreen) EVT_TOOL(ID_UNDO, PreviewFrame::OnUndo) EVT_TOOL(ID_REDO, PreviewFrame::OnRedo) @@ -174,11 +164,7 @@ _("VFOV")); m_VFOVSlider->SetLineSize(2); m_VFOVSlider->SetPageSize(10); -#if wxCHECK_VERSION(3,0,0) m_VFOVSlider->SetTickFreq(5); -#else - m_VFOVSlider->SetTickFreq(5,0); -#endif m_VFOVSlider->SetToolTip(_("drag to change the vertical field of view")); flexSizer->Add(m_VFOVSlider, 0, wxEXPAND); @@ -191,11 +177,7 @@ _("HFOV")); m_HFOVSlider->SetPageSize(10); m_HFOVSlider->SetLineSize(2); -#if wxCHECK_VERSION(3,0,0) m_HFOVSlider->SetTickFreq(5); -#else - m_HFOVSlider->SetTickFreq(5,0); -#endif m_HFOVSlider->SetToolTip(_("drag to change the horizontal field of view")); @@ -595,11 +577,7 @@ } if (dirty) { -#if wxCHECK_VERSION(3,0,0) m_ButtonSizer->FitInside(m_ButtonPanel); -#else - m_ButtonSizer->SetVirtualSizeHints(m_ButtonPanel); -#endif // Layout(); DEBUG_INFO("New m_ButtonPanel width: " << (m_ButtonPanel->GetSize()).GetWidth()); DEBUG_INFO("New m_ButtonPanel Height: " << (m_ButtonPanel->GetSize()).GetHeight()); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/PreviewIdentifyTool.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/PreviewIdentifyTool.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/PreviewIdentifyTool.cpp 2016-06-25 06:45:13.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/PreviewIdentifyTool.cpp 2017-04-22 17:02:48.000000000 +0000 @@ -23,7 +23,7 @@ #include "panoinc.h" #include "PreviewIdentifyTool.h" -#include +#include "hugin_config.h" #include "base_wx/platform.h" #include "GLPreviewFrame.h" @@ -70,13 +70,8 @@ wxMemoryDC dc(bitmap); dc.SetBackground(*wxBLACK_BRUSH); dc.Clear(); -#if wxCHECK_VERSION(3,0,0) wxFont font(wxSize(0, textureHeight), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD); dc.SetFont(font); -#else - wxFont* font=wxFont::New(wxSize(0, textureHeight), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxT("")); - dc.SetFont(*font); -#endif dc.SetTextForeground(*wxWHITE); dc.DrawText(wxT("0123456789"), 0, 0); textureWidth = 0; @@ -89,9 +84,6 @@ textureWidth += textSize.GetWidth(); glyphWidth[i] = textSize.GetWidth(); }; -#if !wxCHECK_VERSION(3,0,0) - delete font; -#endif dc.SelectObject(wxNullBitmap); return bitmap; } @@ -502,49 +494,44 @@ // this code works only for the preview window, not for the panosphere or mosaic plane if (m_showNumbers) { - HuginBase::PanoramaOptions* opts = helper->GetViewStatePtr()->GetOptions(); - HuginBase::SrcPanoImage* img = helper->GetViewStatePtr()->GetSrcImage(*it); - HuginBase::PTools::Transform transform; - transform.createInvTransform(*img, *opts); - hugin_utils::FDiff2D imageCenter(crop_region.upperLeft() + crop_region.size() / 2); - hugin_utils::FDiff2D imageCenterPano; - if (transform.transformImgCoord(imageCenterPano, imageCenter) && !wxGetKeyState(WXK_ALT)) - { - glBindTexture(GL_TEXTURE_2D, font_tex); - if (helper->GetViewStatePtr()->GetSupportMultiTexture()) + HuginBase::PanoramaOptions* opts = helper->GetViewStatePtr()->GetOptions(); + HuginBase::SrcPanoImage* img = helper->GetViewStatePtr()->GetSrcImage(*it); + HuginBase::PTools::Transform transform; + transform.createInvTransform(*img, *opts); + hugin_utils::FDiff2D imageCenter(crop_region.upperLeft() + crop_region.size() / 2); + hugin_utils::FDiff2D imageCenterPano; + if (transform.transformImgCoord(imageCenterPano, imageCenter) && !wxGetKeyState(WXK_ALT)) { - glActiveTexture(GL_TEXTURE1); - glDisable(GL_TEXTURE_2D); - glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, font_tex); + if (helper->GetViewStatePtr()->GetSupportMultiTexture()) + { + glActiveTexture(GL_TEXTURE1); + glDisable(GL_TEXTURE_2D); + glActiveTexture(GL_TEXTURE0); + }; + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + wxString number; + number << *it; + int textWidth = 0; + unsigned char* listIndex = new unsigned char[number.Length()]; + for (size_t i = 0; i < number.Length(); ++i) + { + textWidth += m_glyphWidth[number[i].GetValue() - 48]; + listIndex[i] = number[i].GetValue() - 48; + } + float scaleFactor = std::min(canvasWidth, canvasHeight) / static_cast(FONT_TEXTURE_HEIGHT) / 10; + imageCenterPano.x = std::min(std::max(imageCenterPano.x, textWidth*scaleFactor / 2.0), canvasWidth - textWidth * scaleFactor / 2.0); + imageCenterPano.y = std::min(std::max(imageCenterPano.y, FONT_TEXTURE_HEIGHT*scaleFactor / 2.0), canvasHeight - FONT_TEXTURE_HEIGHT * scaleFactor / 2.0); + glTranslatef(imageCenterPano.x, imageCenterPano.y, 0); + glScalef(scaleFactor, scaleFactor, 1.0); + glTranslatef(-textWidth / 2, -FONT_TEXTURE_HEIGHT / 2, 0); + glListBase(font_list); + glCallLists(number.Length(), GL_UNSIGNED_BYTE, listIndex); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); + delete[] listIndex; }; - glMatrixMode(GL_MODELVIEW); - glPushMatrix(); - wxString number; - number << *it; - int textWidth = 0; - unsigned char* listIndex = new unsigned char[number.Length()]; - for (size_t i = 0; i < number.Length(); ++i) - { -#if wxCHECK_VERSION(3,0,0) - textWidth += m_glyphWidth[number[i].GetValue() - 48]; - listIndex[i] = number[i].GetValue() - 48; -#else - textWidth += m_glyphWidth[number[i] - 48]; - listIndex[i] = number[i] - 48; -#endif - } - float scaleFactor = std::min(canvasWidth, canvasHeight) / static_cast(FONT_TEXTURE_HEIGHT) / 10; - imageCenterPano.x = std::min(std::max(imageCenterPano.x, textWidth*scaleFactor / 2.0), canvasWidth - textWidth * scaleFactor / 2.0); - imageCenterPano.y = std::min(std::max(imageCenterPano.y, FONT_TEXTURE_HEIGHT*scaleFactor / 2.0), canvasHeight - FONT_TEXTURE_HEIGHT * scaleFactor / 2.0); - glTranslatef(imageCenterPano.x, imageCenterPano.y, 0); - glScalef(scaleFactor, scaleFactor, 1.0); - glTranslatef(-textWidth / 2, -FONT_TEXTURE_HEIGHT / 2, 0); - glListBase(font_list); - glCallLists(number.Length(), GL_UNSIGNED_BYTE, listIndex); - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); - delete[] listIndex; - }; }; } // set stuff back how we found it. diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/PreviewLayoutLinesTool.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/PreviewLayoutLinesTool.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/PreviewLayoutLinesTool.cpp 2016-06-12 14:01:41.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/PreviewLayoutLinesTool.cpp 2017-04-22 17:02:48.000000000 +0000 @@ -23,7 +23,7 @@ #include "panoinc.h" #include "PreviewLayoutLinesTool.h" -#include +#include "hugin_config.h" #include "base_wx/platform.h" #include "MainFrame.h" diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/PreviewPanel.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/PreviewPanel.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/PreviewPanel.cpp 2016-03-19 08:51:27.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/PreviewPanel.cpp 2017-04-22 17:02:48.000000000 +0000 @@ -24,8 +24,7 @@ * */ -#include - +#include "hugin_config.h" #include "panoinc_WX.h" #include "panoinc.h" @@ -301,7 +300,7 @@ double min = std::max(minmax.min, 1e-6f); double max = minmax.max; - int mapping = wxConfigBase::Get()->Read(wxT("/ImageCache/MappingFloat"), HUGIN_IMGCACHE_MAPPING_FLOAT); + int mapping = wxConfigBase::Get()->Read(wxT("/ImageCache/Mapping"), HUGIN_IMGCACHE_MAPPING_FLOAT); vigra_ext::applyMapping(vigra::srcImageRange(panoImg), vigra::destImage(panoImg8), min, max, mapping); } else { @@ -401,7 +400,13 @@ } catch (std::exception & e) { m_state_rendering = false; DEBUG_ERROR("error during stitching: " << e.what()); - wxMessageBox(wxString(e.what(), wxConvLocal), _("Error during Stitching")); + wxMessageBox(wxString::Format(_("Could not stitch preview.\nError: %s\nOne cause could be an invalid or missing image file."), wxString(e.what(), wxConvLocal)), +#ifdef __WXMSW__ + wxT("Hugin"), +#else + wxT(""), +#endif + wxOK | wxICON_INFORMATION); } @@ -448,13 +453,8 @@ offsetY = (sz.GetHeight() - m_panoImgSize.y) / 2; } -#if wxCHECK_VERSION(3,0,0) dc.SetPen(wxPen(GetBackgroundColour(), 1, wxPENSTYLE_SOLID)); dc.SetBrush(wxBrush(GetBackgroundColour(), wxBRUSHSTYLE_SOLID)); -#else - dc.SetPen(wxPen(GetBackgroundColour(), 1, wxSOLID)); - dc.SetBrush(wxBrush(GetBackgroundColour(),wxSOLID)); -#endif dc.DrawRectangle(0, 0, offsetX, sz.GetHeight()); dc.DrawRectangle(offsetX, 0, sz.GetWidth(), offsetY); dc.DrawRectangle(offsetX, sz.GetHeight() - offsetY, @@ -467,13 +467,8 @@ dc.SetClippingRegion(offsetX, offsetY, m_panoImgSize.x, m_panoImgSize.y); -#if wxCHECK_VERSION(3,0,0) dc.SetPen(wxPen(wxT("BLACK"), 1, wxPENSTYLE_SOLID)); dc.SetBrush(wxBrush(wxT("BLACK"), wxBRUSHSTYLE_SOLID)); -#else - dc.SetPen(wxPen(wxT("BLACK"), 1, wxSOLID)); - dc.SetBrush(wxBrush(wxT("BLACK"),wxSOLID)); -#endif dc.DrawRectangle(offsetX, offsetY, m_panoImgSize.x, m_panoImgSize.y); @@ -548,11 +543,7 @@ m_panoImgSize.x, m_panoImgSize.y); // draw boundaries -#if wxCHECK_VERSION(3,0,0) dc.SetPen(wxPen(wxT("WHITE"), 1, wxPENSTYLE_SOLID)); -#else - dc.SetPen(wxPen(wxT("WHITE"), 1, wxSOLID)); -#endif dc.SetLogicalFunction(wxINVERT); DEBUG_DEBUG("ROI scale factor: " << scale << " screen ROI: " << screenROI); @@ -575,11 +566,7 @@ m_panoImgSize.x, m_panoImgSize.y); // draw center lines over display -#if wxCHECK_VERSION(3,0,0) dc.SetPen(wxPen(wxT("WHITE"), 1, wxPENSTYLE_SOLID)); -#else - dc.SetPen(wxPen(wxT("WHITE"), 1, wxSOLID)); -#endif dc.SetLogicalFunction(wxINVERT); dc.DrawLine(offsetX + w/2, offsetY, offsetX + w/2, offsetY + h); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/TextKillFocusHandler.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/TextKillFocusHandler.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/TextKillFocusHandler.cpp 2015-05-10 06:52:07.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/TextKillFocusHandler.cpp 2017-04-22 17:02:49.000000000 +0000 @@ -24,7 +24,7 @@ * */ -#include +#include "hugin_config.h" #include "panoinc_WX.h" #include "panoinc.h" #include "hugin/TextKillFocusHandler.h" diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/TextureManager.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/TextureManager.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/TextureManager.cpp 2016-06-12 14:01:41.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/TextureManager.cpp 2017-04-22 17:02:49.000000000 +0000 @@ -23,7 +23,7 @@ #include #include -#include +#include "hugin_config.h" #ifdef __APPLE__ #include "panoinc.h" @@ -755,10 +755,19 @@ } if (hasPreview) { - image->readMetadata(); - // read all thumbnails - Exiv2::PreviewManager previews(*image); - Exiv2::PreviewPropertiesList lists = previews.getPreviewProperties(); + std::shared_ptr previews; + Exiv2::PreviewPropertiesList lists; + try + { + // read all thumbnails + image->readMetadata(); + previews = std::make_shared(*image); + lists = previews->getPreviewProperties(); + } + catch (const Exiv2::Error&) + { + hasPreview = false; + }; if (lists.empty()) { // no preview found @@ -774,7 +783,7 @@ }; // load preview image to wxImage wxImage rawImage; - Exiv2::PreviewImage previewImage = previews.getPreviewImage(lists[previewIndex]); + Exiv2::PreviewImage previewImage = previews->getPreviewImage(lists[previewIndex]); wxMemoryInputStream stream(previewImage.pData(), previewImage.size()); rawImage.LoadFile(stream, wxString(previewImage.mimeType().c_str(), wxConvLocal), -1); placeholderWidth = rawImage.GetWidth(); @@ -1012,7 +1021,7 @@ error = glGetError(); if (error != GL_NO_ERROR) { - DEBUG_ERROR("GL Error when bulding mipmap levels: " + DEBUG_ERROR("GL Error when building mipmap levels: " << gluErrorString(error) << "."); } SetParameters(); diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/treelistctrl.cpp hugin-2017.0.0+dfsg/src/hugin1/hugin/treelistctrl.cpp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/treelistctrl.cpp 2016-06-12 14:01:41.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/treelistctrl.cpp 2017-05-25 08:44:56.000000000 +0000 @@ -40,9 +40,7 @@ #include #include #include -#if wxCHECK_VERSION(2, 7, 0) - #include -#endif +#include #include #include #include @@ -70,9 +68,7 @@ #include -#if wxCHECK_VERSION(2,9,0) namespace wxcode { -#endif // --------------------------------------------------------------------------- // array types @@ -81,12 +77,7 @@ class wxTreeListItem; class wxTreeListItemCellAttr; -#if !wxCHECK_VERSION(2, 5, 0) -WX_DEFINE_ARRAY(wxTreeListItem *, wxArrayTreeListItems); -#else WX_DEFINE_ARRAY_PTR(wxTreeListItem *, wxArrayTreeListItems); -#endif - WX_DECLARE_OBJARRAY(wxTreeListColumnInfo, wxArrayTreeListColumnInfo); WX_DEFINE_OBJARRAY(wxArrayTreeListColumnInfo); @@ -146,12 +137,10 @@ // total width of the columns int m_total_col_width; -#if wxCHECK_VERSION_FULL(2, 7, 0, 1) // which col header is currently highlighted with mouse-over int m_hotTrackCol; int XToCol(int x); void RefreshColLabel(int col); -#endif public: wxTreeListHeaderWindow(); @@ -464,17 +453,10 @@ // the same! // get child of this item -#if !wxCHECK_VERSION(2, 5, 0) - wxTreeItemId GetFirstChild(const wxTreeItemId& item, long& cookie) const; - wxTreeItemId GetNextChild(const wxTreeItemId& item, long& cookie) const; - wxTreeItemId GetPrevChild(const wxTreeItemId& item, long& cookie) const; - wxTreeItemId GetLastChild(const wxTreeItemId& item, long& cookie) const; -#else wxTreeItemId GetFirstChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const; wxTreeItemId GetNextChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const; wxTreeItemId GetPrevChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const; wxTreeItemId GetLastChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const; -#endif // get sibling of this item wxTreeItemId GetNextSibling(const wxTreeItemId& item) const; @@ -902,7 +884,11 @@ m_text[column] = text; } else if (column < m_owner->GetColumnCount()) { int howmany = m_owner->GetColumnCount(); - for (int i = (int)m_text.GetCount(); i < howmany; ++i) m_text.Add (wxEmptyString); + for (int i = (int)m_text.GetCount(); i < howmany; ++i) + { + m_text.Add(wxEmptyString); + m_text_x.Add(0); + }; m_text[column] = text; } }; @@ -986,8 +972,15 @@ void SetHeight (int height) { m_height = height; } void SetWidth (int width) { m_width = width; } - int GetTextX() const { return m_text_x; } - void SetTextX (int text_x) { m_text_x = text_x; } + int GetTextX(int column) const + { + if (column >=0 && column < (signed)m_text_x.GetCount()) + { + return m_text_x[column]; + }; + return 0; + } + void SetTextX (int column, int text_x) { if (column >=0 && column < (signed)m_text_x.GetCount()) m_text_x[column] = text_x; } wxTreeListItem *GetItemParent() const { return m_parent; } void SetItemParent(wxTreeListItem *parent) { m_parent = parent; } @@ -1078,7 +1071,6 @@ // main column item positions wxCoord m_x; // (virtual) offset from left (vertical line) wxCoord m_y; // (virtual) offset from top - wxCoord m_text_x; // item offset from left short m_width; // width of this item unsigned char m_height; // height of this item @@ -1095,6 +1087,7 @@ // here are all the properties which can be set per column wxArrayString m_text; // labels to be rendered for item + wxArrayLong m_text_x; wxTreeListItemCellAttr m_props_row; // default at row/item level for: data, attr wxTreeListItemCellAttrHash m_props_cell; }; @@ -1173,11 +1166,7 @@ bool wxEditTextCtrl::Destroy() { Hide(); -#if wxCHECK_VERSION(2,9,0) wxTheApp->ScheduleForDestruction(this); -#else - wxTheApp->GetTraits()->ScheduleForDestroy(this); -#endif return true; } @@ -1253,9 +1242,7 @@ m_isDragging = false; m_dirty = false; m_total_col_width = 0; -#if wxCHECK_VERSION_FULL(2, 7, 0, 1) m_hotTrackCol = -1; -#endif // prevent any background repaint in order to reducing flicker SetBackgroundStyle(wxBG_STYLE_CUSTOM); @@ -1283,11 +1270,7 @@ m_owner = owner; m_resizeCursor = new wxCursor(wxCURSOR_SIZEWE); -#if !wxCHECK_VERSION(2, 5, 0) - SetBackgroundColour (wxSystemSettings::GetSystemColour (wxSYS_COLOUR_BTNFACE)); -#else SetBackgroundColour (wxSystemSettings::GetColour (wxSYS_COLOUR_BTNFACE)); -#endif } wxTreeListHeaderWindow::~wxTreeListHeaderWindow() @@ -1297,16 +1280,7 @@ void wxTreeListHeaderWindow::DoDrawRect( wxDC *dc, int x, int y, int w, int h ) { -#if !wxCHECK_VERSION(2, 5, 0) - wxPen pen (wxSystemSettings::GetSystemColour (wxSYS_COLOUR_BTNSHADOW ), 1, wxSOLID); -#else -#if wxCHECK_VERSION(3, 0, 0) wxPen pen (wxSystemSettings::GetColour (wxSYS_COLOUR_BTNSHADOW ), 1, wxPENSTYLE_SOLID); -#else - wxPen pen (wxSystemSettings::GetColour (wxSYS_COLOUR_BTNSHADOW ), 1, wxSOLID); -#endif -#endif - const int m_corner = 1; dc->SetBrush( *wxTRANSPARENT_BRUSH ); @@ -1358,7 +1332,6 @@ m_owner->CalcUnscrolledPosition(w, 0, &w, NULL); dc.SetBackgroundMode(wxTRANSPARENT); -#if wxCHECK_VERSION_FULL(2, 7, 0, 1) int numColumns = GetColumnCount(); for ( int i = 0; i < numColumns && x < w; i++ ) { @@ -1395,95 +1368,6 @@ wxRendererNative::Get().DrawHeaderButton(this, dc, rect); } -#else // not 2.7.0.1+ - - dc.SetFont( GetFont() ); - - // do *not* use the listctrl colour for headers - one day we will have a - // function to set it separately - //dc.SetTextForeground( *wxBLACK ); -#if !wxCHECK_VERSION(2, 5, 0) - dc.SetTextForeground (wxSystemSettings::GetSystemColour( wxSYS_COLOUR_WINDOWTEXT )); -#else - dc.SetTextForeground (wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT )); -#endif - - int numColumns = GetColumnCount(); - for ( int i = 0; i < numColumns && x < w; i++ ) - { - if (!IsColumnShown (i)) continue; // do next column if not shown - - wxTreeListColumnInfo& column = GetColumn(i); - int wCol = column.GetWidth(); - - // the width of the rect to draw: make it smaller to fit entirely - // inside the column rect - int cw = wCol - 2; - -#if !wxCHECK_VERSION(2, 7, 0) - dc.SetPen( *wxWHITE_PEN ); - DoDrawRect( &dc, x, HEADER_OFFSET_Y, cw, h-2 ); -#else - wxRect rect(x, HEADER_OFFSET_Y, cw, h-2); - wxRendererNative::GetDefault().DrawHeaderButton (this, dc, rect); -#endif - - // if we have an image, draw it on the right of the label - int image = column.GetImage(); //item.m_image; - int ix = -2, iy = 0; - wxImageList* imageList = m_owner->GetImageList(); - if ((image != -1) && imageList) { - imageList->GetSize (image, ix, iy); - } - - // extra margins around the text label - int text_width = 0; - int text_x = x; - int image_offset = cw - ix - 1; - - switch(column.GetAlignment()) { - case wxALIGN_LEFT: - text_x += EXTRA_WIDTH; - cw -= ix + 2; - break; - case wxALIGN_RIGHT: - dc.GetTextExtent (column.GetText(), &text_width, NULL); - text_x += cw - text_width - EXTRA_WIDTH - MARGIN; - image_offset = 0; - break; - case wxALIGN_CENTER: - dc.GetTextExtent(column.GetText(), &text_width, NULL); - text_x += (cw - text_width)/2 + ix + 2; - image_offset = (cw - text_width - ix - 2)/2 - MARGIN; - break; - } - - // draw the image - if ((image != -1) && imageList) { - imageList->Draw (image, dc, x + image_offset/*cw - ix - 1*/, - HEADER_OFFSET_Y + (h - 4 - iy)/2, - wxIMAGELIST_DRAW_TRANSPARENT); - } - - // draw the text clipping it so that it doesn't overwrite the column boundary - wxDCClipper clipper(dc, x, HEADER_OFFSET_Y, cw, h - 4 ); - dc.DrawText (column.GetText(), text_x, HEADER_OFFSET_Y + EXTRA_HEIGHT ); - - // next column - x += wCol; - } - - int more_w = m_owner->GetSize().x - x - HEADER_OFFSET_X; - if (more_w > 0) { -#if !wxCHECK_VERSION(2, 7, 0) - DoDrawRect (&dc, x, HEADER_OFFSET_Y, more_w, h-2 ); -#else - wxRect rect (x, HEADER_OFFSET_Y, more_w, h-2); - wxRendererNative::GetDefault().DrawHeaderButton (this, dc, rect); -#endif - } - -#endif // 2.7.0.1 } void wxTreeListHeaderWindow::DrawCurrent() @@ -1502,11 +1386,7 @@ wxScreenDC dc; dc.SetLogicalFunction (wxINVERT); -#if wxCHECK_VERSION(3, 0, 0) dc.SetPen (wxPen (*wxBLACK, 2, wxPENSTYLE_SOLID)); -#else - dc.SetPen (wxPen (*wxBLACK, 2, wxSOLID)); -#endif dc.SetBrush (*wxTRANSPARENT_BRUSH); AdjustDC(dc); @@ -1516,7 +1396,6 @@ dc.SetBrush (wxNullBrush); } -#if wxCHECK_VERSION_FULL(2, 7, 0, 1) int wxTreeListHeaderWindow::XToCol(int x) { int colLeft = 0; @@ -1552,7 +1431,6 @@ m_owner->CalcScrolledPosition(x, 0, &x, NULL); RefreshRect(wxRect(x, 0, width, GetSize().GetHeight())); } -#endif void wxTreeListHeaderWindow::OnMouse (wxMouseEvent &event) { @@ -1560,7 +1438,6 @@ int x; m_owner->CalcUnscrolledPosition(event.GetX(), 0, &x, NULL); -#if wxCHECK_VERSION_FULL(2, 7, 0, 1) const int col = XToCol(x); if(col>=0 && colm_imgWidth > 0) { - int imgX = m_text_x - theCtrl->m_imgWidth - MARGIN; + int imgX = GetTextX(column) - theCtrl->m_imgWidth - MARGIN; int imgY = y_mid - theCtrl->m_imgHeight2; if ((point.x >= imgX) && (point.x <= (imgX + theCtrl->m_imgWidth)) && (point.y >= imgY) && (point.y <= (imgY + theCtrl->m_imgHeight))) { @@ -1883,7 +1759,7 @@ } // check for label hit - if ((point.x >= m_text_x) && (point.x <= (m_text_x + GetWidth()))) { + if ((point.x >= GetTextX(column)) && (point.x <= (GetTextX(column) + GetWidth()))) { flags |= wxTREE_HITTEST_ONITEMLABEL; return this; } @@ -1897,7 +1773,7 @@ // check for right of label int end = 0; for (int i = 0; i <= theCtrl->GetMainColumn(); ++i) end += header_win->GetColumnWidth (i); - if ((point.x > (m_text_x + GetWidth())) && (point.x <= end)) { + if ((point.x > (GetTextX(column) + GetWidth())) && (point.x <= end)) { flags |= wxTREE_HITTEST_ONITEMRIGHT; return this; } @@ -1992,18 +1868,8 @@ m_indent = MININDENT; // min. indent m_linespacing = 4; -#if !wxCHECK_VERSION(2, 5, 0) - m_hilightBrush = new wxBrush (wxSystemSettings::GetSystemColour (wxSYS_COLOUR_HIGHLIGHT), wxSOLID); - m_hilightUnfocusedBrush = new wxBrush (wxSystemSettings::GetSystemColour (wxSYS_COLOUR_BTNSHADOW), wxSOLID); -#else -#if wxCHECK_VERSION(3, 0, 0) m_hilightBrush = new wxBrush (wxSystemSettings::GetColour (wxSYS_COLOUR_HIGHLIGHT), wxBRUSHSTYLE_SOLID); m_hilightUnfocusedBrush = new wxBrush (wxSystemSettings::GetColour (wxSYS_COLOUR_BTNSHADOW), wxBRUSHSTYLE_SOLID); -#else - m_hilightBrush = new wxBrush (wxSystemSettings::GetColour (wxSYS_COLOUR_HIGHLIGHT), wxSOLID); - m_hilightUnfocusedBrush = new wxBrush (wxSystemSettings::GetColour (wxSYS_COLOUR_BTNSHADOW), wxSOLID); -#endif -#endif m_imageListNormal = (wxImageList *) NULL; m_imageListButtons = (wxImageList *) NULL; @@ -2033,7 +1899,6 @@ #else m_normalFont = wxSystemSettings::GetFont (wxSYS_DEFAULT_GUI_FONT); #endif -#if wxCHECK_VERSION(3, 0, 0) m_boldFont = wxFont( m_normalFont.GetPointSize(), m_normalFont.GetFamily(), m_normalFont.GetStyle(), @@ -2041,15 +1906,6 @@ m_normalFont.GetUnderlined(), m_normalFont.GetFaceName(), m_normalFont.GetEncoding()); -#else - m_boldFont = wxFont( m_normalFont.GetPointSize(), - m_normalFont.GetFamily(), - m_normalFont.GetStyle(), - wxBOLD, - m_normalFont.GetUnderlined(), - m_normalFont.GetFaceName(), - m_normalFont.GetEncoding()); -#endif m_toolTip.clear(); m_toolTipItem = (wxTreeListItem *)-1; // no tooltip displayed m_isItemToolTip = false; // so far no item-specific tooltip @@ -2063,30 +1919,13 @@ const wxValidator &validator, const wxString& name) { -#ifdef __WXMAC__ - #if !wxCHECK_VERSION(2,9,0) - if (style & wxTR_HAS_BUTTONS) style |= wxTR_MAC_BUTTONS; - if (style & wxTR_HAS_BUTTONS) style &= ~wxTR_HAS_BUTTONS; - style &= ~wxTR_LINES_AT_ROOT; - style |= wxTR_NO_LINES; - - int major,minor; - wxGetOsVersion( &major, &minor ); - if (major < 10) style |= wxTR_ROW_LINES; - #endif -#endif - wxScrolledWindow::Create (parent, id, pos, size, style|wxHSCROLL|wxVSCROLL, name); #if wxUSE_VALIDATORS SetValidator(validator); #endif -#if !wxCHECK_VERSION(2, 5, 0) - SetBackgroundColour (wxSystemSettings::GetSystemColour (wxSYS_COLOUR_LISTBOX)); -#else SetBackgroundColour (wxSystemSettings::GetColour (wxSYS_COLOUR_LISTBOX)); -#endif // prevent any background repaint in order to reducing flicker SetBackgroundStyle(wxBG_STYLE_CUSTOM); @@ -2299,10 +2138,16 @@ void wxTreeListMainWindow::SetItemImage (const wxTreeItemId& item, int column, int image, wxTreeItemIcon which) { wxCHECK_RET (item.IsOk(), _T("invalid tree item")); wxTreeListItem *pItem = (wxTreeListItem*) item.m_pItem; - pItem->SetImage (column, image, which); - wxClientDC dc (this); - CalculateSize (pItem, dc); - RefreshLine (pItem); + if(pItem->GetImage(column, which) != image) + { + pItem->SetImage (column, image, which); + if(!IsFrozen()) + { + wxClientDC dc (this); + CalculateSize (pItem, dc); + RefreshLine (pItem); + }; + }; } void wxTreeListMainWindow::SetItemData (const wxTreeItemId& item, wxTreeItemData *data) { @@ -2374,21 +2219,12 @@ bool wxTreeListMainWindow::SetFont (const wxFont &font) { wxScrolledWindow::SetFont (font); m_normalFont = font; -#if wxCHECK_VERSION(3, 0, 0) m_boldFont = wxFont (m_normalFont.GetPointSize(), m_normalFont.GetFamily(), m_normalFont.GetStyle(), wxFONTWEIGHT_BOLD, m_normalFont.GetUnderlined(), m_normalFont.GetFaceName()); -#else - m_boldFont = wxFont (m_normalFont.GetPointSize(), - m_normalFont.GetFamily(), - m_normalFont.GetStyle(), - wxBOLD, - m_normalFont.GetUnderlined(), - m_normalFont.GetFaceName()); -#endif CalculateLineHeight(); return true; } @@ -2458,26 +2294,16 @@ return ((wxTreeListItem*) item.m_pItem)->GetItemParent(); } -#if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId wxTreeListMainWindow::GetFirstChild (const wxTreeItemId& item, - long& cookie) const { -#else wxTreeItemId wxTreeListMainWindow::GetFirstChild (const wxTreeItemId& item, wxTreeItemIdValue& cookie) const { -#endif wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); wxArrayTreeListItems& children = ((wxTreeListItem*) item.m_pItem)->GetChildren(); cookie = 0; return (!children.IsEmpty())? wxTreeItemId(children.Item(0)): wxTreeItemId(); } -#if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId wxTreeListMainWindow::GetNextChild (const wxTreeItemId& item, - long& cookie) const { -#else wxTreeItemId wxTreeListMainWindow::GetNextChild (const wxTreeItemId& item, wxTreeItemIdValue& cookie) const { -#endif wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); wxArrayTreeListItems& children = ((wxTreeListItem*) item.m_pItem)->GetChildren(); // it's ok to cast cookie to long, we never have indices which overflow "void*" @@ -2485,13 +2311,8 @@ return ((*pIndex)+1 < (long)children.Count())? wxTreeItemId(children.Item(++(*pIndex))): wxTreeItemId(); } -#if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId wxTreeListMainWindow::GetPrevChild (const wxTreeItemId& item, - long& cookie) const { -#else wxTreeItemId wxTreeListMainWindow::GetPrevChild (const wxTreeItemId& item, wxTreeItemIdValue& cookie) const { -#endif wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); wxArrayTreeListItems& children = ((wxTreeListItem*) item.m_pItem)->GetChildren(); // it's ok to cast cookie to long, we never have indices which overflow "void*" @@ -2499,13 +2320,8 @@ return ((*pIndex)-1 >= 0)? wxTreeItemId(children.Item(--(*pIndex))): wxTreeItemId(); } -#if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId wxTreeListMainWindow::GetLastChild (const wxTreeItemId& item, - long& cookie) const { -#else wxTreeItemId wxTreeListMainWindow::GetLastChild (const wxTreeItemId& item, wxTreeItemIdValue& cookie) const { -#endif wxCHECK_MSG (item.IsOk(), wxTreeItemId(), _T("invalid tree item")); wxArrayTreeListItems& children = ((wxTreeListItem*) item.m_pItem)->GetChildren(); // it's ok to cast cookie to long, we never have indices which overflow "void*" @@ -2655,11 +2471,7 @@ arr[m_main_column] = text; wxTreeListItem *item = new wxTreeListItem (this, parent, arr, image, selImage, data); if (data != NULL) { -#if !wxCHECK_VERSION(2, 5, 0) - data->SetId ((long)item); -#else data->SetId (item); -#endif } parent->Insert (item, previous); @@ -2679,21 +2491,13 @@ arr[m_main_column] = text; m_rootItem = new wxTreeListItem (this, (wxTreeListItem *)NULL, arr, image, selImage, data); if (data != NULL) { -#if !wxCHECK_VERSION(2, 5, 0) - data->SetId((long)m_rootItem); -#else data->SetId(m_rootItem); -#endif } if (HasFlag(wxTR_HIDE_ROOT)) { // if we will hide the root, make sure children are visible m_rootItem->SetHasPlus(); m_rootItem->Expand(); -#if !wxCHECK_VERSION(2, 5, 0) - long cookie = 0; -#else wxTreeItemIdValue cookie = 0; -#endif SetCurrentItem(GetFirstChild(m_rootItem, cookie)); } return m_rootItem; @@ -2911,11 +2715,7 @@ Expand (itemId); if (!IsExpanded (itemId)) return; -#if !wxCHECK_VERSION(2, 5, 0) - long cookie; -#else wxTreeItemIdValue cookie; -#endif wxTreeItemId child = GetFirstChild (itemId, cookie); while (child.IsOk()) { ExpandAll (child); @@ -3045,11 +2845,7 @@ // send selecting event to the user code wxTreeEvent event( wxEVT_COMMAND_TREE_SEL_CHANGING, 0); event.SetInt(m_curColumn); -#if !wxCHECK_VERSION(2, 5, 0) - event.SetOldItem ((long)m_curItem); -#else event.SetOldItem (m_curItem); -#endif if (SendEvent(0, item, &event) && !event.IsAllowed()) return false; // veto on selection change // unselect all if unselect other items @@ -3111,19 +2907,11 @@ // send event to user code wxTreeEvent event (wxEVT_COMMAND_TREE_SEL_CHANGING, 0); -#if !wxCHECK_VERSION(2, 5, 0) - event.SetOldItem ((long)m_curItem); -#else event.SetOldItem (m_curItem); -#endif event.SetInt (-1); // no colum clicked if (SendEvent(0, m_rootItem, &event) && !event.IsAllowed()) return; // selection change vetoed -#if !wxCHECK_VERSION(2, 5, 0) - long cookie = 0; -#else wxTreeItemIdValue cookie = 0; -#endif wxTreeListItem *first = (wxTreeListItem *)GetFirstChild (root, cookie).m_pItem; wxTreeListItem *last = (wxTreeListItem *)GetLastChild (root, cookie).m_pItem; if (!TagAllChildrenUntilLast (first, last)) { @@ -3265,11 +3053,7 @@ wxTreeItemId wxTreeListMainWindow::FindItem (const wxTreeItemId& item, int column, const wxString& str, int mode) { -#if !wxCHECK_VERSION(2, 5, 0) - long cookie = 0; -#else wxTreeItemIdValue cookie = 0; -#endif wxTreeItemId next = item; // start checking the next items @@ -3425,11 +3209,7 @@ // read attributes constant for all item cells wxColour colText = GetItemTextColour(item); wxColour colBg = GetItemBackgroundColour(item); -#if !wxCHECK_VERSION(2, 5, 0) - wxColour colTextHilight = wxSystemSettings::GetSystemColour (wxSYS_COLOUR_HIGHLIGHTTEXT); -#else wxColour colTextHilight = wxSystemSettings::GetColour (wxSYS_COLOUR_HIGHLIGHTTEXT); -#endif int total_w = std::max(m_owner->GetHeaderWindow()->GetWidth(), m_owner->GetMainWindow()->GetClientSize().GetWidth()); int total_h = GetLineHeight(item); int off_h = HasFlag(wxTR_ROW_LINES) ? 1 : 0; @@ -3444,11 +3224,7 @@ // determine background and show it // in wxTR_FULL_ROW_HIGHLIGHT mode, some drawing can be done already now -#if wxCHECK_VERSION(3, 0, 0) dc.SetBrush (wxBrush ( colBg, wxBRUSHSTYLE_SOLID)); -#else - dc.SetBrush (wxBrush ( colBg, wxSOLID)); -#endif dc.SetPen (*wxTRANSPARENT_PEN); if (HasFlag (wxTR_FULL_ROW_HIGHLIGHT)) { if (item->IsSelected()) { @@ -3524,7 +3300,7 @@ break; } int text_x = x + image_w; - if (i == GetMainColumn()) item->SetTextX (text_x); + item->SetTextX (i, text_x); // draw background (in non wxTR_FULL_ROW_HIGHLIGHT mode) // cell-specific settings are used --excepted for selection: @@ -3538,11 +3314,7 @@ if (item->IsSelected() && i == GetMainColumn()) { // draw normal background dc.SetPen (*wxTRANSPARENT_PEN); -#if wxCHECK_VERSION(3, 0, 0) dc.SetBrush (wxBrush ( colBg, wxBRUSHSTYLE_SOLID)); -#else - dc.SetBrush (wxBrush ( colBg, wxSOLID)); -#endif dc.DrawRectangle (x_colstart, item->GetY() + off_h, col_w, total_h - off_h); // draw selection & optionally cursor dc.SetPen (drawCursor ? *wxBLACK_PEN : *wxTRANSPARENT_PEN); @@ -3553,11 +3325,7 @@ } else { // draw normal background & optionally cursor dc.SetPen (drawCursor && i != GetMainColumn() ? *wxBLACK_PEN : *wxTRANSPARENT_PEN); -#if wxCHECK_VERSION(3, 0, 0) dc.SetBrush (wxBrush ( colBg, wxBRUSHSTYLE_SOLID)); -#else - dc.SetBrush (wxBrush ( colBg, wxSOLID)); -#endif dc.SetTextForeground (colText); dc.DrawRectangle (x_colstart, item->GetY() + off_h, col_w, total_h - off_h); // on main col draw a separate cursor @@ -3571,15 +3339,7 @@ // draw vertical column lines if (HasFlag(wxTR_COLUMN_LINES)) { // vertical lines between columns -#if !wxCHECK_VERSION(2, 5, 0) - wxPen pen (wxSystemSettings::GetSystemColour (wxSYS_COLOUR_3DLIGHT ), 1, wxSOLID); -#else -#if wxCHECK_VERSION(3, 0, 0) wxPen pen (wxSystemSettings::GetColour (wxSYS_COLOUR_3DLIGHT ), 1, wxPENSTYLE_SOLID); -#else - wxPen pen (wxSystemSettings::GetColour (wxSYS_COLOUR_3DLIGHT ), 1, wxSOLID); -#endif -#endif dc.SetPen ((GetBackgroundColour() == *wxWHITE)? pen: *wxWHITE_PEN); dc.DrawLine (x_colstart+col_w-1, item->GetY(), x_colstart+col_w-1, item->GetY()+total_h); } @@ -3650,15 +3410,7 @@ int total_width = std::max(m_owner->GetHeaderWindow()->GetWidth(), m_owner->GetClientSize().GetWidth()); // if the background colour is white, choose a // contrasting color for the lines -#if !wxCHECK_VERSION(2, 5, 0) - wxPen pen (wxSystemSettings::GetSystemColour (wxSYS_COLOUR_3DLIGHT ), 1, wxSOLID); -#else -#if wxCHECK_VERSION(3, 0, 0) wxPen pen (wxSystemSettings::GetColour (wxSYS_COLOUR_3DLIGHT ), 1, wxPENSTYLE_SOLID); -#else - wxPen pen (wxSystemSettings::GetColour (wxSYS_COLOUR_3DLIGHT ), 1, wxSOLID); -#endif -#endif dc.SetPen ((GetBackgroundColour() == *wxWHITE)? pen: *wxWHITE_PEN); dc.DrawLine (0, y_top, total_width, y_top); dc.DrawLine (0, y_top+h, total_width, y_top+h); @@ -3735,21 +3487,9 @@ }else{ // if (HasFlag(wxTR_HAS_BUTTONS)) // draw the plus sign here -#if !wxCHECK_VERSION(2, 7, 0) - dc.SetPen(*wxGREY_PEN); - dc.SetBrush(*wxWHITE_BRUSH); - dc.DrawRectangle (x-m_btnWidth2, y_mid-m_btnHeight2, m_btnWidth, m_btnHeight); - dc.SetPen(*wxBLACK_PEN); - dc.DrawLine (x-(m_btnWidth2-2), y_mid, x+(m_btnWidth2-1), y_mid); - if (!item->IsExpanded()) { // change "-" to "+" - dc.DrawLine (x, y_mid-(m_btnHeight2-2), x, y_mid+(m_btnHeight2-1)); - } -#else wxRect rect (x-m_btnWidth2, y_mid-m_btnHeight2, m_btnWidth, m_btnHeight); int flag = item->IsExpanded()? wxCONTROL_EXPANDED: 0; wxRendererNative::GetDefault().DrawTreeItemButton (this, dc, rect, flag); -#endif - } } @@ -3802,11 +3542,7 @@ // init device context, clear background (BEFORE changing DC origin...) wxAutoBufferedPaintDC dc (this); -#if wxCHECK_VERSION(3, 0, 0) wxBrush brush(GetBackgroundColour(), wxBRUSHSTYLE_SOLID); -#else - wxBrush brush(GetBackgroundColour(), wxSOLID); -#endif dc.SetBackground(brush); dc.Clear(); DoPrepareDC (dc); @@ -3872,6 +3608,8 @@ wxTreeEvent nevent (wxEVT_COMMAND_TREE_KEY_DOWN, 0 ); nevent.SetInt(m_curColumn); nevent.SetKeyEvent (event); + // store modifiers in extra long for Mac + nevent.SetExtraLong(event.GetModifiers()); if (SendEvent(0, NULL, &nevent)) return; // char event handled in user code // if no item current, select root @@ -3880,11 +3618,7 @@ if (! GetRootItem().IsOk()) return; SetCurrentItem((wxTreeListItem*)GetRootItem().m_pItem); if (HasFlag(wxTR_HIDE_ROOT)) { -#if !wxCHECK_VERSION(2, 5, 0) - long cookie = 0; -#else wxTreeItemIdValue cookie = 0; -#endif SetCurrentItem((wxTreeListItem*)GetFirstChild (m_curItem, cookie).m_pItem); } SelectItem(m_curItem, (wxTreeItemId*)NULL, true); // unselect others @@ -3976,11 +3710,7 @@ case WXK_UP: { newItem = GetPrevSibling (m_curItem); if (newItem) { -#if !wxCHECK_VERSION(2, 5, 0) - long cookie = 0; -#else wxTreeItemIdValue cookie = 0; -#endif while (IsExpanded (newItem) && HasChildren (newItem)) { newItem = GetLastChild (newItem, cookie); } @@ -4010,11 +3740,7 @@ Expand (m_curItem); }else{ if (IsExpanded (m_curItem) && HasChildren (m_curItem)) { -#if !wxCHECK_VERSION(2, 5, 0) - long cookie = 0; -#else wxTreeItemIdValue cookie = 0; -#endif newItem = GetFirstChild (m_curItem, cookie); } } @@ -4023,11 +3749,7 @@ // : if expanded go to the first child, else to the next sibling, ect case WXK_DOWN: { if (IsExpanded (m_curItem) && HasChildren (m_curItem)) { -#if !wxCHECK_VERSION(2, 5, 0) - long cookie = 0; -#else wxTreeItemIdValue cookie = 0; -#endif newItem = GetFirstChild( m_curItem, cookie ); } if (!newItem) { @@ -4065,11 +3787,7 @@ // any char: go to the next matching string default: wxChar key = event.GetUnicodeKey(); -#if wxCHECK_VERSION(3,0,0) if (key == WXK_NONE) key = (wxChar)event.GetKeyCode(); -#else - if (key == 0) key = (wxChar)event.GetKeyCode(); -#endif if (key >= 32) { // prepare search parameters int mode = wxTL_MODE_NAV_EXPANDED | wxTL_MODE_FIND_PARTIAL | wxTL_MODE_FIND_NOCASE; @@ -4197,7 +3915,7 @@ int h = m_editItem->GetHeight() - 1; // consequence from above long style = 0; if (column == GetMainColumn()) { - x += m_editItem->GetTextX() - 2; // wrong by 2, don't know why + x += m_editItem->GetTextX(column) - 2; // wrong by 2, don't know why w += m_editItem->GetWidth(); } else { for (int i = 0; i < column; ++i) { @@ -4568,11 +4286,7 @@ if (m_owner->GetEventHandler()->ProcessEvent(event)) return; // handled (and not skipped) in user code // TODO -#if defined(__WXGTK__) && !defined(__WXUNIVERSAL__) && !wxCHECK_VERSION(3,0,0) - wxScrolledWindow::OnScroll(event); -#else HandleOnScroll( event ); -#endif if(event.GetOrientation() == wxHORIZONTAL) { m_owner->GetHeaderWindow()->Refresh(); @@ -4859,11 +4573,7 @@ event->SetEventObject (m_owner); event->SetId(m_owner->GetId()); if (item) { -#if !wxCHECK_VERSION(2, 5, 0) - event->SetItem ((long)item); -#else event->SetItem (item); -#endif } return m_owner->GetEventHandler()->ProcessEvent (*event); @@ -4909,17 +4619,11 @@ // we use 'g' to get the descent, too int h; -#if wxCHECK_VERSION_FULL(2, 7, 0, 1) #ifdef __WXMSW__ h = (int)(wxRendererNative::Get().GetHeaderButtonHeight(m_header_win) * 0.8) + 2; #else h = wxRendererNative::Get().GetHeaderButtonHeight(m_header_win); #endif -#else - int w, d; - m_header_win->GetTextExtent(_T("Hg"), &w, &h, &d); - h += d + 2 * HEADER_OFFSET_Y + EXTRA_HEIGHT; -#endif // only update if changed if (h != m_headerHeight) { @@ -5124,40 +4828,20 @@ wxTreeItemId wxTreeListCtrl::GetItemParent(const wxTreeItemId& item) const { return m_main_win->GetItemParent(item); } -#if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId wxTreeListCtrl::GetFirstChild (const wxTreeItemId& item, - long& cookie) const -#else wxTreeItemId wxTreeListCtrl::GetFirstChild (const wxTreeItemId& item, wxTreeItemIdValue& cookie) const -#endif { return m_main_win->GetFirstChild(item, cookie); } -#if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId wxTreeListCtrl::GetNextChild (const wxTreeItemId& item, - long& cookie) const -#else wxTreeItemId wxTreeListCtrl::GetNextChild (const wxTreeItemId& item, wxTreeItemIdValue& cookie) const -#endif { return m_main_win->GetNextChild(item, cookie); } -#if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId wxTreeListCtrl::GetPrevChild (const wxTreeItemId& item, - long& cookie) const -#else wxTreeItemId wxTreeListCtrl::GetPrevChild (const wxTreeItemId& item, wxTreeItemIdValue& cookie) const -#endif { return m_main_win->GetPrevChild(item, cookie); } -#if !wxCHECK_VERSION(2, 5, 0) -wxTreeItemId wxTreeListCtrl::GetLastChild (const wxTreeItemId& item, - long& cookie) const -#else wxTreeItemId wxTreeListCtrl::GetLastChild (const wxTreeItemId& item, wxTreeItemIdValue& cookie) const -#endif { return m_main_win->GetLastChild(item, cookie); } @@ -5544,6 +5228,4 @@ #endif // wxUSE_XRC -#if wxCHECK_VERSION(2,9,0) } // namespace wxcode -#endif diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/treelistctrl.h hugin-2017.0.0+dfsg/src/hugin1/hugin/treelistctrl.h --- hugin-2016.2.0+dfsg/src/hugin1/hugin/treelistctrl.h 2014-10-12 12:12:03.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/treelistctrl.h 2016-10-03 07:51:45.000000000 +0000 @@ -27,9 +27,7 @@ #endif -#if wxCHECK_VERSION(2,9,0) namespace wxcode { -#endif class wxTreeListItem; class wxTreeListHeaderWindow; @@ -38,15 +36,6 @@ #define wxTR_COLUMN_LINES 0x1000 // put border around items #define wxTR_VIRTUAL 0x4000 // The application provides items text on demand. -// Using this typedef removes an ambiguity when calling Remove() -#ifdef __WXMSW__ -#if !wxCHECK_VERSION(2, 5, 0) -typedef long wxTreeItemIdValue; -#else -// typedef void *wxTreeItemIdValue; -#endif -#endif - //----------------------------------------------------------------------------- // wxTreeListColumnAttrs //----------------------------------------------------------------------------- @@ -398,17 +387,10 @@ // the same! // get child of this item -#if !wxCHECK_VERSION(2, 5, 0) - wxTreeItemId GetFirstChild(const wxTreeItemId& item, long& cookie) const; - wxTreeItemId GetNextChild(const wxTreeItemId& item, long& cookie) const; - wxTreeItemId GetPrevChild(const wxTreeItemId& item, long& cookie) const; - wxTreeItemId GetLastChild(const wxTreeItemId& item, long& cookie) const; -#else wxTreeItemId GetFirstChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const; wxTreeItemId GetNextChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const; wxTreeItemId GetPrevChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const; wxTreeItemId GetLastChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const; -#endif // get sibling of this item wxTreeItemId GetNextSibling(const wxTreeItemId& item) const; @@ -593,9 +575,7 @@ #endif /* wxUSE_XRC */ -#if wxCHECK_VERSION(2,9,0) } // namespace wxcode -#endif ///////////////////////////////////////////////////////////////////////////// diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/batch_frame.xrc hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/batch_frame.xrc --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/batch_frame.xrc 2015-08-01 12:07:26.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/batch_frame.xrc 2017-04-22 17:02:50.000000000 +0000 @@ -12,7 +12,7 @@ wxHORIZONTAL - + wxEXPAND diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/batch_menu.xrc hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/batch_menu.xrc --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/batch_menu.xrc 2015-12-13 11:27:26.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/batch_menu.xrc 2017-04-22 17:02:50.000000000 +0000 @@ -56,6 +56,7 @@ + F1 Open Batch Stitcher help. diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/CMakeLists.txt hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/CMakeLists.txt --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/CMakeLists.txt 2016-03-29 17:19:09.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/CMakeLists.txt 2017-04-22 17:02:50.000000000 +0000 @@ -31,4 +31,3 @@ ENDIF(WIN32) ADD_SUBDIRECTORY(help_en_EN) -ADD_SUBDIRECTORY(help_it_IT) Binary files /tmp/tmpo_qXS2/IAgTVNsb7J/hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_common/horiz-guide.jpg and /tmp/tmpo_qXS2/FhLFvpiUoJ/hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_common/horiz-guide.jpg differ Binary files /tmp/tmpo_qXS2/IAgTVNsb7J/hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_common/hugin.png and /tmp/tmpo_qXS2/FhLFvpiUoJ/hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_common/hugin.png differ Binary files /tmp/tmpo_qXS2/IAgTVNsb7J/hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_common/problem-circle.jpg and /tmp/tmpo_qXS2/FhLFvpiUoJ/hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_common/problem-circle.jpg differ diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/16bit.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/16bit.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/16bit.html 2016-01-22 17:50:27.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/16bit.html 2017-04-22 17:02:51.000000000 +0000 @@ -1,10 +1,10 @@ - + 16bit - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/16bit_workflow_with_hugin.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/16bit_workflow_with_hugin.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/16bit_workflow_with_hugin.html 2016-01-22 17:50:49.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/16bit_workflow_with_hugin.html 2017-04-22 17:02:51.000000000 +0000 @@ -1,10 +1,10 @@ - + 16bit workflow with hugin - PanoTools.org Wiki - - + + @@ -34,7 +34,7 @@ stitch in 16bit format. It is a simple HOWTO listing the tools available and how to use them with hugin.

-

Preparing the 16bit images

+

Preparing the 16bit images

Start by using dcraw[*] to read the RAW files and batch convert them into portable 16bit per channel PPM[*] files. RAW pictures from my Nikon 8700 have a .nef extension, so the command looks something like this: @@ -59,7 +59,7 @@

Alternatively UFRaw[*] can be used for the entire conversion from RAW.

If necessary, correct chromatic aberration with fulla at this stage.

-

Stitching with hugin

+

Stitching with hugin

The TIFF images can be loaded into hugin as per usual except:

EXIF information about the Field of View was lost during the PPM[*] stage, so the field of view will need to be re-entered manually, re-optimised with PTOptimizer or transferred from the RAW file using exiftool[*]:

@@ -72,7 +72,7 @@

 mogrify -gamma 2.2 myproject_*.tif
 
-

Post processing

+

Post processing

This TIFF file is in 16bit per channel RGBA format, which is not viewable in most image viewers or web-browsers, so there is an extra step needed to create portable images:

Open the file in a 16bit aware image editor such as cinepaint[*] or krita[*], tweak the diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Aliasing.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Aliasing.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Aliasing.html 2016-01-22 17:50:49.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Aliasing.html 2017-04-22 17:02:51.000000000 +0000 @@ -1,10 +1,10 @@ - + Aliasing - PanoTools.org Wiki - - + + @@ -32,7 +32,7 @@


-

Definition and Background

+

Definition and Background

Aliasing is a process that results in "jaggies" or Moire effects when an image is sampled or resampled.

The word "aliasing" comes from frequency-domain analysis. Slow periodic sampling of a signal causes high frequency components to be "aliased" into low frequency ones that corrupt the sampled signal.

To avoid aliasing, a signal must not contain frequencies that are higher than one half the sample rate. Likewise, an input image must not contain details that are smaller than one pixel in the output image. @@ -41,10 +41,10 @@

When using older versions of Panorama Tools[*] (and derived tools such as PTStitcher, nona or the Panorama Tools Plugins[*]) the important thing to know was that Panorama Tools did not anti-alias until pano12 version 2.7.0.11. This meant that if you had Panorama Tools make a small panorama directly, it was likely to show jaggies or Moire effects.

In version 2.7.0.11 a couple of anti-aliasing interpolators[*] where added which can be used by either specifying the correct interpolator number in the script] or by choosing one of the interpolators directly if the Software supports it. However, the traditional interpolators "poly3", "spline16", "spline36", "sinc256", "spline64", "bilinear", "nearest neighbor" and "sinc1024" still cause aliasing.

-

Guidance

+

Guidance

You will get better results by having Panorama Tools make a large panorama, then resizing it (downsampling) using some tool like Photoshop[*], ImageMagick[*] or the Gimp[*] that does incorporate anti-aliasing, if you use a version prior to 2.7.0.11 or if it's not possible to use the new anti-aliasing filters.

-

Illustrations

+

Illustrations

The following images illustrate this guidance. They show crops from a 1000x500 panorama.

On the left is what Photoshop produced by downsampling from a 6068x3034 pano, using the Image Size command with Bicubic resampling. (6068x3034 was the PTGui[*] "optimum" size.)

On the right is what Panorama Tools produced directly at 1000x500. diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Align_a_stack_of_photos.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Align_a_stack_of_photos.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Align_a_stack_of_photos.html 2016-01-22 17:50:49.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Align_a_stack_of_photos.html 2017-04-22 17:02:52.000000000 +0000 @@ -1,10 +1,10 @@ - + Align a stack of photos - PanoTools.org Wiki - - + + @@ -51,7 +51,7 @@ automatic alignment, so this may be sufficient for most purposes. Otherwise the hdrprep perl script automates the process described below:

-

Aligning with hugin

+

Aligning with hugin

  • Start up a new hugin project for each series and load the images. Set the Field of View, lens parameters and projection type, ie. if your lens is a fisheye, set this for both the input and output projection.
  • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Align_image_stack.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Align_image_stack.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Align_image_stack.html 2016-06-01 15:41:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Align_image_stack.html 2017-04-29 16:05:50.000000000 +0000 @@ -1,10 +1,10 @@ - + Align image stack - PanoTools.org Wiki - - + + @@ -30,12 +30,12 @@
    From PanoTools.org Wiki
    -

    align_image_stack is a command-line tool available in the development version of hugin to align overlapping images to facilitate HDR creation, Exposure blending[*], extended Depth of Field, and Stereoscopic[*] images. +

    align_image_stack is a command-line tool to align overlapping images to facilitate HDR creation, Exposure blending[*], extended Depth of Field, and Stereoscopic[*] images.

    -

    Usage

    +

    Usage

    align_image_stack [options] input_files
     
    -

    Options: modes of operation

    +

    Options: modes of operation

    -p file   
     

    Output .pto file. (Useful for debugging, or further refinement.) @@ -48,7 +48,7 @@

    Merge images to HDR, generate output.hdr.

    -

    Options: modifiers

    +

    Options: modifiers

    -v        
     

    Verbose, print progress messages. @@ -156,5 +156,5 @@

    - Retrieved from "http://wiki.panotools.org/index.php?title=Align_image_stack&oldid=15804[*]"
    + Retrieved from "http://wiki.panotools.org/index.php?title=Align_image_stack&oldid=15916[*]"
\ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Alpha_channel.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Alpha_channel.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Alpha_channel.html 2016-01-22 17:50:49.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Alpha_channel.html 2017-04-22 17:02:52.000000000 +0000 @@ -1,10 +1,10 @@ - + Alpha channel - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Aspect_Ratio.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Aspect_Ratio.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Aspect_Ratio.html 2016-01-22 17:50:49.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Aspect_Ratio.html 2017-04-22 17:02:52.000000000 +0000 @@ -1,10 +1,10 @@ - + Aspect Ratio - PanoTools.org Wiki - - + + @@ -34,7 +34,7 @@ Aspect ratio is the ratio (proportion) between width and height of an image. It doesn't matter whether the image is measured in cm, inch or pixels. However, measurement in digital imaging depends on resolution (and this can be different for width and height) hence always pixel values are used to calculate the aspect ratio.

If an image is 200 pixels wide and 100 pixels high it has an aspect ratio of 2:1 as well as if it is 600 pixels wide and 300 pixels high.

-

Common ratios

+

Common ratios

  • Digital cameras often produce images with a 4:3 ratio, for example: 640×480 (VGA), 800×600, 1600×1200, 2048×1536 (3 megapixel), 2592×1944, 3264×2448, etc.
  • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autooptimiser.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autooptimiser.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autooptimiser.html 2016-01-22 17:50:49.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autooptimiser.html 2017-04-22 17:02:52.000000000 +0000 @@ -1,10 +1,10 @@ - + Autooptimiser - PanoTools.org Wiki - - + + @@ -57,19 +57,19 @@
  • autooptimiser can also perform photometric optimisation like the vig_optimize tool. Depending on the input images it selects automaticly these photometric parameters (exposure, white balance, vignetting, camera response curve) which should be optimised.
-

Usage

+

Usage

      autooptimiser [options] project.pto
 

(- can be specified to read the project from stdio.)

-

Description

+

Description

autooptimiser works similarly to PToptimizer but with extra command- line options.

It is also different in that PToptimizer appends its output onto the input file in the form of ’o’ lines which need further processing. autooptimiser simply updates the project and writes it to a new file.

-

Options

+

Options

-o file.pto Output file. If omitted, stdout is used.


diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autopano.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autopano.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autopano.html 2016-01-22 17:50:49.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autopano.html 2017-04-22 17:02:52.000000000 +0000 @@ -1,10 +1,10 @@ - + Autopano - PanoTools.org Wiki - - + + @@ -34,7 +34,7 @@

The functionality is very similar to that of autopano-sift, which is actually a different program.

A commercial program using the same technology is Autopano pro[*]

-

External links

+

External links

  • Autopano Project Page
  • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autopano-sift-C.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autopano-sift-C.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autopano-sift-C.html 2016-01-22 17:50:49.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autopano-sift-C.html 2017-04-22 17:02:52.000000000 +0000 @@ -1,10 +1,10 @@ - + Autopano-sift-C - PanoTools.org Wiki - - + + @@ -35,7 +35,7 @@

    autopano-sift-C is available from the hugin project and can only be used within hugin as an optional installation due to patent issues: the use of the Scale-invariant feature transform[*] algorithm is restricted by US Patent 6,711,293, awarded March 23, 2004 to the University of British Columbia.

    The current version 2.5.1 (autopano-sift-C-2.5.1) is available since the release of hugin 0.7 in October 2008.

    -

    Installation on Mac OS X

    +

    Installation on Mac OS X

    On Mac OS X, autopano-sift-c can be installed via MacPorts:

    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autopano-sift.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autopano-sift.html
    --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autopano-sift.html	2016-01-22 17:50:49.000000000 +0000
    +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Autopano-sift.html	2017-04-22 17:02:52.000000000 +0000
    @@ -1,10 +1,10 @@
     
     
     
    -
    +
     Autopano-sift - PanoTools.org Wiki
    -
    -
    +
    +
     
     
     
    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Banding.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Banding.html
    --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Banding.html	2016-01-22 17:50:49.000000000 +0000
    +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Banding.html	2017-04-22 17:02:52.000000000 +0000
    @@ -1,10 +1,10 @@
     
     
     
    -
    +
     Banding - PanoTools.org Wiki
    -
    -
    +
    +
     
     
     
    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Barrel_distortion.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Barrel_distortion.html
    --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Barrel_distortion.html	2016-01-22 17:50:49.000000000 +0000
    +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Barrel_distortion.html	2017-04-22 17:02:53.000000000 +0000
    @@ -1,10 +1,10 @@
     
     
     
    -
    +
     Barrel distortion - PanoTools.org Wiki
    -
    -
    +
    +
     
     
     
    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Bracketing.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Bracketing.html
    --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Bracketing.html	2016-06-01 15:41:19.000000000 +0000
    +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Bracketing.html	2017-04-22 17:02:53.000000000 +0000
    @@ -1,10 +1,10 @@
     
     
     
    -
    +
     Bracketing - PanoTools.org Wiki
    -
    -
    +
    +
     
     
     
    @@ -51,15 +51,15 @@
     
-

Panoramic stitching techniques

-

Simple

+

Panoramic stitching techniques

+

Simple

Pick the best exposed set of images and discard the rest.

  • This may be good enough, though you lose the ability to use the entire dynamic range in the final panorama.
-

Contrast blend bracketed shots

+

Contrast blend bracketed shots

Use Contrast Blending[*] to merge each bracketed view, then stitch these 8bit images into an 8bit panorama.

@@ -67,7 +67,7 @@
  • You have to use the same 'exposure' when merging each shot, but you don't know what that needs to be until you have finished and can see the result (less of a problem if you use a full 16 bit workflow[*]).
  • -

    Contrast blend bracketed panoramas

    +

    Contrast blend bracketed panoramas

    Stitch each exposure step into a complete 8bit panorama, then merge these with Contrast Blending[*] into an 8bit panorama.

    @@ -77,7 +77,7 @@
  • Ghosting[*] unless your panoramas are aligned perfectly.
  • -

    Convert bracketed shots to HDR

    +

    Convert bracketed shots to HDR

    Merge each bracketed view into an HDR image, stitch these into an HDR panorama and then reduce to 8bit with tone mapping.

    @@ -87,7 +87,7 @@
  • Currently this workflow is only possible with hugin.
  • -

    Convert bracketed panoramas to HDR

    +

    Convert bracketed panoramas to HDR

    Stitch each exposure step into a complete 8bit panorama, then merge these into an HDR panorama and reduce to 8bit with tone mapping. @@ -100,7 +100,7 @@

  • Ghosting[*] unless all your panoramas are aligned perfectly.
  • -

    Tone map bracketed shots

    +

    Tone map bracketed shots

    Merge each bracketed view into an HDR image, use a tone mapping operator to generate 8bit images. Then stitch these into an 8bit panorama.

    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Calibrate_lens_gui.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Calibrate_lens_gui.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Calibrate_lens_gui.html 2016-01-22 17:50:49.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Calibrate_lens_gui.html 2017-04-22 17:02:53.000000000 +0000 @@ -1,10 +1,10 @@ - + Calibrate lens gui - PanoTools.org Wiki - - + + @@ -32,19 +32,19 @@

    calibrate_lens_gui is a tool for lens calibration using the straight line approach.

    -

    Workflow

    +

    Workflow

    1. Load images

    2. Check focal length and crop factor (calibrate_lens_gui tries to read them from the EXIF data)

    3. Detect lines

    4. Optimize the lens parameters

    5. Save optimized lens parameters into file for using inside Hugin

    -

    Line detection

    +

    Line detection

    To speed up the following calculations the image is scaled down, so that the longest dimension of the image is small than maximal image size.

    Then an edge detection operator is applied. The Canny edge detector is used for this. This step can be tuned with the scale or radius factor and the threshold for the Canny edge detector.

    Finally the found lines are checked if they are straight in respect to the given focal length. Also lines with are shorter than the minimal line length are rejected. Minimum line length is given as ratio to the image width/height. So a value of 0.3 means that only lines which are longer than 30 % of the image width are used.

    -

    Preview

    +

    Preview

    • Original: Shows the original image as loaded from the disc.
    • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Camera_response_curve.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Camera_response_curve.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Camera_response_curve.html 2016-01-22 17:50:49.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Camera_response_curve.html 2017-04-22 17:02:53.000000000 +0000 @@ -1,10 +1,10 @@ - + Camera response curve - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/CCD.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/CCD.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/CCD.html 2016-01-22 17:50:49.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/CCD.html 2017-04-22 17:02:53.000000000 +0000 @@ -1,10 +1,10 @@ - + CCD - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Celeste_standalone.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Celeste_standalone.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Celeste_standalone.html 2016-01-22 17:51:10.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Celeste_standalone.html 2017-04-22 17:02:53.000000000 +0000 @@ -1,10 +1,10 @@ - + Celeste standalone - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Checkpto.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Checkpto.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Checkpto.html 2016-01-22 17:51:10.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Checkpto.html 2017-04-22 17:02:53.000000000 +0000 @@ -1,10 +1,10 @@ - + Checkpto - PanoTools.org Wiki - - + + @@ -33,12 +33,12 @@

      checkpto is a command-line tool and Helper program for Hugin's Makefile assistant that examines a Hugin's project file and reports back the number of image chains or parts present. It does this by examining how images are connected with control points. If images are not connected together they can not be positioned correctly by optimizing their position.


      -

      usage

      +

      usage

      A typical usage would be:

       checkpto project.pto
       
      -

      return

      +

      return

      0   If only one image chain present.
       -1   If error.
       >1  If more than one image chain present. Return value is number of image chains.
      diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Chromatic_aberration.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Chromatic_aberration.html
      --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Chromatic_aberration.html	2016-01-22 17:51:10.000000000 +0000
      +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Chromatic_aberration.html	2017-04-22 17:02:53.000000000 +0000
      @@ -1,10 +1,10 @@
       
       
       
      -
      +
       Chromatic aberration - PanoTools.org Wiki
      -
      -
      +
      +
       
       
       
      @@ -61,15 +61,15 @@
       
    -

    Intro

    +

    Intro

    Color fringes can be very annoying, especially in stitched panoramas. Since they often appear nearer to the edges of single images they are near to any seam between two images in the panorama. Even worse, they change color where they cross the seam.

    Hence chromatic aberration should be corrected if visible otherwise, at least for full screen or printed panoramas where you allow to zoom in to the native camera resolution. While correction is relatively easy CA can not be automatically determined like f.e. barrel distortion. Only visual judgement can give you enough control of the result. Unfortunately it needs some experience to do this.

    -

    What it is

    +

    What it is

    Chromatic aberration is a common lens error visible in images as colored fringes or colored blur along edges. It is caused by a different refractive index of glass for light at different wavelength. There is a nice description with lots of links on wikipedia:Chromatic aberration[*].

    Another good description is found on Paul van Walree's page.

    -

    LCA

    +

    LCA

    Different refractive index means different Focal Length for a single lens. This would lead to different focal planes for different colors. You would have to focus differently for red, blue or green. This effect is called longitudinal chromatic aberration (LCA). If you have a fringe near the image center that changes color if you defocus slightly, this is most likely longitudinal chromatic aberration. This type:

      @@ -82,7 +82,7 @@


    -

    TCA

    +

    TCA

    When a lens is corrected for longitudinal chromatic aberration, different colors focus more or less in the same point on the optical axis, but they might focus in different distances off axis resulting in images of different size for different colors. This type is called lateral or transverse chromatic aberration (TCA). If you have complementary colored fringes progressively more from the center to the corners, this is most likely transverse chromatic aberration (although there are some exceptions as the example below illustrates). This type:

      @@ -93,7 +93,7 @@
    • is dependent from focus distance.
    -

    What it is not

    +

    What it is not

    Digital photography introduced some new types of color fringes, that are not lens chromatic aberration. They are frequently confused with TCA and unfortunately they occur often mixed with TCA. These effects might be visible as purple or blue fringes and are visible around overexposed areas in most cases.

    They might have different causes:

    @@ -109,10 +109,10 @@
  • By partial color saturation: Blue sky f.e. might be clipped to pure white because all color channels are saturated. If there is a blurred dark object in the image the sensors in the blur region receive only part of the light and hence don't saturate. The blur region appears blue. This is the only effect that applies to analog film as well.
  • -

    How to avoid

    +

    How to avoid

    LCA can be avoided if shot stopped down. Purple or blue fringes might benefit from stopping down, too. They can be avoided in most cases if you expose for the highlights (i.e. don't overexpose). TCA can only not be avoided if you can use a better lens. Fixed Focal Length lenses are less prone to TCA than cheap zoom lenses. Converters are often very bad. You can avoid TCA while stitching if you don't use the corners where it is most prominent.

    -

    How to distinguish

    +

    How to distinguish

    If you want to correct color fringes by software you need to know which type they are. If all of the following points are met your image most likely contains true TCA:

      @@ -125,7 +125,7 @@
    • Color fringes should be in all corners the same direction pointing out from the center.
    -

    Difficulties to view

    +

    Difficulties to view

    [*]
    Artificial Red-Cyan TCA
    [*]
    Artificial Blue-Yellow TCA

    If you want to test your lens for CA the subject you shoot is critical. The visibility of TCA highly depends on the colors forming contrast edges. Here two artificial examples to illustrate this. In both images TCA was introduced by sizing one channel to 101%. In the upper image this was the red channel causing red-cyan fringes in the lower image sizing the blue channel to 101% caused blue-yellow fringes. @@ -133,7 +133,7 @@

    In the lower image both blue and yellow fringes are invisible on the more saturated yellow background. Where it turns to a lighter shade of yellow the blue fringes appear purple. The yellow fringes are green on the azure background.

    This shows that the best subject for CA determination is composed of neutral greys, black and not overexposed white. The following example is a quite good one - not overexposed, grey sky and no saturated colors.

    -

    Example with true TCA

    +

    Example with true TCA

    This image is reduced to 30% but still shows heavy TCA as a result of the usage of a cheap wide angle converter:

    [*]
    Image courtesy of © Thomas Niemann
    @@ -174,7 +174,7 @@

    CA tCA02.jpg[*]

    The remaining light blue fringes can not be corrected. They are most likely not lens TCA but an effect as described under What it is not.

    -

    Example with no TCA but purple fringes

    +

    Example with no TCA but purple fringes

    This image is reduced to 40%. It shows purple fringes but no chromatic aberration:

    CA fringes00.jpg[*]

    Here the enlargement of the upper left corner and the moving channels: @@ -183,7 +183,7 @@

    As you can notice, the details on the grey tree don't move at all. It's only the left (outside) side of the overexposed sky areas that changes.


    -

    Strange Example

    +

    Strange Example

    This crop (lower left corner) is from a frequently used combo: Nikon D70 with Nikkor 10.5mm full frame fisheye (image (c) Andrey Ilyin). At the first glance this looks like normal red-cyan TCA. But if you try to correct this one, it will drive you nuts. Have a close look on the moving channels:

    CA strange01.jpg[*] CA strange01.gif[*]

    (switch on GIF animation to see the different channels in the right image) @@ -191,7 +191,7 @@

    CA strange02.jpg[*]

    This weird kind of colored fringes is definitely not lens CA. I can only think of some effects of bayer interpolation, but this is wild guess.

    -

    How to correct

    +

    How to correct

    In many cases it would be enough to adjust the size of the color channels to correct for TCA. However, correction might not always be satisfactory even if it is of the true tCA type. This might have different causes:

      @@ -202,19 +202,19 @@
    • Adjustment is too coarse. Depending on the resolution of the image sub-pixel alignment might be necessary.
    -

    Easy

    +

    Easy

    The most convenient way to correct TCA is to use a tool like the Adobe Raw Converter, Picture Window Pro or PTLens[*] offer. You zoom into a corner with good details and use a pair of sliders to adjust the image size for the red channel (red-cyan fringes) and the blue channel (blue-yellow fringes - the purple-green type is a mixture of red-cyan and blue-yellow type). Both ways allow for sub-pixel adjustment.

    This technique (including sub pixel adjustment) can be peformed by hand with any image editor that can make size adjustments to single channels. If the step size is too large, the image can be upsampled prior to correction.

    However, if you use one of those easy approaches look closely at different areas of the image - especially different distances from the image center. It could well be that correction in one area causes fringes in another one. If this is the case TCA in this image doesn't follow an easy linear scheme and hence can't be corrected this way - see next paragraph.

    -

    Precise

    +

    Precise

    Panorama tools Radial Shift[*] filter allows for separate correction of red, green and blue channel using a third degree polinomial. This kind of curve should be complex enough to correct for any kind of non-linear TCA.

    Unfortunately it was very difficult to estimate the correct values until 2004 when Jim Watters and Erik Krause found a way to determine suitable correction coefficients using different calculation approaches.

    Based on this work Eric Gerds developed a Photoshop CS Javascript called PTShift[*] that allows for manual correction in different areas and passes the found deviations as virtual control points to PTOptimizer in order to calculate correction coefficients.

    Alternatively the correction coefficients can be calculated entirely with hugin and PTOptimizer, for more details see this hugin tutorial on correcting TCA. For more precise results, octave (script on the hugin page: [1]) can be used to calculate the coefficients rather than PTOptimizer. An alternative to the Radial Shift[*] filter is fulla which can also correct TCA, barrel distortion and vignetting at the same time.

    Erik Krause[*] 17:18, 2 May 2005 (EDT)

    -

    External links

    +

    External links

    • Wikipedia:Chromatic aberration[*]
    • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Color_correct_tiff.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Color_correct_tiff.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Color_correct_tiff.html 2016-01-22 17:51:10.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Color_correct_tiff.html 2017-04-22 17:02:53.000000000 +0000 @@ -1,10 +1,10 @@ - + Color correct tiff - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Colour_profile.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Colour_profile.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Colour_profile.html 2016-01-22 17:51:10.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Colour_profile.html 2017-04-22 17:02:53.000000000 +0000 @@ -1,10 +1,10 @@ - + Colour profile - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Contrast.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Contrast.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Contrast.html 2016-01-22 17:51:10.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Contrast.html 2017-04-22 17:02:54.000000000 +0000 @@ -1,10 +1,10 @@ - + Contrast - PanoTools.org Wiki - - + + @@ -33,7 +33,7 @@

      Contrast is the difference in visual properties that makes an object distinguishable from other objects and the background.

      -

      External links

      +

      External links

      • wikipedia page on contrast[*]
      • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Control_Point_Detector_Parameters.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Control_Point_Detector_Parameters.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Control_Point_Detector_Parameters.html 2016-01-22 17:51:10.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Control_Point_Detector_Parameters.html 2017-04-22 17:02:54.000000000 +0000 @@ -1,10 +1,10 @@ - + Control Point Detector Parameters - PanoTools.org Wiki - - + + @@ -45,7 +45,7 @@
      -

      Cpfind

      +

      Cpfind

      • For outdoor projects, single and multi-row panorama
      • @@ -161,7 +161,7 @@
      • MacOSX: Both in the bundle version as in the cmake version you need to add cpfind without browsing for it and without adding a pathname, just cpfind.
      -

      Panomatic

      +

      Panomatic

      • For general projects
      • @@ -214,7 +214,7 @@ --linearmatch -o %o %i -

        Autopano-sift-C

        +

        Autopano-sift-C

        • For general projects
        • @@ -277,7 +277,7 @@ --maxmatches %p %o %k -

          Autopano by Alexandre Jenny

          +

          Autopano by Alexandre Jenny

          @@ -308,7 +308,7 @@
        • Don't mix autopano by A. Jenny with autopano from autopano-sift-C package.
        • -

          Align_image_stack

          +

          Align_image_stack

          • As standalone detector for HDR images
          • @@ -344,7 +344,7 @@


          -

          Linefind

          +

          Linefind

          • Vertical features autodetector
          • @@ -371,7 +371,7 @@
          -o %o %s
          -

          Geocpset

          +

          Geocpset

          • Add geometric control points to images without features. This add control points based on the current position of the images.
          • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Control_point_generators.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Control_point_generators.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Control_point_generators.html 2016-01-22 17:51:10.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Control_point_generators.html 2017-04-22 17:02:54.000000000 +0000 @@ -1,10 +1,10 @@ - + Control point generators - PanoTools.org Wiki - - + + @@ -45,7 +45,7 @@
          -

          All-purpose CP generators

          +

          All-purpose CP generators

          Autopano

          Autopano-sift

          Autopano-sift-C @@ -53,14 +53,14 @@

          Match-n-shift[*] should have its own page, as it is only mentioned here[*].

          Panomatic

          -

          Obsolete

          +

          Obsolete

          PanoPoints[*]

          -

          Special purpose generators

          +

          Special purpose generators

          align_image_stack for align images of an image stack.

          Linefind for finding of vertical line control points.

          -

          Specific purposes

          +

          Specific purposes

          Align a stack of photos

          diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Control_points.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Control_points.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Control_points.html 2016-01-22 17:51:10.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Control_points.html 2017-04-22 17:02:54.000000000 +0000 @@ -1,10 +1,10 @@ - + Control points - PanoTools.org Wiki - - + + @@ -49,7 +49,7 @@ These have various uses, but mainly they are good for Leveling a Finished Panorama[*] and perspective correction.

          -

          Historical note

          +

          Historical note

          Before PTPicker[*], the GUI front-ends[*] and autopano/autopano-sift, control points were set by cutting and pasting the flags below into source photos. You were allowed up to twenty pairs of points and twenty images - Panorama Tools would read the bar codes embedded in diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cpclean.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cpclean.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cpclean.html 2016-01-22 17:49:35.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cpclean.html 2017-04-22 17:02:54.000000000 +0000 @@ -1,10 +1,10 @@ - + Cpclean - PanoTools.org Wiki - - + + @@ -43,22 +43,22 @@

        -

        Step 1

        +

        Step 1

        optimises each pair of photos one at a time and deletes all points that can't be made to fit.

        -

        Step 2

        +

        Step 2

        optimises the whole project together using more conservative assumptions and deletes another round of points. If there is more than one image chain present this step is not done.

        -

        result

        +

        result

        The .pto project file is returned unoptimised, the only change is that there are less control points, this means the project doesn't have to be optimised before you start.

        By using this optimisation step cpclean is able to look not just at the current project settings and find 'bad' points, but is able to find points that are 'bad' under a range of circumstances.

        -

        usage

        +

        usage

        A typical usage would be:

         cpclean --output=output.pto project.pto
         
        -

        Options

        +

        Options

        Vary the threshold with the --max-distance parameter (defaults to 2, i.e. points with a distance error greater than twice the standard deviation are deleted):

         cpclean --max-distance=1 --output=output.pto project.pto
        diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cpfind.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cpfind.html
        --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cpfind.html	2016-01-22 17:51:32.000000000 +0000
        +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cpfind.html	2017-04-22 17:02:54.000000000 +0000
        @@ -1,10 +1,10 @@
         
         
         
        -
        +
         Cpfind - PanoTools.org Wiki
        -
        -
        +
        +
         
         
         
        @@ -57,7 +57,7 @@
         
      -

      General and description

      +

      General and description

      Cpfind is a control point detector for hugin. It expects a project file as input and write a project file with control points on success. The general usage is

           cpfind -o output.pto input.pto
      @@ -70,11 +70,11 @@
       
    • In a second step, the feature matching, all keypoints of two images are matched against each other to find features which are on both images. If this matching was successful two keypoints in the two images become one control point.
    -

    Usage

    -

    Rectilinear and fisheye images

    +

    Usage

    +

    Rectilinear and fisheye images

    Cpfind can find control points in rectilinear and fisheye images. To achieve good control points images with a high horizontal field of view (e.g. ultra wide rectilinear or fisheye) are therefore remapped into a conformal space (cpfind is using the stereographic projection[*]) and the feature matching occurs in this space. Before writing the control points the coordinates are remapped back to the image space. This happens automatic depending on the information about the lens in the input project file. So check that your input project file contains reasonable information about the used lens.

    -

    Using celeste

    +

    Using celeste

    Outdoor panorama often contains clouds. Clouds are bad areas for setting control points because they are moving object. Cpfind can use the same algorithm as celeste_standalone to masked out areas which contains clouds. (This is only done internal for the keypoint finding step and does not change the alpha channel of your image. If you want to generate a mask image use celeste_standalone). To run cpfind with celeste use

       cpfind --celeste -o output.pto input.pto
    @@ -83,26 +83,26 @@
     

    So running cpfind with celeste leads to a better "control point quality" for outdoor panorama (e.g. panorama with clouds). Running cpfind with celeste takes longer than cpfind alone. So for indoor panorama this option does not need to specified (because of longer computation time).

    The celeste step can be fine tuned by the parameters --celesteRadius and --celesteThreshold.

    -

    Matching strategy

    -

    All pairs

    +

    Matching strategy

    +

    All pairs

    This is the default matching strategy. Here all image pairs are matched against each other. E.g. if your project contains 5 images then cpfind matches the image pairs: 0-1, 0-2, 0-3, 0-4, 1-2, 1-3, 1-4, 2-3, 2-4 and 3-4

    This strategy works for all shooting strategy (single-row, multi-row, unordered). It finds (nearly) all connected image pairs. But it is computational expensive for projects with many images, because it test many image pairs which are not connected.

    -

    Linear match

    +

    Linear match

    This matching strategy works best for single row panoramas:

       cpfind --linearmatch -o output.pto input.pto
     

    This will only detect matches between adjacent images, e.g. for the 5 image example it will matches images pairs 0-1, 1-2, 2-3 and 3-4. The matching distance can be increased with the switch --linearmatchlen. E.g. with --linearmatchlen 2 cpfind will match a image with the next image and the image after next, in our example it would be 0-1, 0-2, 1-2, 1-3, 2-3, 2-4 and 3-4.

    -

    Multirow matching

    +

    Multirow matching

    This is an optimized matching strategy for single and multi-row panorama:

       cpfind --multirow -o output.pto input.pto
     

    The algorithm is the same as described in multi-row panorama. By integrating this algorithm into cpfind it is faster by using several cores of modern CPUs and don't caching the keypoints to disc (which is time consuming). If you want to use this multi-row matching inside hugin set the control point detector type to All images at once, this is so that Hugin passes all images to cpfind and lets cpfind apply the multirow matching smarts itself.

    -

    Matching overlapping images (prealigned panorama)

    +

    Matching overlapping images (prealigned panorama)

    This setting is for finding control points in panorama, in which the rough positions of the images are already known (e.g. when using a template or when generating the pto file by a script)

       cpfind --prealigned -o output.pto input.pto
    @@ -110,7 +110,7 @@
     

    This algorithm does only matches images pairs, which overlaps and don't already have control point. All other image pairs are ignored.

    The algorithm is the same as described in prealigned control point detector setting. By integrating this algorithm into cpfind it is faster by using several cores of modern CPUs and don't caching the keypoints to disc (which is time consuming). If you want to use this prealigned matching inside hugin set the control point detector type to All images at once.

    -

    Keypoints caching to disc

    +

    Keypoints caching to disc

    The calculation of keypoints takes some time. So cpfind offers the possibility to save the keypoints to a file and reuse them later again. With --kall the keypoints for all images in the project are saved to disc. If you only want the keypoints of particular image use the parameter -k with the image number:

       cpfind --kall input.pto
    @@ -127,8 +127,8 @@
     

       cpfind --clean input.pto
     
    -

    Extended options

    -

    Feature description

    +

    Extended options

    +

    Feature description

    For speed reasons cpfind is using images, which are scaled to their half width and height, to find keypoints. With the switch --fullscale cpfind is working on the full scale images. This takes longer but can provide "better" and/or more control points.

    The feature description step can be fine-tuned by the parameters:

    --sieve1width <int> Sieve 1: Number of buckets on width (default: 10) @@ -139,7 +139,7 @@

    Cpfind stores maximal sieve1width * sieve1height * sieve1size keypoints per image. If you have only a small overlap, e.g. for 360 degree panorama shoot with fisheye images, you can get better results if you increase sieve1size. You can also try to increase sieve1width and/or sieve1height.

    Effectively cpfind splits your image in rectangles or buckets: sieve1width horizontally by sieve1height vertically. It will try to find sieve1size keypoints per bucket. This ensures a reasonably uniform distribution of interest points over your image. These features will be matched in the matching step. With the default parameters, up to 10000 interest points will be used in the feature matching step.

    -

    Feature matching

    +

    Feature matching

    Fine-tuning of the matching step by the following parameters:

    --ransaciter <int> Ransac: iterations (default: 1000)

    --ransacdist <int> Ransac: homography estimation distance threshold (pixels) (default: 25) diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Crop_factor.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Crop_factor.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Crop_factor.html 2016-01-22 17:51:32.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Crop_factor.html 2017-04-22 17:02:54.000000000 +0000 @@ -1,10 +1,10 @@ - + Crop factor - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cropped_TIFF.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cropped_TIFF.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cropped_TIFF.html 2016-01-22 17:51:32.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cropped_TIFF.html 2017-04-22 17:02:54.000000000 +0000 @@ -1,10 +1,10 @@ - + Cropped TIFF - PanoTools.org Wiki - - + + @@ -41,7 +41,7 @@

    enblend can read these cropped TIFF files since version 2.4, so this technique is useful when working with enblend. Additionally the gimp[*] image editor can open multilayer cropped TIFF files directly, though it cannot save them. It can be convenient to edit the alpha masks in multi-layer TIFFs before passing them to enblend with the help of a script; see Multi-Layer TIFF editing with the Gimp[*].

    -

    Preserving TIFF offset when editing with GIMP

    +

    Preserving TIFF offset when editing with GIMP

    Using cropped intermediate images is very useful - they use less diskspace and less resources are needed to generate them. Unfortunately, GIMP does not preserve the TIFF offset - and this is very unfortunate if you want to mask out some passing object in some of the remapped images, and blend them later with enblend. There's a way to preserve TIFF offset, though. First we have to figure out what the original offset of the image we will be editing is (of course, it is suggested to create a backup copy of the image anyway). To find that out, execute:

    tiffdump <remappedd.tiff> | grep Position
    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cubic.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cubic.html
    --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cubic.html	2016-01-22 17:51:32.000000000 +0000
    +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cubic.html	2017-04-22 17:02:54.000000000 +0000
    @@ -1,10 +1,10 @@
     
     
     
    -
    +
     Cubic Projection - PanoTools.org Wiki
    -
    -
    +
    +
     
     
     
    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cubic_Projection.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cubic_Projection.html
    --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cubic_Projection.html	2016-01-22 17:51:32.000000000 +0000
    +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cubic_Projection.html	2017-04-22 17:02:54.000000000 +0000
    @@ -1,10 +1,10 @@
     
     
     
    -
    +
     Cubic Projection - PanoTools.org Wiki
    -
    -
    +
    +
     
     
     
    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cylindrical.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cylindrical.html
    --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cylindrical.html	2016-01-22 17:51:32.000000000 +0000
    +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Cylindrical.html	2017-04-22 17:02:54.000000000 +0000
    @@ -1,10 +1,10 @@
     
     
     
    -
    +
     Cylindrical Projection - PanoTools.org Wiki
    -
    -
    +
    +
     
     
     
    @@ -38,7 +38,7 @@
     

    Cylindrical projection is the native output format of a rotating (scanning) panorama camera (like panoscan, spheron and others) with rectilinear lens or from a swing lens camera (Horizon, Noblex...)

    Other forms of cylindrical projections which can represent the poles, such as the Mercator Projection[*] common in map-making, are not typically used in panoramic imaging.

    -

    External links

    +

    External links

    -

    Why would you do that?

    +

    Why would you do that?

    Creating and manipulating panoramas is something that should obviously be done in a graphical tool[*]. This is true, but perhaps you find that you are spending more time operating a computer than being a photographer. This is an indication that something is wrong - The computer exists to do the boring work and scripting is one way to make this happen.

    -

    PanoTools 'Scripting'

    +

    PanoTools 'Scripting'

    The file format first used in Helmut Dersch's Panorama tools is often referred to as a 'script', but a 'PanoTools' script is really a data file describing a 'panorama stitching project'.

    Although these original PanoTools are less used today, the file format is alive and well with several variations used as project files by PTGui[*], PTAssembler[*], hugin and related tools. These files are simple plain-text, sometimes it is useful to modify them directly with a text editor - Further on we will introduce various methods for manipulating them via the 'programming' kind of scripts.

    -

    Simple command-line stitching

    +

    Simple command-line stitching

    Lets start with a basic but common use case: Photographers with quality panoramic tripod heads[*] can reproduce identical sets of photos every time, in this situation there is no need to create a new stitching project for every panorama, it is enough to use a single project as a template.

    This example takes a pre-existing project called template.pto, created with three photos. It uses nona for remapping, and enblend for blending the remapped photos into a finished TIFF image:

    @@ -96,10 +96,10 @@

     nona -o out -m TIFF template.pto DSC_1234.JPG DSC_1235.JPG DSC_1236.JPG
     
    -

    Creating hugin projects on the command-line

    +

    Creating hugin projects on the command-line

    The entire panorama creation process can be performed on the command-line, and therefore scripted, doing this involves a series of steps similar to the workflow in a GUI tool.

    -

    Generating the project file

    +

    Generating the project file

    Most of hugin tools take a pto file as input and output. So the first step is to create this pto file. For this purpose use pto_gen.

      pto_gen *.jpg
    @@ -110,7 +110,7 @@
     

    You can specify more options to the project (see pto_gen for details).

    -

    Generating control points

    +

    Generating control points

    There are a number of tools available for generating control points from groups of photos, like cpfind. Here is an example using cpfind

      cpfind --multirow -o project.pto project.pto
    @@ -121,20 +121,24 @@
     

    This will create a .pto project with control points (if any) linking the three photos, note that the projection format (f0, rectilinear) of the input photos and approximate horizontal angle of view (v50, 50 degrees) have to be specified.

    -

    Pruning control points

    +

    Pruning control points

    This still isn't a finished panorama, at the very least this involves optimising the camera positions and then rendering the output. -

    You could go ahead and optimise this project file straight away, but this can be a bit hit and miss. First it is a good idea to clean up the control points. There are currently two useful tools for cleaning control points: celeste removes points from areas of sky and ptoclean[*] removes points with large error distances, first celeste_standalone: +

    You could go ahead and optimise this project file straight away, but this can be a bit hit and miss. First it is a good idea to clean up the control points. There are currently two useful tools for cleaning control points: celeste removes points from areas of sky and cpclean removes points with large error distances, first celeste_standalone:

     celeste_standalone -i project.pto -o project.pto
     
    -

    Then ptoclean[*]: +

    Then cpclean:

    -
     ptoclean -v --output project.pto project.pto
    +
     cpclean -o project.pto project.pto
     

    Note that in both cases we are overwriting the input project.pto file with the cleaned output. If you want you can create intermediate temporary files and keep each step in case you need to backtrack. -

    (Other control point cleaners are ptscluster[*] and the new cpclean) +

    Other control point cleaners are ptscluster[*] and ptoclean. cpclean has largely replaced ptoclean, but you could still run it like this:

    -

    Optimising positions and geometry

    +
     ptoclean -v --output project.pto project.pto
    +
    +


    +

    +

    Optimising positions and geometry

    Up to now, the project file simply contains an image list and control points, the images are not yet aligned, you can do this by optimising geometric parameters with the autooptimiser tool:

     autooptimiser -a -l -s -o project.pto project.pto
    @@ -151,7 +155,7 @@
     

    (PToptimizer[*] is an alternative geometrical optimiser)

    -

    Optimising photometric parameters

    +

    Optimising photometric parameters

    Photos have photometric exposure variables which can be optimised in much the same way as aligning positions. Doing this can remove brightness, white balance[*] and vignetting differences between photos, giving better blending or allowing creation of HDR images.

    For doing an automatic photometric optimisation like Hugin's assistant, run autooptimiser with -m switch:

    @@ -165,15 +169,23 @@
     pto_var --opt Vb,Vx,Ra,EeV -o project.pto project.pto
      vig_optimize -o project.pto project.pto
     
    -

    Setting output options

    +

    Setting output options

    For setting the output option (like on the stitcher tab) use pano_modify:

       pano_modify -o project.pto --center --straighten --canvas=AUTO --crop=AUTO project.pto
     

    This command will straighten the pano, center it on the canvas, calculates the optimal size and calculates the optimal output region.

    -

    Example work flow similar to assistant in Hugin GUI

    -

    We will use the same project file for all single steps. We always overwrite the same project file. You can also use another filename for every step. +

    Example work flow similar to assistant in Hugin GUI

    +

    Hugins assistant can also be used from the command line +

    +
       hugin_executor --assistant project.pto
    +
    +

    Or you can also put the task into PTBatcherGUI queue +

    +
       PTBatcherGUI --assistant project.pto
    +
    +

    In the following the single steps of the assistant are described. We will use the same project file for all single steps. We always overwrite the same project file. You can also use another filename for every step.

    1) Generate pto file

        pto_gen -o project.pto *.jpg
    @@ -200,10 +212,13 @@
     

    7) Now create output

    -
        hugin_executor --prefix=prefix project.pto
    +
        hugin_executor --stitching --prefix=prefix project.pto
     
    -

    Stitching hugin projects on the command-line

    -

    Rendering images

    +

    Stitching hugin projects on the command-line

    +

    The stitching option of hugin_executor can be broken apart into separate command lines. +

    The simplest case is remapping and blending. +

    +

    Remapping (Rendering) images

    The hugin tool for remapping and distorting the photos into the final panorama frame is nona, it uses the .pto project file as a set of instructions:

     nona -m TIFF_m -o project project.pto
    @@ -211,14 +226,14 @@
     

    This nona command creates one remapped TIFF image for each of the input photos, these will be named project0000.tif, project0001.tif, project0002.tif etc...

    (PTblender is an alternative renderer to nona)

    -

    Blending

    +

    Blending

    nona can do rudimentary assembly of the remapped images, but a much better tool for this is enblend, feed it the images, it will pick seam lines and blend the overlapping areas:

     enblend -o project.tif project0000.tif project0001.tif project0002.tif ...
     

    Finally this produces the stitched panorama: project.tif

    -

    Holding it all together with panostart

    +

    Holding it all together with panostart

    The .pto.mk Makefile helps with the stitching at the end of the process, but doesn't help with the bits at the beginning such as: identifying which photos go in which panorama, generating control points, pruning and optimising.

    panostart[*] is a prototype tool that does it all. Given a list of photos in a folder, it identifies likely panoramas by comparing EXIF timestamps and writes a meta-Makefile containing: rules for generating .pto projects with match-n-shift[*], rules for generating corresponding .pto.mk Makefiles with pto2mk[*], rules for stitching the projects with make, plus some other rules for creating useful distributable output.

    A typical panostart[*] command for dealing with a folder full of photos taken with a pocket point-and-shoot camera on auto-exposure might look like this: @@ -232,7 +247,7 @@

    Some of the resulting panoramas will have position, cropping and stitching errors. Fix these by editing the relevant .pto projects in hugin or another tool, when you type make again on the command-line, only those projects that have changed will be restitched.

    Another advantage of doing things this way is reproducibility: delete all the (enormous) TIFF output panoramas and all you need to keep permanently are the photos, the meta-Makefile and the associated .pto projects. If you ever need to recreate the TIFF panoramas in the future, just type make. If you know the name of the TIFF file you want, just type 'make project.tif' and only a single panorama will be processed.

    -

    Panotools::Script for manipulating project files

    +

    Panotools::Script for manipulating project files

    The name is a historical mistake, Panotools::Script[*] is a perl library for working with hugin .pto projects, though it could be extended in the future to cover any of the related file formats. Many of the command-line tools described in this document are written with this library.

    Here is a trivial script, all it does is open and save a .pto project, it also resets the output ('p' Panorama line) angle of view to 360 degrees (v360), the projection format to equirectangular (f2) and the output pixel size to 4096x2048 pixels (w4096 h2048):

    @@ -257,8 +272,8 @@ } $pto->Write ($ARGV[0]);
    -

    Full list of command-line tools

    -

    Control point generation

    +

    Full list of command-line tools

    +

    Control point generation

    • cpfind - Hugins own control point detector
    • @@ -283,7 +298,7 @@
    • autopano - Keypoint matcher, part of autopano-sift-c[*] and not to be confused with autopano
    -

    Project file modification

    +

    Project file modification

    • pto_gen - Generates a new pto project from image files
    • @@ -322,7 +337,7 @@
    • ptosplit[*] - Extract subsets of images from a project into a new project
    -

    Control point pruning

    +

    Control point pruning

    • ptscluster - Clean 'bad' control points based on distances and position
    • @@ -333,7 +348,7 @@
    • cpclean - An improved version of ptoclean[*], part of the hugin project
    -

    Optimisation

    +

    Optimisation

    -

    Rendering

    +

    Rendering

    • nona - Default hugin rendering engine
    • @@ -355,7 +370,7 @@
    • PTAInterpolate[*] - Create intermediate images from PanoTools projects
    -

    Blending

    +

    Blending

    • enblend - Merge partially overlapping images with multiresolution splines
    • @@ -386,7 +401,7 @@
    • PTblender - Correct colour and brightness of overlapping images
    -

    Misc

    +

    Misc

    • panostart[*] - All-in-one panorama workflow via Makefiles
    • @@ -403,14 +418,14 @@
    • pafextract[*] - Tool to use panoglview as a zenith and nadir editor[*]
    -

    Chromatic aberration

    +

    Chromatic aberration

    -

    Querying

    +

    Querying

    • ptograph - Draw undirected graphs of projects
    • @@ -425,7 +440,7 @@
    • pano_trafo - transform between image and panorama coordinates (and vice versa)
    -

    TIFF files

    +

    TIFF files

    • PTtiff2psd - Join multiple TIFF images into a multilayer PSD file
    • @@ -436,7 +451,7 @@
    • PTuncrop - Replace offsets in TIFF files with empty pixels
    -

    Output formats

    +

    Output formats

    • qtvr2img - Extract six cubefaces from a cubic QTVR
    • @@ -457,10 +472,10 @@
    • erect2mercator - Create a .pto project for extracting a mercator view from an equirectangular image
    -

    Older tools

    +

    Older tools

    Helmut Dersch's PTOptimizer and PTStitcher were the original command-line tools. These are not really recommendable any more as they require an older, buggier version of the libpano12[*] library, they are closed source so don't work on modern systems such as OS X or 64bit Linux, and are lacking in features compared to modern replacements such as autooptimiser and nona.

    -

    Useful Image processing tools

    +

    Useful Image processing tools

    • ImageMagick[*] - Many utilities for converting, manipulating and resizing images
    • @@ -484,5 +499,5 @@
      - Retrieved from "http://wiki.panotools.org/index.php?title=Panorama_scripting_in_a_nutshell&oldid=15702[*]"
      + Retrieved from "http://wiki.panotools.org/index.php?title=Panorama_scripting_in_a_nutshell&oldid=15909[*]" \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Panorama_tools.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Panorama_tools.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Panorama_tools.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Panorama_tools.html 2017-04-22 17:03:02.000000000 +0000 @@ -1,10 +1,10 @@ - + Panorama tools - PanoTools.org Wiki - - + + @@ -30,7 +30,7 @@
      From PanoTools.org Wiki
      -

      What are the panorama tools

      +

      What are the panorama tools

      The Panorama Tools, also known as The PanoTools are a free suite of programs and libraries originally written by the german physics and mathematics professor Helmut Dersch[*]. PanoTools provides a powerful framework for re-projecting and blending multiple source images into immersive panoramics of many types. An updated version of the PanoTools library serves as the underlying core engine for many software panorama GUI front-ends[*].

      Helmut started development on PanoTools in 1998, producing some of the most professional and versatile software available for building panoramas and more, but had to stop development in 2001 due to legal harrassment and claims of patent infringement by a company called IPIX[*]. In 2003 he released some modifications to the java-based online panorama viewer PTViewer[*]. One involved a standalone .exe version and another version could display HDR (high dynamic range) panoramas. The most recent release from Helmut is PTViewerME, a panorama viewer for PDAs and mobile devices. The homepage of Helmut can be found here. It has no links to his older work on PanoTools, but some list members managed to make a copy of his old homepage before it shut down. Thanks to Kathy Wheeler the page could be reconstructed completely: http://www.panotools.org/dersch

      After Helmut stopped developing Panorama Tools, the members of his mailing-list took over development, and began enhancing the software suite on their own. They moved the project to SourceForge and have fixed some bugs and developed additional functionality since. @@ -41,7 +41,7 @@

    • Project summary on SourceForce
    -

    What software is included in the panorama tools

    +

    What software is included in the panorama tools

    PanoTools is a collection of free tools for Panorama and 3D Object creation. It consists of:

    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Panotools.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Panotools.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Panotools.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Panotools.html 2017-04-22 17:03:02.000000000 +0000 @@ -1,10 +1,10 @@ - +Panorama tools - PanoTools.org Wiki - - + + @@ -31,7 +31,7 @@
    From PanoTools.org Wiki
    (Redirected from Panotools[*])
    -

    What are the panorama tools

    +

    What are the panorama tools

    The Panorama Tools, also known as The PanoTools are a free suite of programs and libraries originally written by the german physics and mathematics professor Helmut Dersch[*]. PanoTools provides a powerful framework for re-projecting and blending multiple source images into immersive panoramics of many types. An updated version of the PanoTools library serves as the underlying core engine for many software panorama GUI front-ends[*].

    Helmut started development on PanoTools in 1998, producing some of the most professional and versatile software available for building panoramas and more, but had to stop development in 2001 due to legal harrassment and claims of patent infringement by a company called IPIX[*]. In 2003 he released some modifications to the java-based online panorama viewer PTViewer[*]. One involved a standalone .exe version and another version could display HDR (high dynamic range) panoramas. The most recent release from Helmut is PTViewerME, a panorama viewer for PDAs and mobile devices. The homepage of Helmut can be found here. It has no links to his older work on PanoTools, but some list members managed to make a copy of his old homepage before it shut down. Thanks to Kathy Wheeler the page could be reconstructed completely: http://www.panotools.org/dersch

    After Helmut stopped developing Panorama Tools, the members of his mailing-list took over development, and began enhancing the software suite on their own. They moved the project to SourceForge and have fixed some bugs and developed additional functionality since. @@ -42,7 +42,7 @@

  • Project summary on SourceForce
  • -

    What software is included in the panorama tools

    +

    What software is included in the panorama tools

    PanoTools is a collection of free tools for Panorama and 3D Object creation. It consists of:

    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Parallax.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Parallax.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Parallax.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Parallax.html 2017-04-22 17:03:02.000000000 +0000 @@ -1,10 +1,10 @@ - +Parallax - PanoTools.org Wiki - - + + @@ -42,13 +42,13 @@ -

    Intro

    +

    Intro

    [*]
    Parallax demo © Bernhard Vogl (GIF animation must be turned on)

    If you shoot the same scene from a slightly different point of view, the foreground will be shifted in relation to the background, as in this example image.

    Parallax occures in panoramic photography if camera and lens are not rotated around the Entrance pupil of the lens. A difference caused by parallax will be visible in the overlap between two adjacent images.

    Parallax errors are sometimes very hard to retouch, since necessary background details might be obscured by foreground details. A useful way to fix these kinds of errors is to 'invent' some background details.

    -

    Calculation

    +

    Calculation

    Parallax depends on the object distance d\,, the displacement of the no-parallax-point r\, and half the rotation angle between two shots, the off axis angle \alpha \,. Then the half parallax angle \beta \, will be: @@ -56,7 +56,7 @@

    Since d\, usually is far larger than r\, this could be abbreviated to \beta =atan{\frac  {r*sin(\alpha )}{d}}

    \beta \, applies in both images that overlap in opposite directions, hence the value must be doubled to get the actual parallax error. Now the maximum error in pixels for the ready stitched panorama can be calculated: For a 360° panorama (and \beta \, in degree) this is simply PixelError={\frac  {2*\beta *PanoramaWidth}{360}}

    -

    Examples

    +

    Examples

    If you shoot 4 images around, \alpha \, is 45°. Given an object 1m from the lens the maximum (relative to infinity) parallax error will be for a displacement r\, of the no-parallax-point:

    @@ -135,7 +135,7 @@
    19px
    -

    See also

    +

    See also

    -

    External Links

    +

    External Links

    Max Lyon's panoramic parallax error calculator.

    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Perspective_correction.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Perspective_correction.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Perspective_correction.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Perspective_correction.html 2017-04-22 17:03:03.000000000 +0000 @@ -1,10 +1,10 @@ - + Perspective correction - PanoTools.org Wiki - - + + @@ -57,29 +57,29 @@ -

    Intro

    +

    Intro

    This tutorial has no direct relevance to panorama creation. However, perspective correction is an issue for panorama creation as well, if you shoot your images tilted up or down. But please note that it is not necessary to correct the images prior to stitching - this is done in one go with alignment and stitching.

    Falling lines can be annoying not only in architectural photography. In former times photographers used shift lenses (some times called Perspective Correction lenses) to correct for that. These lenses usually are pretty expensive, not available in all needed focal lengths and limited to a certain amount of correction.

    Panotools are able to simulate a shift lens in terms of geometry (obviously they can't simulate it in terms of Depth of Field). There are some easy and straightforward techniques to achieve perspective correction depending on the direction the camera was tilted.

    -

    Prerequisites

    +

    Prerequisites

    This tutorial uses PTGui[*], but any of the GUI front-ends[*] would do. The usage of these programs is more or less identical although names differ sometimes a bit and some fields are in different locations. For hugin see tutorials on Simulating an architectural projection and Perspective correction

    In all cases you start a new project and add the image you want to correct by pressing the Add button.

    Go to Lens parameters tab and choose your lens type (presumable normal (rectilinear)). Enter the approximate Field of View if not already read from EXIF data (it's not necessary to have it exact). If you already have lens correction parameters enter them in the a, b and c fields else enter 0.0 for each.

    In Panorama settings tab choose Rectilinear ('flat') as output.

    -

    Warning

    +

    Warning

    Newer PTGui versions require you to allow optimization for Roll and Pitch when using the internal optimizer together with horizontal or vertical control points. Use the Panorama Tools Optimizer in this case.

    -

    Camera tilted up or down

    +

    Camera tilted up or down

    Using a shift lens this would have been shot with camera level and the lens shifted up or down. The respective parameter to simulate this in panotools is Pitch.

    -

    Camera level to the horizon

    +

    Camera level to the horizon

    - -
    [*]
    Falling lines example © Daniela Dürbeck
    +
    [*]
    Falling lines example © Daniela Dürbeck
    [*]
    corrected image in Panorama Editor
    +
    [*]
    corrected image in Panorama Editor

    If the camera was level to the horizon, one pair of vertical control points is enough to correct for falling lines. Go to Control points tab and set one point to the top of something vertical in your image in the left pane and one point at the bottom of the same vertical structure in the right pane. This vertical structure must not go through or near the image center. Be sure to choose Vertical line as control point type.

    On Optimizer tab check Interface: Advanced. Check Pitch and Use control points of: for Image 0. All other fields are unchecked. Then press Run Optimizer and confirm the following dialog. @@ -87,15 +87,15 @@

    In the example image I set one point at the middle light at the top of the tower, another approximately in the middle as far down as possible. Click the thumbs to enlarge.

    -

    Camera tilted and rotated

    +

    Camera tilted and rotated

    - - -
    [*]
    Falling lines example 2 © Erik Krause
    +
    [*]
    Falling lines example 2 © Erik Krause
    [*]
    Image in Control Point Editor
    +
    [*]
    Image in Control Point Editor
    [*]
    Corrected image in Panorama Editor
    +
    [*]
    Corrected image in Panorama Editor

    If the camera was rotated you need at least two vertical lines control point pairs. Go to Control points tab and set two point pairs on some vertical structures well apart from each other. For each line set a point in one pane at the bottom and in the other pane at the top of the same vertical structure. Be sure to choose Vertical line as control point type.

    If there is no second vertical structure you can use a horizontal one with a horizontal control points pair instead. @@ -105,12 +105,12 @@

    In the example image I set one point pair at top and bottom of the leftmost edge of the altar and one point pair at the rightmost edge. Click the thumbs to enlarge.

    -

    Camera panned sideways

    +

    Camera panned sideways

    - -
    [*]
    Panned camera example © Tom! Striewisch
    +
    [*]
    Panned camera example © Tom! Striewisch
    [*]
    corrected image
    +
    [*]
    corrected image

    Using a shift lens this would have been shot with camera film or sensor parallel to the subject and the lens shifted right or left. The respective parameter to simulate this in panotools is Yaw.

    It is not often necessary to correct for a panned camera since we are used to horizontal perspective distortion. One use is to shoot a mirror without the camera beeing mirrored. @@ -119,16 +119,16 @@

    Once you're done proceed as described under Adjust output.

    In the example image I set one point at the top border of the mirror at the left and right end. Click the thumbs to enlarge.

    -

    Camera panned and rotated

    +

    Camera panned and rotated

    If the camera was rotated during shooting you need at least two horizontal control point pairs or one horizontal and one vertical. Proceed in an analogous manner as for rotated camera if tilted upwards

    -

    Camera panned, tilted and rotated

    +

    Camera panned, tilted and rotated

    - -
    [*]
    Tight spaces example © Bruno Postle
    +
    [*]
    Tight spaces example © Bruno Postle
    [*]
    corrected image
    +
    [*]
    corrected image

    Using a shift lens (provided you get one with a short enough focal length) this would have been shot with camera level and film or sensor parallel to the subject and the lens shifted diagonally. The respective parameters to simulate this in panotools are Yaw, Pitch and Roll.

    Sometimes you have to shoot in very tight spaces but would like to show the image in a frontal view. @@ -139,7 +139,7 @@

    In the example image I set the lines at the vertical and horizontal edges between the slabs. Click the thumbs to enlarge. There is an excellent hugin tutorial available on how to correct this image: [1]

    -

    Summary

    +

    Summary

    Only few control point pairs are needed to correct for perspective distortion.

      @@ -162,15 +162,15 @@
    • Camera tilted, panned and rotated - set two pairs to two different vertical structures apart from each other and two pairs to different horizontal structures apart from each other. Optimize for Yaw, Pitch, Roll and eventually Field of View.
    -

    Adjust output

    +

    Adjust output

    In any case you should get an average control point distance of almost 0.0. And in any case the image will be shifted in some direction, hence the output image will be larger. The width and height of the output image can be adjusted, but it is not possible to crop either side individually in PTGui.

    Open Panorama Editor (Ctrl+E) and press the Fit panorama (Ctrl+F or menu: Edit -> Fit panorama) button. This will automatically adjust the output area to fit the corrected image.

    You should see the image shifted in some direction with the empty space filled with black. You can adjust the width and heigth of the frame using the small sliders at the bottom and right side of the window (actually you adjust the output Field of View). The additional black space must be cropped in some image editor.

    -

    Save

    +

    Save

    As a last step go to Create Panorama tab page and press Set optimum size. Choose either TIFF, JPG (and quality) or PNG as output and enter an appropriate file name. There should be a checkmark under Include Images. Then press Create Panorama.

    -

    Batch process

    +

    Batch process

    unfortunately this feature has been removed in recent PTGui versions!

    If you want to batch process some equally sized images with the same correction values (only possible if you shot them all from a tripod without moving the camera) you can simply add them to the project on Source Images tab. diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Perspective_distortion.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Perspective_distortion.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Perspective_distortion.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Perspective_distortion.html 2017-04-22 17:03:03.000000000 +0000 @@ -1,10 +1,10 @@ - + Perspective distortion - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pfstmo.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pfstmo.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pfstmo.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pfstmo.html 2017-04-22 17:03:03.000000000 +0000 @@ -1,10 +1,10 @@ - + Pfstmo - PanoTools.org Wiki - - + + @@ -33,7 +33,7 @@

    PFStmo is a set of programs implementing different tone mapping operators.

    -

    External links

    +

    External links

    • PFSTools about page at http://pfstools.sourceforge.net/
    • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pincushion_distortion.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pincushion_distortion.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pincushion_distortion.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pincushion_distortion.html 2017-04-22 17:03:03.000000000 +0000 @@ -1,10 +1,10 @@ - + Pincushion distortion - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pitch.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pitch.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pitch.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pitch.html 2017-04-22 17:03:03.000000000 +0000 @@ -1,10 +1,10 @@ - + Pitch - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PNG.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PNG.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PNG.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PNG.html 2017-04-22 17:03:01.000000000 +0000 @@ -1,10 +1,10 @@ - + PNG - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Portrait.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Portrait.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Portrait.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Portrait.html 2017-04-22 17:03:03.000000000 +0000 @@ -1,10 +1,10 @@ - + Portrait - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PPI.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PPI.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PPI.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PPI.html 2017-04-22 17:03:01.000000000 +0000 @@ -1,10 +1,10 @@ - + DPI - PanoTools.org Wiki - - + + @@ -49,23 +49,23 @@
    -

    Does DPI/PPI Matter for Panoramas?

    -

    Short answer

    +

    Does DPI/PPI Matter for Panoramas?

    +

    Short answer

    No!

    -

    Long Answer

    +

    Long Answer

    First, before we go further, let's define our terms.

    Pixel - all digital images are composed of pixels ("picture elements") - they are the smallest unit of detail within an image. To properly understand how much image data is in an image you must refer to the number of pixels. For instance, one can easily determine that a 3000x2400 pixel image has significantly more image data than a 640x480 pixel image. Expressing pixel counts - whether by dimensions (3000x2400) or absolute pixel counts (10 megapixels, or 10 million pixels) - is the only relevant, deterministic way of discussing the "size" of a digital image

    DPI = dots per inch. This is a common printers term, and refers to the number of *dots* a printer can lay down within a linear inch. A dot is the smallest unit of ink that can be layed down on paper, and is not equivalent to a pixel - a single pixel may generate multiple dots (as, for instance, you'd get if you fed a 300ppi image to a 1440dpi printer). DPI values associated with an image are essentially metadata - it provides additional context (print size) to the image data but does not directly affect the image data itself.

    PPI = pixels per inch. Confusingly similar to DPI, PPI is also a relative unit which determines the physical size of a pixel, so by knowing the pixe dimensions (3000x2400) and a PPI (300ppi), we can define the output size (in this case, 10x8 inches).

    Imagine a chess board as a simplified digital image - it is an 8x8 grid of squares, so it has an absolute pixel dimension of 8x8, or 64 pixels. It's easy to see that whether the chessboard is 8 inches (1 pixel, or square, per inch) across, or 80 feet (1 pixel per foot), it contains the exact same amount of data - 64 pixels worth.

    -

    Back to the question

    +

    Back to the question

    When producing panoramas, our source images are often assigned a ppi value by our camera or RAW processor. This value, often 72ppi or 300ppi, is completely arbitrary. Once we've run our images through stitching software, we often see the PPI value has been changed - usually reset to a default of 72ppi. This causes concern by those who notice this change, that somehow the image now has fundamentally less image data than, for instance, if it had stayed at 300ppi. In fact, all that has happened is a simple piece of metadata has been lost - the underlying image data is exactly the same.

    For the purposes of posting images online, or displaying in other digital mediums (DVD, CD-ROM, PDAs, etc), the ppi value is not even considered. All that matters for digital display is the absolute number of pixels. For people targeting these environments, do not worry about your image's PPI.

    For people targeting printed output, you'll need to adjust the PPI, and possibly the pixel dimensions (by "scaling") of your image using an image editor such as Photoshop in order to match both the PPI and physical dimensions of your output.

    -

    So, in a nutshell

    +

    So, in a nutshell

    The change in PPI during stitching does nothing to impact your image quality. If you're producing for print, you may have to re-set the PPI after stitching.

    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Projections.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Projections.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Projections.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Projections.html 2017-04-22 17:03:03.000000000 +0000 @@ -1,10 +1,10 @@ - + Projections - PanoTools.org Wiki - - + + @@ -70,93 +70,93 @@ -

    Cylindrical projections

    +

    Cylindrical projections

    Cylindrical projections resemble classic rectangular world maps. The horizontal Field of View is anything up to 360 degrees, horizontal distance is proportional to pan or yaw angle, vertical distance is related to the angle above or below the horizon.

    -

    Cylindrical projection

    -This is the projection most commonly used for printed panoramas with a large range of longitude (>120 degrees). It can be envisioned by imagining wrapping a flat piece of paper around the sphere tangent to the equator, and projecting a light out from the center of the sphere. A full range of longitude, up to 360 degrees, can be represented with a cylindrical projection, but near the poles, the images become very distorted, so a full range of latitude cannot be used. See Cylindrical Projection for more. +

    Cylindrical projection

    +This is the projection most commonly used for printed panoramas with a large range of longitude (>120 degrees). It can be envisioned by imagining wrapping a flat piece of paper around the sphere tangent to the equator, and projecting a light out from the center of the sphere. A full range of longitude, up to 360 degrees, can be represented with a cylindrical projection, but near the poles, the images become very distorted, so a full range of latitude cannot be used. See Cylindrical Projection for more.


    -

    Mercator projection

    -
    [*]
    Mercator Projection[*] h360° v140°
    +

    Mercator projection

    +
    [*]
    Mercator Projection[*] h360° v140°

    Mercator Projection[*] is a conformal projection. This shows less pronounced distortion than either cylindrical or Equirectangular Projection which otherwise look very similar. See mathworld's page for details

    -

    Miller projection

    -
    [*]
    h360° v147°
    +

    Miller projection

    +
    [*]
    h360° v147°

    Miller is similar to Mercator projection but with slightly more compression at the top and bottom of the image, this distortion is less pronounced than Equirectangular Projection making it a good format for printing.

    -

    Equirectangular projection

    - +

    Equirectangular projection

    +

    Also called the "non-projection", this is a representation of the sphere which maps longitude directly to the horizontal coordinate, and latitude to the vertical coordinate. This projection is often used for the source images in panoramic viewers like PTViewer[*]. See definition for Equirectangular Projection for more.

    -

    Lambert cylindrical equal area

    -
    [*]
    h360° v180°
    +

    Lambert cylindrical equal area

    +
    [*]
    h360° v180°

    This projection is 'equal area', making it very compact and suitable for purposes where distortion isn't important, similar to Sinusoidal projection.

    -

    Azimuthal projections

    +

    Azimuthal projections

    Azimuthal projections have rotational symmetry around the centre of the image, these are the kind of images that are produced by the various kinds of camera lens.

    -

    Rectilinear projection

    - +

    Rectilinear projection

    +

    This is a fundamental projection which can be envisioned by imagining placing a flat piece of paper tangent to a sphere and projecting a light out from its center. Obviously, only less than 180 degrees of longitude can be represented with this projection (exactly 180 degrees would require an image of infinite width), and in practice, far less.

    Most non-fisheye cameras produce a nearly rectilinear image over their field of view (albeit with varying amounts of unavoidable distortion). The Rectilinear projection is often used for prints of panoramas which cover less than ~120 degrees of longitude, since straight lines are preserved. See Rectilinear Projection for more.

    -

    Stereographic projection

    - +

    Stereographic projection

    +

    Stereographic Projection is a conformal form of Fisheye Projection where the distance from the centre is not equivalent to the spatial angle. This is much easier on the eye for printing and display purposes.

    Stereographic is limited to a maximum horizontal (and vertical) angle of 360 degrees, images over 330 degrees are pretty, but not very usable.

    -

    Fisheye projection

    - +

    Fisheye projection

    +

    In a Fisheye Projection, the distance from the centre of the image to a point is proportional to the equivalent spatial angle.

    -

    Equisolid projection

    -
    [*]
    h360° v360°
    +

    Equisolid projection

    +
    [*]
    h360° v360°

    This closely resembles a photograph of a mirrorball. Features are 'equal area' making it suitable for applications where distortion isn't critical. Equisolid is apparently the same as 'Lambert equal area azimuthal' cartographic projection.

    -

    Orthographic projection

    -
    [*]
    h180° v180°
    +

    Orthographic projection

    +
    [*]
    h180° v180°

    This is the view of a sphere, with a panorama mapped to the outside, seen from a far distance.

    -

    Other projections

    -

    Cubic projection

    -
    [*]
    Cubic Projection h90° v90° per cubeface
    +

    Other projections

    +

    Cubic projection

    +
    [*]
    Cubic Projection h90° v90° per cubeface

    Technically a sub-case of the Rectilinear Projection, the cubic projection is used as the source projection for fully spherical Quicktime[*] VR panoramas. See Cubic Projection for more.

    -

    Sinusoidal projection

    -
    [*]
    Sinusoidal Projection[*] h360° v180°
    +

    Sinusoidal projection

    +
    [*]
    Sinusoidal Projection[*] h360° v180°

    Sinusoidal Projection[*] is an equal area projection which makes it suitable for transmission of spherical images, as supported by the DevalVR[*] viewer.

    -

    Transverse mercator projection

    -
    [*]
    Transverse Mercator Projection[*] h147° v360°
    +

    Transverse mercator projection

    +
    [*]
    Transverse Mercator Projection[*] h147° v360°

    This is a Mercator projection rotated 90 degrees, suitable for a long vertical image.

    Transverse mercator is limited to a maximum horizontal angle of 180 degrees, though in practice images over 150 degrees are not very usable.

    -

    Pannini projection

    -
    [*]
    h180° v110°
    +

    Pannini projection

    +
    [*]
    h180° v110°

    The Pannini projection, also known as 'Recti-Perspective', 'Panini' or 'Vedutismo', keeps verticals vertical and radial lines straight. This can impart a strong sense of correct perspective to wide angle views that have a single central vanishing point. However this projection renders horizontal straight lines as curves. So-called "squeezed" variants reduce or eliminate that curvature, at the expense of bending the ends of long radial lines.

    The General Panini Projection is an adjustable version that can zoom continuously from rectilinear, through the standard Pannini projection, to the even more compressed orthographic cylindrical projection. It was introduced in early 2009 in the Panini panorama viewer. The version implemented in the PanoTools library in early 2010 also offers two generally useful flavors of squeeze.

    There were two earlier implementations in the PanoTools library, 'panini', which is actually not the Pannini projection but a very similar compressed cylindrical projection, and 'equirectangular panini', which is the standard Pannini, or stereographic cylindrical, projection.


    -

    Architectural projection

    -
    [*]
    h360° v152°
    +

    Architectural projection

    +
    [*]
    h360° v152°

    This is Miller projection above the horizon and Lambert Equal Area projection below. Suitable for scenes where the the ground isn't very interesting.

    -

    External links

    +

    External links

    • Description of panoramic image projections - http://www.cambridgeincolour.com/tutorials/image-projections.htm
    • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PSD.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PSD.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PSD.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PSD.html 2017-04-22 17:03:01.000000000 +0000 @@ -1,10 +1,10 @@ - + PSD - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTblender.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTblender.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTblender.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTblender.html 2017-04-22 17:03:01.000000000 +0000 @@ -1,10 +1,10 @@ - + PTblender - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTmender.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTmender.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTmender.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTmender.html 2017-04-22 17:03:01.000000000 +0000 @@ -1,10 +1,10 @@ - + PTmender - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_gen.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_gen.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_gen.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_gen.html 2017-04-22 17:03:03.000000000 +0000 @@ -1,10 +1,10 @@ - + Pto gen - PanoTools.org Wiki - - + + @@ -41,7 +41,7 @@

      This creates a project file from all jpg images, in the same folder as the first photo. The project file is named first_file-last_file.pto using the same convention as the Hugin GUI.

      -

      Options

      +

      Options

      • -o | --output output.pto Output a pto file with the given filename (instead of the default).
      • @@ -78,7 +78,7 @@
      • -h | --help Display help.
      -

      Related links

      +

      Related links

      Panorama scripting in a nutshell - pto_gen is useful in stitching panoramas from the command-line

      diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_lensstack.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_lensstack.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_lensstack.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_lensstack.html 2017-04-22 17:03:03.000000000 +0000 @@ -1,10 +1,10 @@ - + Pto lensstack - PanoTools.org Wiki - - + + @@ -35,7 +35,7 @@

         pto_lensstack --output=output.pto --new-lens|--new-stack|--change-lens|--change-stack images input.pto
       
      -

      Assigning new lenses/stacks

      +

      Assigning new lenses/stacks

      You can assign a new lens or stack to an image or a set of images by providing a list of image numbers as parameters to the program. The counting starts with zero. Several images can be given at the same time. Separate them with a comma. So

      @@ -44,14 +44,14 @@

    will assign a new lens to image 1 and 3 and a new stack to images 2 and 4.

    -

    Changing lenses/stacks

    +

    Changing lenses/stacks

    For changing the lens or the stack provide a list of image numbers and the new lens/stack number. For both the counting starts with zero and you can supply several images separated by a comma at the same time.

    Examples:

      pto_lensstack --change-lens i1=4,i5=1 input.pto
       pto_lensstack --change-stack i2=0,i4=0 input.pto
     
    -

    General options

    +

    General options

    • -o|--output output.pto Output a pto file with the given filename. If not given it will append "_lens" to the input filename.
    • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_mask.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_mask.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_mask.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_mask.html 2017-04-22 17:03:03.000000000 +0000 @@ -1,10 +1,10 @@ - + Pto mask - PanoTools.org Wiki - - + + @@ -37,7 +37,7 @@

    --mask=mask.msk@imgNr Load the mask from the file named mask.msk and apply it to the image with the number imgNr. The mask file can be generated from the mask tab - Save mask. This switch can be specified several times to add several mask at once.

    -

    Switches

    +

    Switches

    • -o|--output output.pto Output a pto file with the given filename. If not given it will append "_mask" to the input filename.
    • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_merge.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_merge.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_merge.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_merge.html 2017-04-22 17:03:03.000000000 +0000 @@ -1,10 +1,10 @@ - + Pto merge - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_move.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_move.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_move.html 2016-01-22 17:54:45.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_move.html 2017-04-22 17:03:03.000000000 +0000 @@ -1,10 +1,10 @@ - + Pto move - PanoTools.org Wiki - - + + @@ -51,7 +51,7 @@
       pto_move /path_source/ /path_dest/
     
    -

    Switches

    +

    Switches

    • --copy Copies the project files instead of moving.
    • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTOptimizer.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTOptimizer.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTOptimizer.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTOptimizer.html 2017-04-22 17:03:01.000000000 +0000 @@ -1,10 +1,10 @@ - + PTOptimizer - PanoTools.org Wiki - - + + @@ -47,7 +47,7 @@
    -

    Example Script

    +

    Example Script

    The updated original example script with lots of comments is below. Copied from Jim Watters' page.

    #############           Example Script                  ##########################
    @@ -67,7 +67,7 @@
     # the 'm'-line is optional and allows you to specify modes for the optimization.
     # one 'c'-line for each pair of control points
     
    -

    p-line options

    +

    p-line options

    # 'p'-line options
     # w1000        width in pixels
     # h600         height in pixels (default: width/2)
    @@ -133,7 +133,7 @@
     

    p w800 nPSD_mask -buf
     
    -

    i-lines

    +

    i-lines

    # The 'i' lines describe input images. One line per image is required
     # unneeded paramiters for optimizing but needed for stitching can be 
     # set here and the optimizer will automaticaly add them to the o lines
    @@ -200,7 +200,7 @@
     
    i f2 r0      p0    y0     v183    a0 b-0.1 c0  mx400 my400 
     i f2 r-0.5   p1    y182   v=0     a0 b-0.1 c0  mx400 my400 
     
    -

    v-line options

    +

    v-line options

    # 'v'-line options:
     # -----------------
     # Please note: the 'v'-line must come after the the 'i'-lines.
    @@ -222,7 +222,7 @@
     
    v v0 r0 p0 r1 p1 y1
     
    -

    m-line options

    +

    m-line options

    # 'm'-line options
     # ----------------
     # Set mode for stitcher, not required
    @@ -262,7 +262,7 @@
     
    m g1.5 i6
     
    -

    c-lines

    +

    c-lines

    #
     # 'c' lines
     # ----------------
    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_template.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_template.html
    --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_template.html	2016-01-22 17:54:45.000000000 +0000
    +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_template.html	2017-04-22 17:03:03.000000000 +0000
    @@ -1,10 +1,10 @@
     
     
     
    -
    +
     Pto template - PanoTools.org Wiki
    -
    -
    +
    +
     
     
     
    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_var.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_var.html
    --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_var.html	2016-01-22 17:49:40.000000000 +0000
    +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Pto_var.html	2017-04-22 17:03:03.000000000 +0000
    @@ -1,10 +1,10 @@
     
     
     
    -
    +
     Pto var - PanoTools.org Wiki
    -
    -
    +
    +
     
     
     
    @@ -35,7 +35,7 @@
     

       pto_var [switches] --output=output.pto --opt|--link|--unlink|--set|--set-from-file images input.pto
     
    -

    Optimisation variables

    +

    Optimisation variables

    Pto_var can mark image variables for optimisation. (This information is stored in the v lines in the pto file.) This information is used by autooptimiser and vig_optimize to do the actual optimisation.

    Running without other switches will only mark the variables given on the command line for optimisation. If you want to modify the marked variables add --modify-opt to the command line.

    The usage is: @@ -53,7 +53,7 @@

  • lens parameters: v, a, b, c, d, e, g, t
  • -
  • photometric parameters: EeV, Er, Eb, Vb, Vc, Vd, Vx, Vy, Ra, Rb, Rc, Rd, Re (Vignetting and response parameter will treated as group.) +
  • photometric parameters: Eev, Er, Eb, Vb, Vc, Vd, Vx, Vy, Ra, Rb, Rc, Rd, Re (Vignetting and response parameter will treated as group.)
  • The image numbers start with zero. If no number is given, the variables will be applied to all images. (In this case a special treatment applies to the position of the anchor image.) @@ -70,7 +70,7 @@

  • --modify-opt --opt=!v will not optimize field of view.
  • -

    Link or unlink image variables

    +

    Link or unlink image variables

    To modify the link status of an image variable use --link or -unlink. Supply a list of comma separated image variables with corresponding image number.

    Examples:

    @@ -84,7 +84,7 @@
  • --unlink=Vb3,Ra3 will unlink vignetting and response curve for image 3.
  • -

    Set image variables

    +

    Set image variables

    With this switch you can set the image variable to the given value. This applies to all the image variables of that sort or only to a single image, when the image number is given.

    Examples:

    @@ -135,7 +135,7 @@

    In the text file the individual variables can be separated by comma or a line break.

    -

    General options

    +

    General options

    • -o|--output output.pto Output a pto file with the given filename. If not given it will append "_var" to the input filename.
    • @@ -147,5 +147,5 @@
      - Retrieved from "http://wiki.panotools.org/index.php?title=Pto_var&oldid=15792[*]"
      + Retrieved from "http://wiki.panotools.org/index.php?title=Pto_var&oldid=15850[*]" \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTStitcher.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTStitcher.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTStitcher.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTStitcher.html 2017-04-22 17:03:01.000000000 +0000 @@ -1,10 +1,10 @@ - + PTStitcher - PanoTools.org Wiki - - + + @@ -58,24 +58,24 @@
    -

    Preface

    +

    Preface

    PTStitcher is one of the core applications of Panorama tools, together with PTOptimizer and the Panorama Tools Plugins[*].

    For stitching panoramas you most probably won't get in contact with PTStitcher frequently, since the scripting is more or less completely done by the various GUI front-ends[*] and some tools like PanoCube[*].

    However, there are several occasions where you might need to write or at least understand the scripts or call PTStitcher directly (for some batch tasks f.e.).

    -

    Updates

    +

    Updates

    The PTStitcher source code was never published, hence there are no changes possible to certain functions. But since a considerable part of its functionality is in pano12 library, PTStitcher benefits from every update of this core library.

    You can take PTStitcher from any of the panotools distribution on one of the Mirrors[*]. In order to use new functionality you need a recent copy of pano12 library. Note that only win32, i386 Linux and mac classic binary versions were ever made available, so you are out of luck if you use OS X or a 64bit operating system.

    There is an open source replacement for PTStitcher called nona in the hugin project which has much (but not all) of the PTStitcher features. Another open source replacement is PTmender, part of the pano12 project at sourceforge.

    -

    Intro

    +

    Intro

    PTStitcher is script driven. The scripts are in pure text format and can be edited with any text or programming editor (on windows notepad will do).

    They are processed on a line by line basis. Each line starts with a special character (case sensitive) that indicates the meaning of the rest of the line. All other first in line characters are ignored and considered comments.

    -

    Features

    +

    Features

    Most features of PTStitcher are conveniently accessible by the usual GUIs (see top), but some are not.

    -

    Accessible by GUI

    +

    Accessible by GUI

    PTStitcher can stitch

    -

    Accessible by Script or other Tool

    +

    Accessible by Script or other Tool

    PTStitcher can be used stand alone or with some other (non-GUI) Tool:

      @@ -115,7 +115,7 @@
    • assembling 6 cube faces to an equirectangular panorama can be done by GUI but is more conveniently done by script, batch file or PanoCube Plus[*].
    -

    Example Script

    +

    Example Script

    The updated original example script with lots of comments is below. Copied from Jim Watters' page

    @@ -135,7 +135,7 @@
     # the 'm'-line is optional and allows you to specify modes for the optimization.
     # the 'C'-line is optional and allows morphing of control points.
     
    -

    p-line options

    +

    p-line options

     # 'p'-line options
     # w1000        width in pixels
    @@ -171,7 +171,7 @@
     #                  QTVR          Apple QTVR-panomovie. Use only with f1
     #                  3DMF          3DMF-object (PTStereo).
     #
    -# n"QTVR w400 h300 c1"           additional viewer options in a quoted string together with format
    +# n"QTVR w400 h300 c1"           additional viewer options in a quoted string together with format
     #              the following options are recognized:
     #                  w(width) and h(height) of viewer window (only QTVR on Macs)
     #                  c(codec: 0-JPEG, 1-Cinepak, 2-Sorenson) (only QTVR on Macs)
    @@ -191,15 +191,15 @@
     
     p w800 nPSD_mask
     
    -

    i-line options

    +

    i-line options

     # The 'i' lines describe input images and is optional
     # nName        file name of the input image.
     #                  over ridable with command line parameters to PTStitcher
     
    -i n"photo1.jpg"
    +i n"photo1.jpg"
     
    -

    o-line options

    +

    o-line options

     # The 'o' lines describe input images. One line per image is required
     # The width and height of the image is obtained from image
    @@ -257,7 +257,7 @@
     o f2 r0   p0    y0     v183    a0 b-0.1 c0  S100,600,100,800
     o f2 r0   p0    y180   v183    a0 b-0.1 c0  S100,600,100,800
     
    -

    m-line options

    +

    m-line options

     # 'm'-line options
     # ----------------
    @@ -293,12 +293,12 @@
     #                   22 - Blackman/Bessel
     #                   23 - Blackman/sinc
     #                   
    -# f0               Invoke Faster Transformation also invoked by creating a file named "pano12_opt.txt" 
    +# f0               Invoke Faster Transformation also invoked by creating a file named "pano12_opt.txt" 
     #                   in the same foler as project with a line FAST_TRANSFORM
     
     m g1.5 i6 f0
     
    -

    z-line options

    +

    z-line options

     # 'z'-lines options
     # ----------------
    @@ -324,7 +324,7 @@
     
     z m2 f4 s4
     
    -

    C-line options

    +

    C-line options

     # 'C' lines
     # ----------------
    @@ -343,7 +343,7 @@
     *
     Every thing after * is ignored.
     
    -

    Tutorials

    +

    Tutorials

    Information on how to create and use PTStitcher scripts can be found on the web and on the wiki:

      @@ -364,7 +364,7 @@
    -

    Calling from the command line

    +

    Calling from the command line

    PTStitcher can be called from the command line (this is what all GUIs do, too). More information in the PTStitcher Readme[*]

    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTtiff2psd.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTtiff2psd.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTtiff2psd.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/PTtiff2psd.html 2017-04-22 17:03:01.000000000 +0000 @@ -1,10 +1,10 @@ - + PTtiff2psd - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Qtvr2img.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Qtvr2img.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Qtvr2img.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Qtvr2img.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + Qtvr2img - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/QTVR.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/QTVR.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/QTVR.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/QTVR.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + QTVR - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/RAW.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/RAW.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/RAW.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/RAW.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + RAW - PanoTools.org Wiki - - + + @@ -34,11 +34,11 @@ a group of some hundred proprietary image formats[*] containg unprocessed sensor data from digital cameras.

    They all have in common that they contain the unprossesed data as it comes from the analog/digital (A/D) converter. This files need to be processed - at least interpolated, since the color information for most of them is located in different pixels - and converted to a common image format[*] to be viewed or otherwise used. They might contain additional data comparable to the EXIF information.

    -

    RAW converters

    +

    RAW converters

    There are numerous RAW converters but only few that can convert most or all RAW formats, most of them based on dcraw[*] written by David J. Coffin. Most of them offer sophisticated ways to control white balance[*], tonal range, contrast, shadow detail, exposure etc. Some even allow for correction of chromatic aberration or noise.

    You can always try and find out how to extract more dynamic range from RAW files in these converters, but in order to get 16 bit per channel output files with full dynamic range follow the tutorial about RAW dynamic range extraction[*].

    -

    External links

    +

    External links

    • w:Camera raw[*] at Wikipedia
    • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Rectilinear_Projection.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Rectilinear_Projection.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Rectilinear_Projection.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Rectilinear_Projection.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + Rectilinear Projection - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/RGBE.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/RGBE.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/RGBE.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/RGBE.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + RGBE - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Roll.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Roll.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Roll.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Roll.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + Roll - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/SmartBlend.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/SmartBlend.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/SmartBlend.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/SmartBlend.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + SmartBlend - PanoTools.org Wiki - - + + @@ -59,7 +59,7 @@

    Download SmartBlend, current version Smartblend_1_2_5.zip[*]

    -

    How it works

    +

    How it works

    It finds the visual error on overlap region and searches for a seam line with minimal visual error. Than it blends pictures using an algorithm similar to a multiresolution spline.

    To study algorithms and options use “–SeamVerbose” and “-PyramidVerbose” commands.

    There is a good tutorial, but it's available only in Russian. Anyone to translate it? @@ -67,7 +67,7 @@

    Welcome to anyone who wants to improve this smartblend, write a tutorial and other.

    (Text taken from original smartblend home page)

    -

    smartblend on Mac

    +

    smartblend on Mac

    There used to be a nice tutorial on tweakbits.com which is gone. If anyone still has the know how, please write a wiki page: smartblend on Mac[*] For the time being you find the content retrieved from google cache on the corresponding discussion page.

    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Spherical.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Spherical.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Spherical.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Spherical.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + Spherical - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Stereographic_Projection.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Stereographic_Projection.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Stereographic_Projection.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Stereographic_Projection.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + Stereographic Projection - PanoTools.org Wiki - - + + @@ -44,10 +44,10 @@


    -

    Comparison with standard fisheye

    +

    Comparison with standard fisheye

    [*]
    Example of a standard fisheye, Medinet Habu first courtyard
    [*]
    Example of a stereographic image, Medinet Habu first courtyard
    -

    Stereographic 'little planet' images

    +

    Stereographic 'little planet' images

    Little planet[*] images are a nice way to represent a spherical scene without requiring a panorama viewer[*], stereographic is generally superior to standard fisheye Projection for these images. diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Stitching_a_photo-mosaic.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Stitching_a_photo-mosaic.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Stitching_a_photo-mosaic.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Stitching_a_photo-mosaic.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + Stitching a photo-mosaic - PanoTools.org Wiki - - + + @@ -46,18 +46,18 @@ -

    Definition of photo-mosaic

    +

    Definition of photo-mosaic

    A photo-mosaic is an image that is stitched together by photographs all taken from different viewpoints. This differs from the panorama where all images are taken from one single viewpoint but with different angles.

    The typical case of a photo-mosaic is the linear panorama[*], where one large subject like a wall, is photographed by taking photos of the wall, each covering a proportion of the wall, and moving the camera parallel to the wall with each shot.

    The classical way to stitch these kinds of mosaics was to lay the prints out on a light-table and glue them together. Now with the mosaic-mode in the panotools lens model, it is possible to use the software to estimate the camera position including angles, lens distortion etc. and to re-project and stitch the images to a photo-mosaic.


    -

    Understanding the mosaic lens model

    -

    Parameters

    +

    Understanding the mosaic lens model

    +

    Parameters

    The panotools lens model has been expanded with the addition of five new parameters that describe the camera position in cartesian coordinates, TrX, TrY, and TrZ, and the yaw and pitch of the translation remapping plane, Tpy and Tpp.

    The yaw, pitch and roll angles now apply to the camera around the camera's TrX, TrY and TrZ position in space. Together these six parameters describe where the camera viewpoint is (TrX,TrY,TrZ) and the direction the camera's optical axis point (y,p,r).

    -

    Mosaic lens model

    +

    Mosaic lens model

    In order to generate a photo-mosaic from the individual images, the panotools lens model re-projects the images in the following way.

      @@ -83,7 +83,7 @@

    Illustration4.png[*]

    -

    Result

    +

    Result

    Because the projection plane is a plane and perpendicular to the panorama camera, there will be miss-fit when this assumption is not true for the real-world subject. For example, photos of a flat wall mural could be rendered perfect, while a three dimensional subject would not be.

    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Straight_line_control_points.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Straight_line_control_points.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Straight_line_control_points.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Straight_line_control_points.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + Straight line control points - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Swing_rod.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Swing_rod.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Swing_rod.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Swing_rod.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + Swing rod - PanoTools.org Wiki - - + + @@ -33,7 +33,7 @@

    A swing rod is a device for stabilising a camera position around the no-parallax point without needing a tripod[*], the principle is identical to a Philopod[*].

    A telescopic car aerial is used as the rod. Although heavier, this is more convenient to carry than a Philopod[*] where the string has to be wound/unwound and can get tangled easily.

    -

    External links

    +

    External links

    • swing rod
    • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Tca_correct.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Tca_correct.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Tca_correct.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Tca_correct.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + Tca correct - PanoTools.org Wiki - - + + @@ -32,7 +32,7 @@

      tca_correct is a command-line tool shipped with hugin that can be used to automatically calculate lens chromatic aberration[*] correction parameters. Ideal sample photos would have a lot of contrast over the entire image area, little saturated colour and no blown highlights.

      -

      Using with fulla

      +

      Using with fulla

      fulla is a command-line tool for correcting lens distortion, vignetting and TCA[*] (chromatic aberration). It is capable of applying the full panotools polynomial to the red and blue channels, thereby correcting any transverse chromatic aberration.

      First calculate some TCA correction parameters for a sample image, notice that I'm only going to bother optimising b and v parameters in the lens correction model, you might get better results with the full abcv set of parameters:

      @@ -46,7 +46,7 @@

       fulla -r 0.0:0.0001197:0.0:0.9997630 -b 0.0:-0.0001142:0.0:1.0001841 -o corrected.tif DSC_3194.ppm
       
      -

      Using with dcraw

      +

      Using with dcraw

      dcraw[*] is a command-line RAW converter with the ability to apply scaling of red/blue channels at the Bayer interpolation stage. Simple scaling is not as sophisticated as the panotools polynomial used in fulla but is good enough for nearly all purposes. Start by extracting a test image from a RAW file:

       dcraw DSC_3194.NEF
      diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/The_General_Panini_Projection.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/The_General_Panini_Projection.html
      --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/The_General_Panini_Projection.html	2016-01-22 17:55:19.000000000 +0000
      +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/The_General_Panini_Projection.html	2017-04-22 17:03:04.000000000 +0000
      @@ -1,10 +1,10 @@
       
       
       
      -
      +
       The General Panini Projection - PanoTools.org Wiki
      -
      -
      +
      +
       
       
       
      @@ -51,44 +51,44 @@
       
    -

    Geometrical Description

    -
    [*]
    Standard Panini projection, 10 degree intervals
    +

    Geometrical Description

    +
    [*]
    Standard Panini projection, 10 degree intervals

    The basic Panini projection -- the cylindrical stereographic projection -- renders vertical, horizontal and radial straight lines as shown in the diagram at right. Verticals are straight, a prerequisite for any perspective view. Radial lines through the view center are also straight. That creates a convincing perspective illusion when there is a vanishing point at or near view center. But horizontal straight lines are curves, with the strongest curvature in the middle of the image. That makes many images seem to 'bulge' at top and bottom center.

    The general Panini adds two adjustable parameters to the basic projection. One sets the horizontal angle compression, so the projection can vary smoothly from rectilinear to a highly condensed form. The other reduces the curvature of horizontal lines. This can make many central perspectives look more natural, and can also improve the perspective illusion when the vanishing point is off-center. We call this a 'squeeze' parameter because early implementations actually compressed the middle of the image; current versions stretch the sides instead. The adjustment is purely vertical so that verticals remain straight. There are actually separate squeeze parameters for the top and bottom halves of the image.

    There are two kinds of squeeze, 'hard' and 'soft'. A hard squeeze can fully straighten horizontal lines, but only works on fields of view well under 180 degrees. A soft squeeze provides less complete straightening but works for wider fields of view. Of course nothing is free: reducing the curvature of horizontal lines comes at the cost of increasing the curvature of radial lines. Fortunately that curvature is strongest far from image center, and typically unnoticeable on fields of view of 130 degrees or less.

    For more detailed technical and historical information, visit http://vedutismo.net/Pannini/.


    -

    Parameters

    +

    Parameters

    The general Panini projection is controlled by three parameters.

    The main parameter, called compression and labelled 'Cmpr' in the hugin previews, has a range of 0 to 150 (you can think of that as percent). It adjusts the form of the projection between the completely uncompressed rectilinear projection (Cmpr = 0) and the maximally compressed cylindrical orthographic projection (Cmpr = 150) with the standard Pannini (cylindrical stereographic) projection at Cmpr = 100.

    The maximum horizontal field of view varies with compression, from 160 degrees at Cmpr = 0 to 320 degrees at Cmpr = 100, then back to 180 degrees at Cmpr = 150. Hugin's FOV sliders automatically respect these limits. If you enter an infeasible hfov value in a script (for PTmender, for example) the actual field of view will be the largest feasible value.

    Two secondary parameters, labeled 'Tops' and 'Bots', control vertical squeeze adjustments applied to the top and bottom halves of the image, for the purpose of reducing the curvature of horizontal lines. These have a range of -100 to 100. There is no squeeze when the parameter is zero. Positive values invoke a 'hard' squeeze, that can exactly straighten horizontal lines, but only over a limited range of about 160 degrees. Negative values invoke a 'soft' squeeze that works for wider fields of view but cannot eliminate all curvature.

    -

    Applications

    -

    Distortionless Wide-Angle Photos

    -
    [*]
    Rectilinear, hfov 120 deg.
    -
    [*]
    Panini(70,50,50), hfov 120 deg.
    +

    Applications

    +

    Distortionless Wide-Angle Photos

    +
    [*]
    Rectilinear, hfov 120 deg.
    +
    [*]
    Panini(70,50,50), hfov 120 deg.

    One of the best uses of the general Panini projection is simulating rectilinear perspective, without peripheral distortion, on fields of view typical of wide angle to super-wide angle camera lenses, say in the range of 75 to 120 degrees. A compression well under 100 is usually enough, plus a hard squeeze to straighten prominent transverse lines. The appropriate squeeze strength depends on the inclination of those lines: 100% if they are horizontal, less as the slope increases.

    Compare the shapes of the rose window (and other features) in the mild Panini perspective at left and the true rectilinear one at right.


    -

    Perspective Views from Fish-Eye Photos

    -
    [*]
    Panini view
    -
    [*]
    Fisheye snapshot
    +

    Perspective Views from Fish-Eye Photos

    +
    [*]
    Panini view
    +
    [*]
    Fisheye snapshot

    Hugin with the general Panini projection is an excellent 'de-fishing' tool. Load a fisheye photo, adjust pitch and roll angles to align the true vertical with the vertical axis of the view, then adjust the general Panini parameters for a pleasing perspective -- anything from rectilinear to highly compressed and squeezed. Note that you can adjust pitch and roll by dragging in the fast preview window.

    If vertical lines look curved, you should adjust the lens focal length or FOV until they are straight. Temporarily switching to the rectilinear projection may make it easier to do this. The curvature results when the panotools lens model does not match the actual projection function of your lens. Adjusting the fov provides a first order correction that is usually 'close enough'; but for even better results, you could set the lens fov and a,b,c distortion parameters to values that were optimized on a well-aligned spherical panorama made with the same lens.


    -

    Very Wide and Ultra-Wide Views from Panoramas

    +

    Very Wide and Ultra-Wide Views from Panoramas

    With a panorama as the source image, the general Panini projection can be used like any other projection to render views in various directions. However it is best for views where the line of sight is not tilted up or down. It is important to align the vertical direction carefully in "roll" as well. Both pitch and roll alignment can be done by dragging the image in Hugin's fast preview window. To get a perfectly framed view, it may be necessary to render oversize and crop later.

    The image at right compares rectilinear (top) and general Pannini (bottom) projections of a panoramic view 150 degrees wide by 100 degrees high in the Pantheon (Rome), a large, perfectly circular space. The point of view here is well away from the middle of the room. Notice how the Pannini perspective both magnifies the center, so that people in the middle look closer, and condenses the periphery, so that people near the edges have more natural shapes -- for example, the man taking a picture at far right. A 50 percent "soft squeeze" has been applied at both top and bottom to improve the perspective of the floor and dome.

    It is often possible to render a convincing view more than 180 degrees wide, if the subject has a strong central perspective. The spectacular image of the main concourse at New York's Grand Central Station, below, is 220 degrees wide. The slanted walls at the sides are actually the ends of a transverse wall that stands well behind the point of view. This is a standard Pannini projection without any "squeeze".


    -
    [*]
    Grand Central Terminal by Cristian Marchi; Panini projection, hFOV 220 degrees
    -

    Software Versions

    +
    [*]
    Grand Central Terminal by Cristian Marchi; Panini projection, hFOV 220 degrees
    +

    Software Versions

    Your libpano13 and hugin must have been built after 20 January 2010, from panotools source version SVN 1237 or later and hugin source version SVN 4920 or later. You have to build pre-release versions, or download them from a test builder's site, as the first official 2010 release of Hugin does not include the general Panini projection. You can get a self installing Win32 binary at http://tksharpless.net [click 'Panoramic Software', then double-click 'hugin-2010.1.0.4920.exe'. Running this creates a new self contained installation that won't interfere with any existing installation.]

    In the first versions of hugin that support the general Panini projection, the 'fast' preview window sometimes has trouble displaying general Panini views, usually parts go black, occasionally it shows an apparently complete but incorrect view. The 'slow' preview window shows the true view in all cases; use it if the fast preview display seems garbled or unreliable.

    Helmut Dersch's PTStitcherNG implements the general Panini projection just like libpano13. It only runs from scripts and provides no interactive preview; however it is so fast that an iterative adjustment of the script parameters is feasible. diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/TIFF.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/TIFF.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/TIFF.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/TIFF.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + TIFF - PanoTools.org Wiki - - + + @@ -46,7 +46,7 @@ -

    Compression issues

    +

    Compression issues

    TIFF can contain almost any image data. However, there are some common forms of image data compression found inside a TIFF file:

      @@ -65,7 +65,7 @@

    PTStitcher (and hence all the GUI front-ends[*] that use it) outputs PackBits compressed image files if the output format is TIFF. There is a bug in Photoshop[*] prior to Version 9 (CS2) that prevents to open PackBits compressed files beyond a certain size. See opening large TIFFs with Photoshop[*] for details.

    -

    Bit depth

    +

    Bit depth

    TIFF can contain data of varying bit depth but for photographic purpose only 8-bit or 16-bit per channel are of interest. However, there is a specification that contains 32-bit data per channel floating point format for high dynamic range images.

    There can be any number of channels. Common examples are

    @@ -82,7 +82,7 @@

    All channels in an image have the same bit depth, hence a RGB[*] image with 16-bit per channel often is reffered to as a 48-bit image, with 8-bit per channel as a 24-bit image.

    The Panotools main applications process 8-bit as well as 16-bit per channel images. Details see Full 16 bit workflow[*]

    -

    Alpha channels and masks

    +

    Alpha channels and masks

    Alpha channels are used by panotools to store masks. A mask contains information to which extent the image should be used. For this purpose the alpha channel contains a black-and-white image where the pixel value determines the transparency of the corresponding image pixel.

    A white alpha channel pixel causes the corresponding image pixel to be seen to 100%, a black alpha channel pixel indicates a totally transparent image pixel. A alpha channel pixel with 50% gray indicates 50% transparency.

    This is particularily useful to blend between images. PTStitcher, the main stitching application of the Panorama Tools[*], is capable of reading and writing masked TIFF image files in RGB color space. A mask in the source image is treated as image border and remapped to the output image accordingly. @@ -95,17 +95,17 @@

    In any case there is a problem to use this alpha channels as intended in Photoshop[*], since Photoshop does not know about the intended use. It loads the alpha channel but doesn't use it to control transparency. This can be achieved manually by loading the alpha channel as selection and creating a mask with 'reveal selection'. Erik Krause provides a Photoshop action set on his page that can be used to automate this for all images in a panorama: Stitching actions[*]

    -

    Layers

    +

    Layers

    Standard TIFF doesn't support layers. If a Photoshop[*] document with layers is saved as TIFF Photoshop creates a flat TIFF image file (for compatibility) and the layer data in a separate TIFF tag. This separate TIFF tag can be compressed using RLE (run length encoding) or ZIP compression. ZIP usually results in smaller files, smaller even as if saved as PSD (where you can't choose the compression format).

    Some applications (like for example nona, the PTStitcher replacement in the hugin package) can write single files that contain multiple TIFF images. If these TIFF files are loaded into Photoshop[*] only the first image will be visible. They can be split into single images with tiffsplit from the TIFF tools package or ImageMagick[*] (See Tools section).

    Current versions of the Gimp[*] image editor can read these TIFF files with multiple images, though they are flattened to one image when saved - A workaround is to save these layers as separate files using the save-layers-tiff[*] plug-in.

    nona and PTmender can create cropped TIFF output where the image data is just a small area within the final image dimensions. This is a useful way to save resources when assembling many images into a final panorama. Cropped TIFF input files are also supported by enblend.

    -

    Non-image data

    +

    Non-image data

    Since TIFF is a tagged format it can contain additional non-image data either comparable to the EXIF data in JPEG files or other. Photoshop[*] for example inserts XML formatted data that causes warning messages in some programs based on the common TIFF libraries. At least some of the EXIF tools can be used to view and/or manipulate the corresponding data in TIFF files, too.

    TIFF supports embedded color profiles[*]. Unfortunately PTStitcher discards the profile information when it saves TIFF files (the nona stitcher doesn't have this bug). Hence the appropriate profile should be assigned to PTStitcher result images when loaded into a color management aware image editor.

    -

    Tools and sources

    +

    Tools and sources

    Although the major image processors and viewers cope very well with TIFF it might be necessary from time to time to use some other tools - for batch processing, for conversion of scarcely supported TIFF flavors or simply to get enhanced information.

      @@ -118,12 +118,12 @@
    • Little CMS[*] provides a tool called tifficc for applying an ICC colour profile to a TIFF file: wikipedia: LittleCMS[*]
    -

    BigTiff

    -

    One approach to overcome the current file size limitations of the format is a proposal for a new TIFF specification called BigTiff for the free libTIFF library. Thanks to sponsors like Leica Geosystems developers of open source software like PanoTools can plan to use LibTiff 4.0 from August 2007. More information is available from AWare Systems. An unofficial release of libtiff which enables BigTIFF is available from Aperio. +

    BigTiff

    +

    One approach to overcome the current file size limitations of the format is a new TIFF specification called BigTiff for the free libTIFF library: http://bigtiff.org/

    - Retrieved from "http://wiki.panotools.org/index.php?title=TIFF&oldid=12184[*]"
    + Retrieved from "http://wiki.panotools.org/index.php?title=TIFF&oldid=15865[*]" \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Tone_mapping.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Tone_mapping.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Tone_mapping.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Tone_mapping.html 2017-04-22 17:03:04.000000000 +0000 @@ -1,10 +1,10 @@ - + Tone mapping - PanoTools.org Wiki - - + + @@ -45,7 +45,7 @@
  • Local operators take into account the pixel's surroundings for mapping it. This means that a pixel of a given intensity will be mapped to a different value depending on whether it is located in a dark or bright area. This makes local operators slower (memory access is the major speed bottleneck on today's computers) but tends to produce more pleasing results, given that our eyes react locally to contrast.
  • -

    Other possibilities

    +

    Other possibilities

    There are other possibilities that pass by the merge to HDR step and the related problems and directly go from the bracketed images to the compressed output. These possibilities are commonly referred to as Contrast Blending[*]. The basic idea is to take the "good" parts of any exposure step and merge directly into a low dynamic range image. The most advanced technique to do this is currently implemented by enfuse.

    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/User_defined_output_sequence.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/User_defined_output_sequence.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/User_defined_output_sequence.html 1970-01-01 00:00:00.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/User_defined_output_sequence.html 2017-04-22 17:03:04.000000000 +0000 @@ -0,0 +1,44 @@ + + + + +User defined output sequence - PanoTools.org Wiki + + + + + + + + + + + + + + + + + + +
    + + +

    User defined output sequence

    +
    +
    From PanoTools.org Wiki
    + + +

    Normally the stitching of Hugin is controlled by the settings on the stitcher tab and by the settings in the preferences dialog. In this case you can tweak a lot of options at both places, but you can't add additional steps to the processing queue. For this use case the concept of user defined output sequences was introduced. +

    In an user defined output sequence you can define which programs should be executed. So you can add additional process step or add parameters which are not exposed in the normal stitching engine. In this case the settings on the stitcher tab and in the preferences are ignored. An exception are the projection, field of view and canvas size on the stitcher tab - these are used. +

    The user defined output sequences are defined in .executor files. The format of these files is described in the file doc/executor_file_format.txt. Hugin_executor, hugin_stitch_project and Hugin can use these files for stitching. (PTBatcherGUI[*] can't handle the user defined output sequences.) +

    In Hugin you can open an executor file from any directory and stitch with the settings from this file your project. +Hugin 2017.0 and later lists the executor files from 2 directories in the menu bar for easier access: from a systemwide data directory and from an user data directory. On Windows the paths are install directory\share\hugin\data and c:\users\USERNAME\AppName\Roaming\hugin, on Linux the paths are /usr/share/hugin/data and ~/.hugindata. +

    + + + +
    + Retrieved from "http://wiki.panotools.org/index.php?title=User_defined_output_sequence&oldid=15886[*]"
    +
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Using_Celeste_with_hugin.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Using_Celeste_with_hugin.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Using_Celeste_with_hugin.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Using_Celeste_with_hugin.html 2017-04-22 17:03:05.000000000 +0000 @@ -1,10 +1,10 @@ - + Using Celeste with hugin - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Verdandi.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Verdandi.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Verdandi.html 2016-06-01 15:41:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Verdandi.html 2017-04-22 17:03:05.000000000 +0000 @@ -1,10 +1,10 @@ - + Verdandi - PanoTools.org Wiki - - + + @@ -40,7 +40,7 @@


    -

    Usage

    +

    Usage

       verdandi --output=output.tif input1.tif input2.tif input3.tif
     

    will merge the images input1.tif, input2.tif and input3.tif to output.tif. diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Vertical_control_points.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Vertical_control_points.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Vertical_control_points.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Vertical_control_points.html 2017-04-22 17:03:05.000000000 +0000 @@ -1,10 +1,10 @@ - + Vertical control points - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Vignetting.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Vignetting.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Vignetting.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Vignetting.html 2017-04-22 17:03:05.000000000 +0000 @@ -1,10 +1,10 @@ - + Vignetting - PanoTools.org Wiki - - + + @@ -30,13 +30,13 @@

    From PanoTools.org Wiki
    -

    Definition

    +

    Definition

    Light fall-off in the corners of images due to lens characteristics. There are mainly two types of vignetting. One caused by the lens housing sometimes called artificial vignetting and one caused by optical reasons (cosine-in-4th-power law) sometimes called natural vignetting. Only the last one can be easily corrected by the Panorama Tools Plugins[*] radial luminance filter. In principle Fulvio Senore[*]'s program for vignetting correction can correct both types of vignetting.

    Although the Panorama Tools Plugins[*] radial luminance filter implements vignetting correction, this functionality was never added to PTStitcher. In this case it is necessary to pre-process photographs with the plugin or some other tool.

    nona, the stitcher supplied with hugin now implements vignetting correction at the stitching stage, this uses either a flatfield image or a polynomial function. fulla is an image pre-processor that uses the same technique to correct vignetting along with chromatic aberration and lens distortion.

    hugin now has a feature for automatically deriving vignetting correction parameters from an assembled panorama. It compares the brightness gradient difference between overlapping photos at different radii, and calculates a suitable correction polynomial. PTGui[*] has implemented the same technique based on Pablo's paper.

    -

    See also

    +

    See also

    Wikipedia page on vignetting[*]

    John Houghton's page on Vignetting

    Pablo d'Angelo's paper on exposure, whitebalance and vignetting correction diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Vig_optimize.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Vig_optimize.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Vig_optimize.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Vig_optimize.html 2017-04-22 17:03:05.000000000 +0000 @@ -1,10 +1,10 @@ - + Vig optimize - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Wavy_distortion.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Wavy_distortion.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Wavy_distortion.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Wavy_distortion.html 2017-04-22 17:03:05.000000000 +0000 @@ -1,10 +1,10 @@ - + Wavy distortion - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Yaw.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Yaw.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Yaw.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Yaw.html 2017-04-22 17:03:05.000000000 +0000 @@ -1,10 +1,10 @@ - + Yaw - PanoTools.org Wiki - - + + diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Zenith.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Zenith.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Zenith.html 2016-01-22 17:55:19.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_en_EN/Zenith.html 2017-04-22 17:03:05.000000000 +0000 @@ -1,10 +1,10 @@ - + Zenith - PanoTools.org Wiki - - + + @@ -34,7 +34,7 @@ the point directly above the person viewing or above the camera. The opposite (below) point is named Nadir.

    The Zenith is stretched to a line in Equirectangular Projection, making it hard to edit it directly. However, a rectilinear view can be extracted[*] for editing.

    -

    Related articles

    +

    Related articles

    • How to use enblend for patching zenith and nadir images[*]
    • diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/contents.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/contents.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/contents.html 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/contents.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ - - - - Hugin - Table of Contents - - - - -
      -

      -Hugin Logo - -
      -An easy to use GUI for Panorama Tools -
      -Version 0.6 -

      -

      -This is the online help for Hugin. -

      - - -

      Table of Contents

      -
      - - - - - - diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/FAQ.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/FAQ.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/FAQ.html 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/FAQ.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,377 +0,0 @@ - - - - Questions Fréquentes de Hugin - - - - - -
      -

      Outdated FAQ

      -

      -This FAQ is outdated, please use the FAQ at http://wiki.panotools.org/Hugin_FAQ. -

      Questions Fr�uentes de Hugin

      - -

      Ce document contient des réponses à des questions que les utilisateurs ont posé sur la liste de diffusion Hugin-Ptx ou ailleurs.

      - -

      - Ces réponses se rapportent à des pré-versions relativement récentes de Hugin. -

      - -

      - Ceci est la FAQ de Hugin, elle contient plus particulièrement des réponses - spécifiques à Hugin. -

      - FAQ générale des « Panorama - Tools » : -

      - - - -

      Questions

      - -

      Questions générales

      - - - - -

      Sélection des points de contrôle

      - - -

      Problèmes courants rencontrés lors de la création d'un panorama

      - - - -

      Post-traitement des panoramas

      - - -

      Réponses

      - -

      Questions générales

      - -

      Peut-on utiliser Hugin avec un MAC ?

      -

      - Bien qu'il ne devrait pas être difficile de créer une version pour un Macintosh, - aucun des développeurs principaux n'utilise de Macintosh. Nous attendons de connaitre un - utilisateur de Mac avec des connaissances suffisantes pour effectuer les modifications (mineures) - nécessaires dans Hugin et les pano tools. -

      - -

      Enblend 2.1 ne fonctionne-t-il pas avec Hugin (Windows seulement) ?

      -

      - Enblend 2.1 ne peut pas lire les fichiers TIFF créés par Hugin ou Nona. -

      -

      - L'exécutable windows d'Enblend 2.1 n'a pas été compilé avec le support - des fichiers TIFF compressés tels que les produit Nona. En attendant une nouvelle version - des auteurs d'Enblend, j'ai créé une version avec le support complet de TIFF, vous - pouvez la télécharger d'ici -

      - -

      J'ai sélectionné la langue française et - Hugin signale qu'il ne trouve pas fr_FR, comment faire ?

      -

      - Lorsque vous avez sélectionné la langue française dans les - préférences, vous obtenez un message d'erreur : « Cannot set - locale to 'fr_FR'. ». Vous utilisez probablement la locale ISO-8859-15 (fr_FR@euro). - Ceci est une limitation des wxWidgets, il y a deux moyens pour contourner ce problème : -

        -
      • - Soit vous sélectionnez « langue par défaut du - système » dans les préférences de Hugin. -
      • -
      • - Soit vous générez également sur votre système - la locale ISO-8859-1, même si vous ne l'utilisez pas par défaut.

        - Il vous suffit d'ajouter en fin de votre fichier /etc/locale.gen la ligne - suivante :
        -
        fr_FR ISO-8859-1
        - puis de lancer la commande locale-gen. -
      • -
      -

      -

      Sélection des points de contrôle

      - -

      Comment ajouter des points de contrôle ?

      - -

      - L'éditeur de points de contrôle est assez puissant mais son utilisation n'est pas - forcément évidente à première vue. Voici quelques indications sur la - manière dont les développeurs utilisent l'écran des points de contrôle  -

      - -
        -
      1. -

        Sélection des points de cotrôle dans le mode 100%.

        -

        - Cette méthode nécessite de faire défiler l'image si des images de grandes - dimensions sont utilisées. Dans ce cas, vous pourrez utiliser la valeur de zoom ajuster à la - fenêtre. Allez dans l'onglet des points de contrôle et utilisez les - paramètres suivants : -

        -
        Zoom : 100%
        - [X] Ajustement précis automatique
        - [X] Ajout automatique
        - [X] Estimation automatique
        -
          -
        • Cliquez sur un élément remarquable de l'image de gauche. - Si la paire d'image contient déjà des points de contrôle, Hugin - va essayer de sélectionner le point dans l'autre image. -
        • -
        • Si c'est le premier point de cette paire d'images, cliquez sur un élément - semblable dans l'image de droite.
          - Sinon, le second point est placé et ajusté - précisément automatiquement. -
        • -
        • Si vous n'êtes pas satisfait de ce positionnement, les deux points peuvent être - déplacés en les glissant vers une meilleure position.
          - Pressez la touche « f » pour ajuster précisément le - point à l'intérieur d'une petite zone. -
        • -
        -
      2. - - -
      3. -

        Sélection de points dans le mode ajuster à la fenêtre.

        -

        - J'utilise ce mode si j'ai besoin de placer des points sur une image de grande taille. - Allez dans l'onglet des points de contrôle et utlisez les paramètres uivants : -

        -
        Zoom : ajuster à la fenêtre
        - [X] Ajustement précis automatique
        - [ ] Ajout automatique
        - [X] Estimation automatique
        -
          -
        • Cliquez sur l'image de gauche. L'image est affichée dans une vue à 100%.
        • -
        • A l'intérieur de la vue détaillée, cliquez un élément - remarquable. Si la paire d'images contient déjà des points de contrôle, - Hugin va essayer de placer le point dans l'autre image. -
        • -
        • Si c'est le premire point de cette paire d'images, cliquez dans l'image de droite un - élément semblable. Le point est alors placé et ajusté - précisément automatiquement. -
        • -
        • Si vous n'êtes pas satisfait de ce placement, les deux points peuvent être - dépalcés en cliquant à la position désirée. Déplacez - le point à proximité de l'élément désiré et pressez - la touche « f » pour ajuster précisément ce point. -
        • -
        • Lorsque les points se trouvent sur le même élément, pressez le bouton droit - de la souris ou pressez la touche « a » pour ajouter la paire de points de - contrôle. Ils seront alors affichés dans la liste en bas des images. -
        • -
        -
        -
      4. -
      - -

      Comment faire défiler les deux images simultanément ?

      -

      - Essayez de presser la touche majuscule tout en déplaçant la souris. La touche - « Ctrl » ou le bouton du milieu de la souris peuvnet être utilisés - pour ne déplacer que l'image qui se trouve sous le curseur de la souris. -

      - - -

      Problèmes courants rencontrés lors de la création d'un panorama

      -

      Dans mon panorama, l'horizon est incurvé, comment le rendre droit ?

      -

      - Si le panorama semble correct mais que l'horizon est incurvé, il y a deux - moyens d'améliorer l'image et de rendre l'horizon droit. Premièrement, - essayez d'optimiser la vue en sélectionnant « les positions et la vue » - comme mode d'optimisation et en lançant ensuite l'optimiseur. En cliquant sur - « calculer l'angle de champ » dans l'onglet « Assembleur » - et en affichant ensuite l'aperçu vous pouvez vérifier que l'image est - améliorée. -

      - S'il est encore incurvé, vous devrez alors ajouter des points de contrôle de guide - horizontal depuis l'onglet « Points de contrôle ». Ce qui fonctionne - le mieux pour moi est de sélectionner la première image dans la partie gauche de la - fenêtre et l'image suivante dans la partie droite, exactement comme pour l'ajout de points - de contrôle ordinaires. Ajoutez ensuite un point de contrôle quelque part dans la partie - gauche de l'image de gauche, où se trouve l'horizon. Dans l'image de droite, sélectionnez - un point de l'horizon dans la partie droite de l'image. Une fois ce point ajouté, changez - son type dans la liste en dessous pour « ligne horizontale », comme vous - pouvez le voir sur l'image ci-dessous (les cercles rouges dans les parties gauche/droite des image - de gauche et de droite). Vous pouvez dévalider les fonctions d'ajout automatique et - d'estimation automatique pour effectuer cette opération pour éviter des dialogues - envahissants lorsque vous ajoutez ces points-guides (ce que j'ai oublié de faire sur les - captures d'écran). -

      Capture d'écran de Hugin affichant une ligne guide
-	horizontale entre deux images
      -
      - Ensuite, décalez vous d'une image vers la droite et refaites la même chose. Pour - certaines images avec beaucoup d'immeubles vous devrez deviner où se trouve l'horizon, - ne vous en faites pas, vous n'avez pas besoin d'être très précis (et beaucoup - de gens peuvent deviner où se trouve l'horizon sans le voir, ce doit être une - règle de l'évolution des espèces ;-). -

      - Après ceci, lancez l'optimiseur avec les paramètres « les positions et la - vue« », mettez à jour l'aperçu et vérifiez le résultat. - Pour les panoramas qui ont davantage qu'une seule rangée d'images, vous n'avez en - général à fixez les guides horizontaux que pour une seule ligne. -

      -

      Lors de l'optimisation d'un panorama sur 360 degrés, - j'obtiens un cercle à la place d'un champ de vision à 360 degrés. Comment - faire pour que Hugin le reconnaisse comme un panorama à 360 degrés ?

      -

      -Pour certains panoramas sur 360 degrés, vous pouvez rencontrer une optimisation telle que celle-ci : -

      panorama sur 360 degrés incorrectemeent optimisé sous la forme d'images disposée en cercle
      -
      - Ce n'est pas un bogue, c'est une fonctionnalité ;-) Comme les panorama tools - peuvent prendre en compte des images ayant n'importe quelle orientation, une fois - que l'optimiseur a trouvé un minimum local fort il peut lui être impossible d'en - sortir. La façon de l'éviter est de de guider l'optimiseur en lui donnant - des estimations grossières pour les valeurs de lacet (comme l'a signalé Bruno Postle). Pour ce faire, comptez combien d'images se trouvent sur - une ligne horizontale. Pour des images avec un angle de champ de 40 degrés, ce peut - être de 10 à 12 images, parfois davantage. Divisez alors 360 par ce nombre, par - exemple si nous supposons que vous avez 12 vues sur une même ligne horizontale, nous - avons alors 360 / 12 = 30. Dans l'onglet « Images », entrez la valeur - du lacet dans l'ordre croissant. Attention de bien le faire dans l'ordre correct, par exemple, - si vous avez pris vos photos de gauche à droite ajoutez simplement 30 à chaque - valeur du lacet en commençant par 0 pour la première image, ensuite 30, 60, 90, - etc. Il n'est pas nécessaire d'utiliser très exactement cette valeur, ça - permet juste d'éviter à l'optimiseur de rester bloqué sur un minimum local - dont il ne sait pas sortir. Si vous avez plusieurs lignes horizontales, vous pouvez le faire - aussi pour les autres lignes maintenant ou essayer sans et le faire plus tard en cas d'échec. - Assurez-vous d'avoir enregistré votre fichier .pto avant de lancer l'otpimisation. -

      -Effectuez maintenant l'optimisation en utilisant « les paramètres -personnalisés ci-dessous » et remettez à zéro les -valeurs d'optimisation de tangage, de roulis et de vue. Dans la boîte -« lacet » choisissez n'importe quelle vue sauf la première. -Lancez l'optimisation. Vous devriez obtenir alors une première estimation à -peu près satisfaisante que vous pouvez vérifier dans l'onglet de -l'aperçu après en avoir demandé la mise à jour. À -partir de cette estimation grossière, vous pouvez appliquer maintenant une -optimisation normale avec « les positions et la vue » -

      -S'il y a encore quelques cercles, vous pouvez tenter d'optimiser aussi le tangage. -

      -

      Il y a des bandes noires entre -deux images, comment les supprimer ?

      -

      - S'il y a des zones noires visibles entre deux images source dans l'image finale - mais qu'elles ne sont pas visibles dans l'aperçu, la raison la plus probable est - que le fondu s'est fait avec l'arrière-plan noir. Ceci se produit lorsque deux - images se chevauchent légèrement et que la largeur de la transition est - fixée à une valeur plus grande que le recouvrement. La raison en est que - la transition douce (« feathering ») se fait à l'intérieur - des limites de l'image jusqu'à la valeur indiquée dans la « Largeur - de transition ». S'il n'y a pas de recouvrement à l'intérieur de cette - zone, la transition se fait entre le fond noir et l'image ce qui fait transparaître - le fond noir au travers de l'image et à l'intérieur de celle-ci. Pour changer - ça, vous pouvez soit : (a) diminuer la largeur de la zone de transition de - façon à ce qu'elle soit inférieure à la largeur de la zone de - recouvrement, soit (b) augmenter la largeur de la zone de recouvrement des deux images. Alors - qu'il est toujours possible d'appliquer (a) quelle que soit la valeur du recouvrement, (b) doit - être pris en compte au moment de la prise de vue. -

      - - -

      Panorama Postprocessing

      -

      Je voudrais utiliser The Gimp pour travailler les raccords de mes images mais Gimp ne sait pas lire les fichiers PSD ?

      -

      - Malheureusement, The GIMP ne sait pas lire les fichier PSD - crées par PTSTitcher et les sorties TIFF multiples sont encombrantes à utiliser. - Il y a deux possibilités pour pallier à ce problème : -

      -
        -
      1. -

        - Utilisez mon assembleur expérimental Nona de façon à produire - des fichiers au format TIFF multiples. Malheureusement je n'ai pas - encore réussi à compiler un .exe pour Windows mais Alexandre - travaille sur ce sujet. Suivez la procédure suivante : -

        -
          -
        • -

          Utilisez Hugin pour créer le projet de panorama et choisissez - « TIFF multiples avec masques » comme format de sortie. - Enregistrez ce projet et lancez Nona en ligne de commande : -

          -
          $ nona projet_pano.pto multi_calques
          -
        • -
        -

        - Cette commande va produire un fichier multi_calques.tif qui - contient toutes les images reformatées, retaillées à leur contours. - Ceci permet d'économiser beaucoup de place en comparaison avec un fichier - de sortie « traditionnel » avec calques de PTStitcher où - tous les calques ont la taille du panorama final. -

        -

        - Malheureusement, The Gimp dans ses versions 1.2 et 1.3 ne supporte pas - les fichiers TIFF mulitcalques. Vous devrez télécharger et compiler - un greffon tiff à jour. - Il a été testé avec GIMP 1.2 et GIMP 1.3.22. -

        -
      2. - -
      3. -

        - Si c'est trop compliqué ou si vous avez besoin de fonctions de PSTItcher - qui ne sont pas supportées par Nona, vous pouvez aussi utiliser - tif2xcf pour combiner - plusieurs sorties TIFF en un fichier XCF multicalques. -

        -

        - Important : PTSTitcher ne créé pas les fichiers de sortie si le nom du - fichier contient l'extension .tif. Ne précisez donc que la racine du - nom, sans l'extension. -

        -

        - Malheureusement, ceci gaspille énormément de mémoire parce qu'il - enregistre chaque image reformatée (Ndt : remappée) dans un - calque qui a la taille du panorama final. -

        -
      4. -
      - - - - -
      diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/hugin.hhc hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/hugin.hhc --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/hugin.hhc 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/hugin.hhc 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ - - - -Contents - - - - -
        -
      • - - - - - - - -
          -
        • - - -
            - -
          • - - - - -
          • - - - - -
          • - - - - -
          • - - - - -
          • - - - - -
          -
        • - - - -
            -
          • - - - - -
          -
        - -
      • - - - - -
      - - - - diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/hugin.hhk hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/hugin.hhk --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/hugin.hhk 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/hugin.hhk 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ - - - -Index - - - -
        -
      • - - - -
      - - - - - diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/hugin.hhp hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/hugin.hhp --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/hugin.hhp 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/hugin.hhp 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -Contents file=hugin.hhc -Index file=hugin.hhk -Title=Hugin Help -Default topic=contents.html - diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/keyboard.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/keyboard.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/keyboard.html 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/keyboard.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ - - - -Hugin - Raccourcis clavier - - - -

      Hugin - Raccourcis clavier

      - -

      - Certaines fonctions, particulièrement le gestionnaire des points de - contrôle, ne peuvent être utilisées efficacement qu'avec les - raccourcis clavier ou les boutons de la souris. -

      - -

      Onglet des Points de Contrôle

      - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Touche Fonction
      a - Ajouter le nouveau point de contrôle qui a été - sélectionné dans les deux images lorsque ajout automatique - n'est pas sélectionné. -
      Touches de curseur Faire défiler l'image qui se trouve sous le curseur de la souris.
      Majuscule + touches de curseur Faire défiler en même temps les deux images.
      f - Ajuster précisément la paire de points de contrôle - actuellement sélectionnée. Identique au bouton ajustement précis. -
      Suppr Supprimer le point de contrôle sélectionné.
      0 Ajuster la taille de l'image à la fenêtre.
      1 Effectuer un zoom à 100%.
      -

      - -

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Fonction de la souris Fonction
      Touche Ctrl + déplacement de la souris. Faire défiler l'image sous le curseur.
      Touche majuscule + déplacement de la souris Faire défiler les deux images ensemble.
      Bouton gauche Sélectionner de nouveaux points ou déplacer des points existants. -
      Bouton droit Ajouter un point de contrôle si ajout automatique n'est pas - sélectionné.
      Bouton du milieu Faire défiler l'image sous le curseur.
      Majuscule + Bouton du milieu Faire défiler les deux images ensemble.
      -

      - Vous trouverez davantage d'informations le site web http://hugin.sourceforge.net/.

      - -Ce document a été écrit par Pablo d'Angelo -<pablo.dangelo@web.de> -

      - - - diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/license.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/license.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/license.html 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/license.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,458 +0,0 @@ - - - -GNU General Public License - - - - - -
      -

      Licence Publique Générale GNU

      - - -

      Benjamin Drieu, APRIL (bdrieu@april.org), Mélanie - Clément-Fontaine (melanie@amberlab.net), - Arnaud Fontaine (arnaud@crao.net), Loïc Dachary - (loic@gnu.org), Frédéric - Couchet (fcouchet@fsffrance.org).

      - -
      -
      -

      - -

      - - This is an unofficial translation of the GNU General Public - License into French. It was not published by the Free Software - Foundation, and does not legally state the distribution terms - for software that uses the GNU GPL--only the original English - text of the GNU GPL does that. However, we hope that this - translation will help French speakers understand the GNU GPL - better. -

      - -

      - Ceci est une traduction non officielle de la GNU General Public - License en français. Elle n'a pas été publiée par la Free - Software Foundation, et ne détermine pas les termes de - distribution pour les logiciels qui utilisent la GNU GPL, seul - le texte anglais original de la GNU GPL déterminent ces - termes. Cependant, nous espérons que cette traduction aidera les - francophones à mieux comprendre la GNU GPL. - -

      - -
      -

      -

      Licence Publique Générale GNU

      -

      Les licences de la plupart des logiciels sont - conçues pour vous enlever toute liberté de les partager et de les - modifier.

      -

      A contrario, la Licence Publique Générale est destinée à garantir - votre liberté de partager et de modifier les logiciels libres, - et à assurer que ces logiciels soient libres pour tous leurs - utilisateurs.

      -

      La présente Licence Publique Générale s'applique à la - plupart des logiciels de la Free Software Foundation, ainsi - qu'à tout autre programme pour lequel ses auteurs s'engagent à - l'utiliser.

      -

      (Certains autres logiciels de la Free Software Foundation - sont couverts par la GNU Lesser General Public License à la place.)

      - -

      Vous pouvez aussi l'appliquer aux programmes qui sont les vôtres.

      -

      Quand nous parlons de logiciels libres, nous parlons de - liberté, non de prix.

      -

      Nos licences publiques générales sont conçues pour vous donner - l'assurance d'être libres de distribuer des copies des - logiciels libres (et de facturer ce service, si vous le - souhaitez), de recevoir le code source ou de pouvoir - l'obtenir si vous le souhaitez, de pouvoir modifier les - logiciels ou en utiliser des éléments dans de nouveaux - programmes libres et de savoir que vous pouvez le - faire.

      -

      Pour protéger vos droits, il nous est nécessaire d'imposer - des limitations qui interdisent à quiconque de vous refuser - ces droits ou de vous demander d'y renoncer.

      -

      Certaines responsabilités vous incombent en raison de ces - limitations si vous distribuez des copies de ces logiciels, ou - si vous les modifiez.

      -

      Par exemple, si vous distribuez des copies d'un tel - programme, à titre gratuit ou contre une rémunération, vous devez - accorder aux destinataires tous les droits dont vous disposez. -

      - -

      Vous devez vous assurer qu'eux aussi reçoivent ou puissent - disposer du code source.

      -

      Et vous devez leur montrer les présentes conditions afin - qu'ils aient connaissance de leurs droits.

      -

      Nous protégeons vos droits en deux étapes : (1) nous sommes - titulaires des droits d'auteur du logiciel, et - (2) nous vous delivrons cette licence, qui vous donne - l'autorisation légale de copier, distribuer et/ou modifier - le logiciel.

      -

      En outre, pour la protection de chaque auteur ainsi que la nôtre, - nous voulons nous assurer que chacun comprenne que ce logiciel libre ne fait l'objet - d'aucune garantie.

      -

      Si le logiciel est modifié par quelqu'un d'autre puis - transmis à des tiers, nous voulons que les destinataires - soient mis au courant que ce qu'ils ont reçu n'est pas le logiciel d'origine, de sorte - que tout problème introduit par d'autres ne puisse entacher - la réputation de - l'auteur originel.

      -

      En définitive, un programme libre restera à la merci des - brevets de logiciels.

      - -

      Nous souhaitons éviter le risque que les redistributeurs - d'un programme libre fassent des demandes individuelles de - licence de brevet, ceci ayant pour effet de rendre le programme - propriétaire. -

      -

      Pour éviter cela, nous établissons clairement que toute licence de brevet - doit être concédée de façon a ce que l'usage en soit libre pour tous - ou bien qu'aucune licence ne soit concédée.

      -

      Les termes exacts et les conditions de copie, distribution et - modification sont les suivants:

      -

      Conditions de copie, distribution - et modification de la Licence Publique Générale GNU.

      -

      0. La présente Licence s'applique à tout programme - ou tout autre ouvrage contenant un avis, apposé par le titulaire des - droits d'auteur, stipulant qu'il peut être distribué au titre - des conditions de la présente Licence Publique - Générale.

      -

      Ci-après, le "Programme" désigne l'un quelconque de ces - programmes ou ouvrages, et un "ouvrage fondé sur le Programme" - désigne soit le Programme, soit un ouvrage qui en dérive au - titre des lois sur le droit d'auteur: en d'autres termes, - un ouvrage contenant le Programme ou une partie de - ce dernier, soit à l'identique, soit avec des modifications et/ou - traduit dans un autre langage.

      - -

      (Ci-après, le terme "modification" implique, sans s'y réduire, le terme traduction)

      -

      Chaque concessionaire sera désigné par "vous".

      -

      Les activités autres que la copie, la distribution et - la modification ne sont pas couvertes par la présente Licence - ; elles sont hors de son champ d'application.

      -

      L'opération consistant à exécuter le Programme n'est soumise à aucune limitation - et les sorties du programme ne sont couvertes que si leur - contenu constitue un ouvrage fondé sur le Programme - (indépendamment du fait qu'il ait été réalisé par l'exécution - du Programme).

      -

      La validité de ce qui précède dépend de ce que fait le - Programme.

      -

      1. Vous pouvez copier et distribuer des copies à - l'identique du code source du Programme tel que vous l'avez - reçu, sur n'importe quel support, du moment que vous apposiez - sur chaque copie, de manière ad hoc et parfaitement - visible, l'avis de droit d'auteur adéquat et - une exonération de garantie ; que vous gardiez intacts tous les - avis faisant référence à la présente Licence et à l'absence de - toute garantie ; et que vous fournissiez à tout destinataire du - Programme autre que vous même un exemplaire de la présente - Licence en même temps que le Programme.

      - -

      Vous pouvez faire payer l'acte physique de - transmission d'une copie, et vous pouvez, à votre discrétion, - proposer une garantie contre rémunération.

      -

      2. Vous pouvez modifier votre copie ou des copies du Programme - ou n'importe quelle partie de celui-ci, créant ainsi un ouvrage - fondé sur le Programme, et copier et distribuer de telles modifications ou ouvrage selon les - termes de l'Article 1 ci-dessus, à condition de vous conformer également - à chacune des obligations suivantes:

      -

      a) Vous devez munir les fichiers modifiés d'avis bien visibles - stipulants que vous avez modifié ces - fichiers, ainsi que la date de chaque modification;

      -

      b) Vous devez prendre les dispositions nécessaires pour que - tout ouvrage - que vous distribuez ou publiez, et qui, en totalité ou en partie, - contient ou est fondé sur le Programme - ou une partie - quelconque de ce dernier - soit concédé comme un tout, - à titre gratuit, à n'importe quel tiers, au titre des conditions - de la présente Licence.

      -

      c) Si le programme modifié lit habituellement des instructions - de façon interactive lorsqu'on l'exécute, vous devez, - quand il commence son exécution pour ladite - utilisation interactive de la manière la plus usuelle, faire - en sorte qu'il imprime ou affiche une annonce - comprenant un avis de droit d'auteur ad hoc, et un avis - stipulant qu'il n'y a pas de garantie (ou bien indiquant que - c'est vous qui fournissez la garantie), et que - les utilisateurs peuvent redistribuer le programme en respectant - les présentes obligations, et expliquant à l'utilisateur comment - voir une copie de la présente Licence.

      -

      (Exception : si le Programme est lui-même interactif - mais n'imprime pas habituellement une telle annonce, votre - ouvrage fondé sur le Programme n'est pas obligé - d'imprimer une annonce).

      - -

      Ces obligations s'appliquent à l'ouvrage modifié - pris comme un tout. -

      -

      Si des éléments identifiables - de cet ouvrage ne sont pas fondées sur le Programme et peuvent - raisonnablement être considérées comme des ouvrages indépendants - distincts en eux mêmes, alors la présente Licence et - ses conditions ne - s'appliquent pas à ces éléments lorsque vous les distribuez - en tant qu'ouvrages distincts.

      -

      - Mais lorsque vous distribuez ces mêmes éléments comme partie - d'un tout, lequel constitue un ouvrage fondé sur le Programme, - la distribution de ce tout doit être soumise aux conditions de - la présente Licence, et les autorisations qu'elle octroie aux - autres concessionaires s'étendent à l'ensemble de l'ouvrage et - par conséquent à chaque et toute partie indifférement de qui - l'a écrite. -

      -

      Par conséquent, l'objet du présent article n'est pas de revendiquer des droits - ou de contester vos droits sur un ouvrage entièrement écrit par - vous; son objet est plutôt d'exercer le droit de contrôler - la distribution d'ouvrages dérivés ou d'ouvrages collectifs fondés - sur le Programme. -

      -

      - De plus, la simple proximité du Programme avec un autre - ouvrage qui n'est pas fondé sur le Programme (ou un ouvrage - fondé sur le Programme) sur une partition d'un espace de - stockage ou un support de distribution ne place pas cet autre - ouvrage dans le champ d'application de la présente Licence. -

      - -

      3. Vous pouvez copier et distribuer le Programme (ou un - ouvrage fondé sur lui, selon l'Article 2) sous forme de code - objet ou d'exécutable, selon les termes des Articles 1 et 2 - ci-dessus, à condition que vous accomplissiez l'un des points - suivants :

      -

      a) L'accompagner de l'intégralité du code source correspondant, - sous une forme lisible par un ordinateur, lequel doit être distribué - au titre - des termes des Articles 1 et 2 ci-dessus, sur un support - habituellement utilisé pour l'échange de logiciels; ou,

      -

      b) L'accompagner d'une proposition écrite, valable pendant - au moins trois ans, de fournir à tout tiers, à un tarif qui - ne soit pas supérieur à ce que vous coûte l'acte physique de - réaliser une distribution source, une copie intégrale du code - source correspondant sous une forme lisible par un - ordinateur, qui sera distribuée au titre des termes des - Articles 1 et 2 ci-dessus, sur un support habituellement - utilisé pour l'échange de logiciels; ou, -

      -

      c) L'accompagner des informations reçues par vous concernant la proposition de distribution du code source correspondant. (Cette - solution n'est autorisée que dans le cas d'une distribution non-commerciale - et seulement si vous avez reçu le programme sous forme de code objet ou - d'éxécutable accompagné d'une telle proposition - en conformité avec le - sous-Article b ci-dessus.) -

      -

      Le code source d'un ouvrage désigne la forme favorite pour - travailler à des modifications de cet ouvrage. Pour un - ouvrage exécutable, le code source intégral désigne la - totalité du code source de la totalité des modules qu'il - contient, ainsi que les éventuels fichiers de définition des - interfaces qui y sont associés, ainsi que les scripts utilisés - pour contrôler la compilation et l'installation de - l'exécutable. Cependant, par exception spéciale, le code - source distribué n'est pas censé inclure quoi que ce soit de - normalement distribué (que ce soit sous forme source ou - binaire) avec les composants principaux (compilateur, noyau, - et autre) du système d'exploitation sur lequel l'exécutable - tourne, à moins que ce composant lui-même n'accompagne - l'exécutable. -

      -

      - - Si distribuer un exécutable ou un code objet consiste à - offrir un accès permettant leur copie depuis un - endroit particulier, alors l'offre d'un accès équivalent pour - copier le code source depuis le même endroit compte comme une - distribution du code source - même si les tiers ne sont pas - contraints de copier le source en même temps que le code - objet. -

      -

      4. Vous ne pouvez copier, modifier, concéder en sous-licence, ou distribuer - le Programme, sauf tel qu'expressément prévu par la présente Licence. - Toute tentative de copier, modifier, concéder en sous-licence, ou - distribuer le Programme d'une autre manière est réputée non valable, et met - immédiatement fin à vos droits au titre de la présente Licence. - Toutefois, les tiers ayant reçu de vous des copies, ou des droits, - au titre de la présente Licence ne verront pas leurs autorisations résiliées - aussi longtemps que ledits tiers se conforment pleinement à elle. -

      -

      5. Vous n'êtes pas obligé d'accepter la présente Licence étant donné que vous ne - l'avez pas signée. Cependant, rien d'autre - ne vous accorde l'autorisation de modifier ou - distribuer le Programme ou les ouvrages fondés sur lui. Ces actions sont - interdites par la loi si vous n'acceptez pas la présente Licence. - En conséquence, en modifiant ou - distribuant le Programme (ou un ouvrage quelconque fondé sur - le Programme), vous signifiez votre acceptation de la présente Licence en le faisant, - et de toutes ses conditions concernant la copie, la - distribution ou la modification du Programme ou d'ouvrages fondés - sur lui.

      -

      - 6. Chaque fois que vous redistribuez le Programme (ou n'importe quel - ouvrage fondé sur le Programme), une licence est automatiquement - concédée au destinataire par le concédant originel de la licence, - l'autorisant à - copier, distribuer ou modifier le Programme, sous réserve - des présentes conditions. Vous ne pouvez imposer - une quelconque limitation supplémentaire à l'exercice des - droits octroyés au titre des présentes par le destinataire. Vous - n'avez pas la responsabilité d'imposer le respect de - la présente Licence à des tiers.

      -

      - 7. Si, conséquement à une décision de justice ou l'allégation - d'une transgression de brevet ou pour toute autre raison (non limitée à un - probleme de brevet), des obligations vous sont imposées (que ce soit par jugement, - conciliation ou autre) qui contredisent les conditions de la présente Licence, elles - ne vous excusent pas des conditions de la présente Licence. Si vous ne pouvez - distribuer de manière à satisfaire simultanément vos obligations au titre - de la présente Licence et toute autre obligation pertinente, alors il en découle que vous ne pouvez pas du tout distribuer le Programme. Par exemple, - si une licence de brevet ne permettait pas une redistribution sans redevance du - Programme par tous ceux qui reçoivent une copie directement ou indirectement - par votre intermédiaire, alors la seule façon pour vous de satisfaire à la - fois à la licence du brevet et à la présente Licence serait de vous abstenir - totalement de toute distribution du Programme. -

      - -

      Si une partie quelconque de cet article est tenue pour - nulle ou inopposable dans une circonstance particulière - quelconque, l'intention est que le reste de l'article - s'applique. La totalité de la section s'appliquera dans toutes les - autres circonstances.

      -

      Cet article n'a pas pour but de vous induire à transgresser un - quelconque brevet ou d'autres revendications à un droit de propriété ou - à contester la validité de la moindre de ces revendications ; cet article a pour - seul objectif de protéger l'intégrité du système de distribution - du logiciel libre, qui est mis en oeuvre par la pratique des licenses - publiques. De nombreuses personnes ont fait de généreuses contributions - au large spectre de logiciels distribués par ce système en se fiant à - l'application cohérente de ce système ; il appartient à chaque auteur/donateur - de décider si il ou elle veut distribuer du logiciel par l'intermédiaire - d'un quelconque autre système et un concessionaire ne peut imposer ce - choix. -

      -

      Cet article a pour but de rendre totalement limpide ce que l'on pense - être une conséquence du reste de la présente Licence.

      -

      8. Si la distribution et/ou l'utilisation du Programme est limitée - dans certains pays que ce soit par des brevets ou par des interfaces soumises - au droit d'auteur, le titulaire originel des droits d'auteur - qui décide de couvrir le Programme par la présente Licence peut ajouter - une limitation géographique de distribution explicite qui exclue ces pays afin - que la distribution soit permise seulement dans ou entre les pays qui ne sont - pas ainsi exclus. Dans ce cas, la présente Licence incorpore la limitation - comme si elle était écrite dans le corps de la présente Licence. -

      -

      9. La Free Software Foundation peut, de temps à autre, publier des - versions révisées et/ou nouvelles de la Licence Publique Générale. De telles - nouvelles versions seront similaires à la présente version dans l'esprit - mais pourront différer dans le détail pour prendre en compte - de nouvelles problématiques ou inquiétudes. -

      -

      Chaque version possède un numéro de version la distinguant. Si le Programme - précise le numéro de version de la présente Licence qui s'y applique - et "une version ultérieure quelconque", vous avez le choix - de suivre les - conditions de - la présente version ou de toute autre version ultérieure publiée par la - Free Software Foundation. Si le Programme ne spécifie aucun numéro de - version de la présente Licence, vous pouvez choisir une version quelconque - publiée par la Free Software Foundation à quelque moment que ce soit.

      - -

      10. Si vous souhaitez incorporer des parties du Programme - dans d'autres programmes libres dont les conditions de - distribution sont différentes, écrivez à l'auteur pour lui en demander - l'autorisation. Pour les logiciels dont la Free Software Foundation est - titulaire des droits d'auteur, écrivez à la Free Software Foundation ; - nous faisons parfois des exceptions dans ce sens. Notre décision sera guidée - par le double objectif de préserver le statut libre de tous les dérivés de nos - logiciels libres et de promouvoir le partage et la réutilisation des logiciels - en général. -

      -

      ABSENCE DE GARANTIE

      -

      11. COMME LA LICENCE DU PROGRAMME EST CONCEDEE A TITRE GRATUIT, - AUCUNE GARANTIE NE S'APPLIQUE AU PROGRAMME, DANS LES LIMITES - AUTORISEES PAR LA LOI APPLICABLE. SAUF MENTION CONTRAIRE ECRITE, - LES TITULAIRES DU DROIT D'AUTEUR ET/OU LES AUTRES PARTIES FOURNISSENT - LE PROGRAMME "EN L'ETAT", SANS AUCUNE GARANTIE DE - QUELQUE NATURE QUE CE SOIT, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS - SANS Y ETRE LIMITE, LES GARANTIES IMPLICITES DE COMMERCIABILITE ET - DE LA CONFORMITE A UNE UTILISATION PARTICULIERE. VOUS - ASSUMEZ LA TOTALITE DES RISQUES LIES A LA QUALITE ET AUX PERFORMANCES DU PROGRAMME. - SI LE PROGRAMME SE REVELAIT DEFECTUEUX, LE COUT DE L'ENTRETIEN, - DES REPARATIONS OU DES CORRECTIONS NECESSAIRES - VOUS INCOMBENT INTEGRALEMENT.

      -

      12. EN AUCUN CAS, SAUF LORSQUE LA LOI APPLICABLE OU UNE CONVENTION ECRITE L'EXIGE, UN TITULAIRE DE DROIT D'AUTEUR QUEL QU'IL SOIT, OU TOUTE PARTIE QUI POURRAIT MODIFIER ET/OU REDISTRIBUER LE PROGRAMME COMME PERMIS CI-DESSUS, NE POURRAIT ETRE TENU POUR RESPONSABLE A VOTRE EGARD DES DOMMAGES, INCLUANT LES DOMMAGES GENERIQUES, SPECIFIQUES, SECONDAIRES OU CONSECUTIFS, RESULTANT DE L'UTILISATION OU DE L'INCAPACITE D'UTILISER LE PROGRAMME (Y COMPRIS, MAIS SANS Y ETRE LIMITE, LA PERTE DE DONNEES, OU LE FAIT QUE DES DONNEES SOIENT RENDUES IMPRECISES, OU LES PERTES EPROUVEES PAR VOUS OU PAR DES TIERS, OU LE FAIT QUE LE PROGRAMME ECHOUE A INTEROPERER AVEC UN AUTRE PROGRAMME QUEL QU'IL SOIT) MEME SI LE DIT TITULAIRE DU DROIT D'AUTEUR OU LE PARTIE CONCERNEE A ETE AVERTI DE L'EVENTUALITE DE TELS DOMMAGES. -

      -

      FIN DES CONDITIONS

      -

      Comment appliquer ces conditions à vos nouveaux programmes

      - -

      Si vous développez un nouveau programme, et si vous voulez qu'il soit de la plus grande utilité possible pour le public, le meilleur moyen d'y parvenir est d'en faire un logiciel libre que chacun peut redistribuer et modifier au titre des présentes conditions.

      -

      Pour ce faire, munissez le programme des avis qui suivent. - Le plus sûr est de les ajouter au début de chaque fichier source - pour véhiculer le plus efficacement possible l'absence - de toute garantie ; chaque fichier devrait aussi contenir au moins - la ligne "copyright" et une indication de l'endroit où se trouve l'avis - complêt. -

      -

      [Une ligne donnant le nom du programme et une courte idée de ce qu'il fait.] - - Copyright (C) [année] [nom de l'auteur] - - Ce programme est un logiciel libre ; vous pouvez le - redistribuer et/ou le modifier au titre des clauses de la - Licence Publique Générale GNU, telle que publiée par la Free - Software Foundation ; soit la version 2 de la Licence, ou (à - votre discrétion) une version ultérieure quelconque. - - Ce programme est distribué dans l'espoir qu'il sera utile, - mais SANS AUCUNE GARANTIE ; sans même une garantie implicite de - COMMERCIABILITE ou DE CONFORMITE A UNE UTILISATION - PARTICULIERE. Voir la Licence Publique - Générale GNU pour plus de détails. - - Vous devriez avoir reçu un exemplaire de la Licence Publique - Générale GNU avec ce programme ; si ce n'est pas le cas, - écrivez à la Free Software Foundation Inc., 51 Franklin - Street, Fifth Floor, Boston, MA 02110-1301, USA.

      -

      Ajoutez aussi des informations sur la manière de vous contacter - par courrier électronique et courrier postal.

      -

      Si le programme est interactif, faites en sorte qu'il - affiche un court avis tel que celui-ci lorsqu'il démarre en - mode interactif : -

      - -

      Gnomovision version 69, Copyright (C) année nom de l'auteur - Gnomovision n'est accompagné d'ABSOLUMENT AUCUNE GARANTIE ; pour plus de - détails tapez "show w". Ceci est un logiciel libre et vous êtes - invité à le redistribuer en respectant certaines obligations ; pour plus - de détails tapez "show c".

      -

      Les instructions hypothétiques "show w" et "show c" sont supposées montrer - les parties ad hoc de la Licence Publique Générale. Bien - entendu, les instructions que vous utilisez peuvent porter d'autres - noms que "show w" et "show c" ; elles peuvent même être des - clics de souris ou des éléments d'un menu ou tout ce qui convient à - votre programme.

      -

      Vous devriez aussi obtenir de votre employeur (si vous - travaillez en tant que développeur) ou de votre école, si c'est - le cas, qu'il (ou elle) signe une "renonciation aux droits - d'auteur" concernant le programme, si nécessaire. Voici un - exemple (changez les noms) : -

      -

      Yoyodyne, Inc., déclare par la présente renoncer à toute prétention - sur les droits d'auteur du programme "Gnomovision" (qui fait des - avances aux compilateurs) écrit par James Hacker. - - [signature de Ty Coon], 1er avril 1989 - - Ty Coon, President du Vice

      -

      La présente Licence Publique Générale n'autorise pas l'incorporation de votre - programme dans des programmes - propriétaires. Si votre programme est une bibliothèque de - sous-programmes, vous pouvez considérer plus utile - d'autoriser l'édition de liens d'applications propriétaires avec - la bibliothèque. Si c'est ce que vous voulez faire, utilisez la - GNU Lesser General Public License au lieu de la présente Licence. -

      - - - diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/manual.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/manual.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/manual.html 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_fr_FR/manual.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,303 +0,0 @@ - - - -Manuel de Hugin - - - - - -
      -

      Manuel de Hugin

      - -

      Inteface graphique facile à utiliser pour les Panorama Tools.

      - -

      Hugin supporte actuellement la majorité des fonctionnalités des - « panorama tools » et peut être utilisé pour - créer différents types d'images panoramiques.

      - -

      Introduction

      - -

      Ceci est le manuel de référence (Ah, la bonne blague,.... ;-) de Hugin. - Il ne couvre pas la création de panoramas en général mais essaie - de documenter les raccourcis clavier et d'autres choses qui ne sont pas évidentes - lorsqu'on contemple l'interface pour la première fois.

      - -

      - La page d'accueil de Hugin contient des informations - plus générales et quelques tutoriaux. -

      - -

      Crédits

      -
        -
      • Développement principal : Pablo d'Angelo <pablo@mathematik.uni-ulm.de>
      • -
      • Développement additionnel : Kai-Uwe Behrmann
      • -
      • Tutoriels et paquets rpm : Bruno Postle
      • -
      - -

      Merci à tous les abonnés à la liste de diffusion ptx pour leurs nombreuses idées -intéressantes et pour les tests.

      - -

      REMARQUE IMPORTANTE CONCERNANT UN BOGUE

      -

      - Actuellement, les changements dans les champs de texte doivent - être confirmés en pressant la touche « Entrée » ou - en sélectionnant un autre élément de l'interface graphique - (en pressant la touche de tablulation ou cliquant quelque part - ailleurs). Malheureusement, sur certaines plate-forme, seules - certaines de ces méthode fonctionnent. -

      - -

      Fenêtre Principale

      - -

      - Cette fenêtre consiste en une barre d'outils qui permet - un accès rapide à certaines fonctions importantes. Elle - comporte aussi les onglets Images, Appareil photo et objectif, - Points de Contrôle, Optimiseur et Assembleur qui seront détaillés - plus loin. -

      - -

      Onglet Images

      - -

      - Des images peuvent être ajoutée soit en utilisant le bouton - Ajouter, soit par glisser-déposer. Pour modifier l'orientation - d'une ou plusieurs images, sélectionnez-les dans la liste à gauche. - L'image sera alors affichée dans la zone d'aperçu et son orientation - (les valeurs selon les axes de lacet, tangage et roulis) pourront - être éditées sur la gauche. -

      - -

      - Il est possible de sélectionner plusieurs images en même temps. Les - changements seront alors appliqués à toutes les images sélectionnées. -

      - -

      Onglet appareil photo et objectif

      -

      - L'onglet appareil photo et objectif ressemble à l'onglet des images - sauf que les paramètres de l'objectif pourront y être édités. - Comme dans l'onglet des images, on peut utiliser des sélections multiples - pour modifier les paramètres de plusieurs images. -

      - -

      - Actuellement, un seul objectif est supporté. L'idée est que - l'objectif décrit le processus qui a été utilisé pour créer - l'image. Les paramètres les plus importants sont le - type d'objectif et le HFOV (angle de champ horizontal). - Hugin va lire les données EXIF dans les fichiers JPEG créés par les - appareils photo numériques ce qui fait que normalement, cette donnée - est remplie correctement. -

      - -

      - Les photographes n'utilisent pas un HFOV en degrés mais plutôt - la distance focale. On peut saisir la distance focale qui sera alors convertie - en HFOV en degrés tel que requis par l'outil de panorama. - La distance focale utilisée est la focale équivalente d'un appareil - argentique 35mm. -

      - -

      - Les images sont habituellement plus ou moins affectées de distorsion. - On peut le voir plus particulièrement s'il y a de longues lignes - droites près des bords de l'image, elle ne sont habituellement pas - strictement rectilignes mais incurvées. Les paramètres a, - b et c sont utilisés pour supprimer cette distorsion. - Ils sont appliqués de manière radiale à partir du centre - de l'image, qui peut être déplacé en modifiant les - paramètres d et e. -

      - -

      - Lors de l'acquisition des images, il est possible que les paramètres - changent et donc qu'ils ne soient pas les mêmes pour chacune des images. - Il peut y avoir de nombreuses raisons à cela, l'une d'entre-elles peut - être un scanner qui coupe davantage de pixels d'un coté de l'image - que de l'autre. Les autres paramètres restent identiques, par - exemple, les paramètres a, b et c (si la focale du zoom et la mise au - point pour ces images restent identiques). -

      -

      - La case à cocher hérité signifie que ce paramètre - ne varie pas entre les différentes images qui ont été prises - avec ces paramètres d'objectif. Si un paramètres est hérité - il est forcé à la même valeur pour toutes les images. - Lorsque les paramètres hérités sont optimisés, il sont - conservés identiques pour toutes les images alors que les paramètres - qui ne sont pas hérités peuvent prendre des valeurs spécifiques - pour chacune des images. -

      - -

      Onglet des points de contrôle

      - -

      - Les points de contrôle sont sans doute une des choses les plus importantes - pour l'utilisation des outils de panorama. -

      - -

      - Cet onglet consiste en deux zones d'affichage d'images et de barres - sélection pour passer d'une image à l'autre afin de les éditer. - Le bas de cette fenêtre contient une liste où les points peuvent être - sélectionnés et un certain nombre de champs pour modifier un point - préalablement sélectionné. Les points peuvent aussi être - sélectionnés en les cliquant ou en les glissant dans les images. - Il est possible d'effectuer un zoom de façon à afficher l'image en entier. -

      - -

      - L'ajout de points de contrôle se fait en cliquant d'abord à l'intérieur - d'une des images pour sélectionner un point et ensuite dans l'autre image. - Si ajout automatique n'a pas été sélectionné, - les points peuvent être déplacés en cliquant à un autre - endroit dans les images. Il sont ajoutés à la liste des points de - contrôle en pressant le bouton droit de la souris. Si vous pressez - le bouton droit de la souris alors qu'un seul point est sélectionné, - la sélection de ce point est abandonnée. ajout automatique - ajoute le point de contrôle dès que les deux points ont été - spécifiés. -

      - -

      - La création d'un point de contrôle est influencée par les case à - cocher suivantes : -

      -
        -
      • ajustement précis automatique : Hugin vous aide à trouver le - second point en le recherchant dans la zone de recherche (matérialisée - par un rectangle autour du curseur). Ça ne fonctionne pas toujours mais c'est - fiable dans la plupart des cas si la distorsion des images n'est pas trop importante. - Vous pouvez l'essayer et jouer avec. -
      • -
      • ajout automatique : un point de contrôle est automatiquement ajouté - lorsque les deux points sont connus. Vous n'aurez pas le temps d'affiner la sélection - avant d'ajouter le point. -
      • -
      • estimation automatique : essaie d'estimer la position du second point à - partir de la valeur de la translation entre les deux images. C'est très brutal - et ne fonctionne probablement que pour les panoramas à une seule rangée - créés à partir d'images rectilinéaires. -
      • -
      - -

      - Tous ces indicateurs peuvent être combinés. Typiquement j'utilise - à la fois ajustement précis automatique et estimation automatique. - Ensuite, Hugin sélectionne habituellement automatiquement le second point - correctement. Bon, c'est uniquement pour des panoramas ne comportant qu'une - seule rangée... -

      - -

      - Les images sont affectée d'un facteur d'agrandissement, le premier clic - effectue un zoom temporaire à 100% pour vous permettre d'ajuster votre - sélection. Remarquez que seul le second clic va démarrer l'estimation - automatique. -

      - -

      - Le bouton ajustement précis peut être utilisé pour trouver une - meilleure position pour le point de l'image de droite correspondant à un point - déjà sélectionné. Au contraire de l'ajustement précis - automatique, il n'effectuera la recherche que dans une très petite zone autour du - point. Cette fonction est particulièrement utile si vous avez déplacé - les deux points manuellement mais que vous désirez avoir des points de contrôle - qui soient ajusté précisément. -

      - -

      - Pressez le bouton du milieu de la souris pour déplacer l'image. Si vous pressez - la touche majuscule en la déplaçant, les deux images vont se - déplacer en même temps. -

      - -

      - Cette fenêtre autorise certains raccourcis clavier : -

      - - - - - - - - - - -
      Touche Fonction
      a ajouter un nouveau point sélectionné dans les deux images - si ajout automatique n'est pas actif.
      touches de curseur faire défiler l'image qui se trouve sous - le curseur de la souris.
      majuscule + touche curseur faire défiler les deux images - en même temps.
      f ajuster précisément la paire de points de contrôle - actuellement sélectionnée. Identique au bouton ajustement précis. -
      Suppr Supprimer le point de contrôle actuellement - sélectionné.
      0 ajuster le zoom à la taille de la fenêtre.
      1 vue à 100%.
      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Fonction de la souris Fonction
      touche Ctrl + déplacement de la souris Faire défiler l'image sous le curseur.
      touche majuscule + déplacement de la souris Faire défiler les deux images.
      bouton de gauche Utiliser le bouton de gauche pour sélectionner de nouveaux points ou pour - déplacer des points existants. -
      bouton droit de la souris Ajouter un point de contrôle si ajout automatique n'est pas validé.
      bouton du milieu de la souris faire défiler l'image qui se trouve sous le curseur.
      majuscule + bouton du milieu de la souris Faire défiler les deux images.
      - - -

      Onglet Optimiseur

      -

      - L'optimiseur déplace les images afin de les mettre dans la bonne position - pour qu'elles puissent être assemblées en un panorama où les - jonctions seront invisibles. -

      - -

      - Pour sélectionner ce que l'optimiseur doit essayer d'estimer, faites votre - choix dans la liste déroulante Optimiser puis cliquez le bouton - Optimiser maintenant !. - - Si vous sélectionnez les « paramètres personnalisés », - vous pouvez changer -

      - -

      Onglet Assembleur

      -

      - Des options concernant le panorama de sortie peuvent être - fixées ici. - - FIXME, encore des choses à écrire... -

      - -
      -

      -Ce document a été écrit par Pablo d'Angelo <pablo.dangelo@web.de> -

      - - - -
      - - diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/16bit_workflow_with_hugin.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/16bit_workflow_with_hugin.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/16bit_workflow_with_hugin.html 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/16bit_workflow_with_hugin.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,97 +0,0 @@ - - - - - - - - - - Processo di lavoro a 16 bit con hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
      -
      -
      - -

      Processo di lavoro a 16 bit con hugin

      -
      - -
      - -

      In questo esempio non verrà discusso il motivo per cui si desidera scattare delle immagini in formato RAW assemblandole poi -nel formato a 16 bit; verrà invece fornita una semplice spiegazione pratica che elenca gli strumenti disponibili e ne descrive l'utilizzo con -hugin. -

      -

      Preparare le immagini a 16 bit

      -

      Si cominci utilizzando dcraw per leggere i file RAW convertendoli in serie (batch) in un formato PPM a 16 bit per -canale portabile. Le immagini RAW scattate da una Nikon 8700 hanno un'estensione .nef, quindi il comando è il seguente: -

      -
       dcraw -v -w -4 dscn*.nef
      -
      -

      Si noti che, anche se hugin, nona ed enblend -supportano i dati HDR in virgola mobile, non si ha alcuna perdita convertendo i dati RAW in un -formato a 16 bit di profondità colore dato che le immagini RAW sono tipicamente a 12bit. Se si necessita di un più ampio intervallo dinamico di quello fornito dalle immagini RAW, è possibile combinare delle esposizioni scattate a forcella (bracketed) seguendo il processo di elaborazione HDR con hugin. -

      I file PPM non sono leggibili da hugin o nona, quindi il passo successivo consiste -nell'utilizzare ImageMagick per creare dei file TIFF a 16 bit per canale: -

      -
       convert -rotate 270 -gamma 2.2 dscn3088.ppm dscn3088.tif
      - convert -rotate 270 -gamma 2.2 dscn3089.ppm dscn3089.tif
      - ...
      -
      -

      Si noti che le immagini sono state ruotate tutte insieme dato che sono state tutte scattate nella modalità ritratto. -Anche la correzione della Gamma è effettuata in questo passaggio dato che i dati RAW sono -generalmente lineari e difficili da visualizzare senza un profilo di colore (non ancora supportato da -hugin). -

      Ora è possibile eliminare i file PPM intermedi. -

      In alternativa può essere utilizzato UFRaw per la conversione diretta dal formato RAW. -

      Se necessario, correggere l'aberrazione cromatica con fulla in questa fase. -

      -

      Assemblare con hugin

      -

      Le immagini TIFF possono essere caricate in hugin come solito con l'eccezione che: -

      le informazioni EXIF relative al campo inquadrato sono andate perse -durante la conversione in PPM, quindi il valore deve essere inserito manualmente, riottimizzato con PTOptimizer o -trasferito dai file RAW utilizzando exiftool: -

      -
       exiftool -tagsfromfile DSCN3088.nef -overwrite_original_in_place -exif:all DSCN3088.tif
      -
      -

      Assemblare le immagini in un file in formato TIFF; è possibile utilizzare enblend -come passo finale. -

      Se si sta lavorando con dei dati lineari (gamma = 1), allora si deve assegnare un gamma pari a 2,2 alle immagini rimappate -dopo l'assemblatura con nona ma prima di avviare enblend: -

      -
       mogrify -gamma 2.2 myproject_*.tif
      -
      -

      Post processing

      -

      Il file TIFF ottenuto è nel formato RGBA a 16bit per canale, che non è visualizzabile dalla maggior parte dei visualizzatori -di immagini o da un browser web; occorre quindi compiere un ulteriore passo per rendere le immagini più compatibili: -

      aprire il file in un programma di foto ritocco, in grado di elaborare immagini a 16 bit, come cinepaint o krita; modificare a piacimento i colori, ritoccare o -applicare una maschera di contrasto e salvare infine in un formato a 8bit per canale come JPEG. -

      Alternativamente si possono ottenere degli ottimi risultati semplicemente applicando il profilo di colore -ICC della propria fotocamera e convertendo poi allo spazio colore sRGB; lcms fornisce lo strumento tifficc per realizzare questo passaggio: -

      -
       tifficc -i mycamera.icm myproject.tif output.tif
      -
      - - -
      \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Aliasing.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Aliasing.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Aliasing.html 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Aliasing.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,74 +0,0 @@ - - - - - - - - - - Aliasing - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
      -
      -
      - -

      Aliasing

      -
      - -
      - -


      -

      -

      Definizioni e retroterra

      -

      L'aliasing è un processo che provoca "jaggies" o effetti di Moire quando un'immagine è campionata o ricampionata. -

      Il termine "aliasing" proviene dalle analisi nel dominio della frequenza. Una bassa frequenza di campionamento di un segnale, produce l'"aliasing" dei componenti -del segnale stesso in alta frequenza e quindi il segnale campionato risulta corrotto. -

      Per evitare l'aliasing, un segnale non deve contenere delle frequenze superiori alla metà di quella di campionamento. Quindi, un'immagine di partenza non deve -contenere dei dettagli di dimensione inferiore a un pixel nell'immagine finale. -

      Questo può essere indotto filtrando correttamente il segnale o sfocando l'immagine prima di ricampionarla. -

      Il filtraggio è un metodo di anti-alias. (ne esistono altri, che non sono importanti ai fini di questa applicazione) -

      Quando si utilizzano le versioni più vecchie dei Panorama Tools (e degli strumenti derivati come PTStitcher, -nona o i plugin dei Panorama Tools) è importante ricordare che i Panorama Tools non avevano filtri anti-alias fino alla versione 2.7.0.11 -di pano12. Quindi, se si desiderava creare un panorama rimpicciolito direttamente con i Panorama Tools, spesso si ottenevano "jaggies" o effetti Moire. -

      Nella versione 2.7.0.11 furono aggiunti un paio di filtri interpolatori anti-aliasing che potevano essere utilizzati specificando il numero di interpolatore corretto -nello script, o scegliendone direttamente uno degli interpolatori se il programma lo supporta. Comunque, i più comuni interpolatori "poly3", "spline16", "spline36", -"sinc256", "spline64", "bilinear", "nearest neighbor" e "sinc1024" causano ancora dell'aliasing. -

      -

      Consigli

      -

      Se si utilizza una versione precedente alla 2.7.0.11 dei panotools o se non è possibile utilizzare i nuovi filtri anti-aliasing, si otterranno sicuramente dei risultati -migliori salvando i panorami in grande dimensione con i Panorama Tools e ridimensionandoli (downsampling), in seguito, utilizzando -altri strumenti come Photoshop, ImageMagick o Gimp, che forniscono la funzione di anti-aliasing . -

      -

      Illustrazioni

      -

      Le immagini seguenti sono relative ai consigli forniti; esse mostrano un ritaglio da un panorama di dimensione 1000x500 pixel. -

      A sinistra è mostrato il risultato ottenuto utilizzando Photoshop e ridimensionando, con il comando "dimensione immagine" e il ricampionamento Bicubico, -un'immagine iniziale di 6068x3034 pixel (6068x3034 era la dimensione ottimale impostata da PTGui). -

      Sulla destra è invece riportata l'immagine di dimensione 1000x500 pixel prodotta direttamente dai Panorama Tools. -

      Grandezza normale -

      Image:AliasingPScubic.jpg Image:AliasingPTpoly3.jpg -


      -Ingrandimento doppio per mostrare meglio l'effetto di aliasing -

      Image:AliasingPScubic_2x.jpg Image:AliasingPTpoly3_2x.jpg -

      - -
      -Tratto e tradotto da "http://wiki.panotools.org/Aliasing"
      -
      \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Align_a_stack_of_photos.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Align_a_stack_of_photos.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Align_a_stack_of_photos.html 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Align_a_stack_of_photos.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ - - - - - - - - - - Allineare una pila di fotografie - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
      -
      -
      - -

      Allineare una pila di fotografie

      -
      - -
      - -

      In alcune occasioni si rende necessario allineare una pila di fotografie pressoché identiche: -

      -
      • allineare i canali di rosso, verde e blu per correggere l'aberrazione cromatica; -
      • allineare delle foto scattate in un certo periodo di tempo per crearne un filmato; -
      • allineare delle immagini scattate a forcella per creare una singola immagine in HDR -o con la fusione del contrasto; -
      • allineare le fotografie scattate con diverse distanze di messa a fuoco per unirle in un'unica immagine a estesa -profondità di campo. -
      -

      I Panorama tools risultano particolarmente utili per raggiungere questo scopo dato che permettono un allineamento -con precisione inferiore al pixel e forniscono un sofisticato modello di correzione dell'obiettivo per -applicare la distorsione; anche le foto scattate a differenza di anni con diversi apparecchi fotografici, possono essere allineate perfettamente. -

      La maggior parte degli strumenti per la realizzazione di immagini in HDR come photomatix, forniscono alcune funzionalità di allineamento, -che sono sufficienti per la maggior parte degli utilizzi. Altrimenti lo script di Perl denominato hdrprep automatizza il processo descritto nel seguito: -

      -

      Allineare le immagini con hugin

      - -
      • creare alcune centinaia di punti di controllo per ogni paio di fotografie consecutive utilizzando il -tasto g nella linguetta dei punti di controllo; -
      -
      • effettuare la regolazione precisa di tutti i punti; -
      -
      • cancellare i punti di controllo con una correlazione inferiore al 90% (per esempio aprire l'elenco dei punti di controllo premendo «F3» o l'icona «mostra -punti di controllo» sulla barra degli strumenti, premere il pulsante seleziona per distanza, inserire -0,9, e premere il pulsante Cancella); -
      -
      • ottimizzare le posizioni (ctrl-T), selezionare di nuovo i punti per distanza ma inserire però 0,2. Ottimizzare di nuovo; -
      -
      • correggere il campo inquadrato nella linguetta dell'assemblatore rendendolo leggermente inferiore a quello delle immagini di partenza in modo che - non si presentino dei bordi trasparenti; -
      -
      • assemblare nel formato TIFF multiplo. -
      - - - -
      \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Align_image_stack.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Align_image_stack.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Align_image_stack.html 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Align_image_stack.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,120 +0,0 @@ - - - - - - - - - - Align image stack - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
      -
      -
      - -

      Align image stack

      -
      - -
      - -

      align_image_stack è uno strumento da linea di comando disponibile con la versione in sviluppo di hugin -e permette di allineare delle immagini che si sovrappongono al fine di facilitare la creazione di HDR, la fusione dell'esposizione -e la realizzazione di immagini con una estesa profondità di campo. -

      -

      Utilizzo

      -
      align_image_stack [opzioni] file di input
      -
      -

      Opzioni: modalità di funzionamento

      -
      -p file   
      -
      -

      Crea un file .pto (utile per risolvere eventuali problemi o per effettuare ulteriori modifiche) -

      -
      -a prefisso 
      -
      -

      Allinea le immagini, attribuendo un nome file del tipo prefisso_xxxx.tif -

      -
      -o output 
      -
      -

      Unisce le immagini in HDR, generando un file del denominato output.hdr -

      -

      Opzioni: modificatori

      -
      -v        
      -
      -

      Modalità prolissa; visualizza dei messaggi durante l'elaborazione -

      -
      -e
      -
      -

      Indica che le immagini in ingresso sono fisheye fullframe -(default: rettilineare) -

      -
      -t num    
      -
      -

      Rimuove tutti i punti di controllo con un errore superiore a num pixel (default: 3) -

      -
      -f HFOV   
      -
      -

      Approssima il campo inquadrato orizzontale delle immagini in ingresso; utilizzare questa opzione se le informazioni EXIF non sono complete -

      -
      -m        
      -
      -

      Ottimizza il campo inquadrato per tutte le immagini, ad eccezione di questa. Utile per allineare immagini con diverse messe a fuoco e piccole differenze di ingrandimento -

      -
      -c num    
      -
      -

      Numero dei punti di controllo da creare tra due immagini (default: 8) -

      -
      -l
      -
      -

      ipotizza che i file di input siano lineari -

      -
      -s scala
      -
      -

      Rimpicciolisce l'immagine con una scala quadratica (default: 1 [2x downsampling]). Rimpicciolire le immagini aumenta la velocità a discapito dell'accuratezza. -

      -
      -g dimensioneg
      -
      -

      Suddivide l'immagine con una griglia rettangolare (dimensioneg x dimensioneg) e cerca di identificare una quantità num di punti di controllo in ogni sezione -(default: 5 [griglia 5x5] ) -

      -
      -h        
      -
      -

      Mostra l'aiuto. -

      -
      - - -
      Questo articolo è incompleto; è possibile contribuire alla crescita di Panotools Wiki completandolo. -
      -

      -Quando l'articolo è completo, rimuovere il modello {{Incomplete}} -

      -

      -
      - - - -
      \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Alpha_channel.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Alpha_channel.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Alpha_channel.html 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Alpha_channel.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ - - - - - - - - - - Canale alfa - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
      -
      -
      - -

      Canale alfa

      -
      - -
      - -


      -Un canale dell'immagine che contiene una maschera o una selezione. -Un canale alfa è un canale addizionale dell'immagine proprio come quelli per il rosso, il verde o per il blu. Può contenere qualsiasi informazione sotto forma -di immagine in scala di grigi, ma generalmente è utilizzata per contenere una selezione o una maschera. -

      -
      • I pixel neri del canale alfa, generalmente sono quelli mascherati, invisibili o non selezionati dell'immagine principale. -
      • I pixel bianchi del canale alfa sono quelli non mascherati, visibili o selezionati. -
      • I pixel grigi del canale alfa possono essere più o meno trasparenti in funzione della luminosità del grigio. -
      -

      Sia enblend che smartblend, utilizzano il canale alfa per determinare la posizione delle cuciture al momento -della fusione delle immagini; consultare la guida su come utilizzare enblend per correggere lo zenit e il nadir per maggiori dettagli. -

      Maggiori informazioni su wikipedia: pagina del canale alfa. -

      - - -
      \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Aspect_Ratio.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Aspect_Ratio.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Aspect_Ratio.html 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Aspect_Ratio.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ - - - - - - - - - - Rapporto d'aspetto - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
      -
      -
      - -

      Rapporto d'aspetto

      -
      - -
      - -


      -Il rapporto d'aspetto (aspect ratio in inglese) rappresenta il rapporto (proporzione) tra larghezza e altezza di una immagine; questo rapporto non -dipende naturalmente dall'unità di misura utilizzata per stimare le due grandezze (cm, pollici o pixel). -È anche vero che le misure delle immagini digitali sono in funzione della risoluzione (che può essere diversa per larghezza e altezza); ne consegue che, in questo campo, -vengono sempre utilizzati i pixel per il calcolo del rapporto d'aspetto. -

      Se un'immagine ha una larghezza di 200 pixel e un'altezza di 100 pixel, ha un rapporto d'aspetto pari a 2:1 come anche se avesse una larghezza e un'altezza -rispettivamente di 600 e 300 pixel. -

      -

      Rapporti più diffusi

      -
      • Le fotocamere digitali producono, nella maggior parte dei casi, immagini con un rapporto pari a 4:3; per esempio: 640×480 (VGA), 800×600, 1600×1200, -2048×1536 (3 megapixel), 2592×1944, 3264×2448, ecc... -
      • Il formato della pellicola generalmente utilizzato nella fotografia analogica denominato 35 mm, è approssimativamente 36×24 mm, a cui è associato un -rapporto d'aspetto pari a 3:2. -
      • Le immagini panoramiche in formato equirettangolare hanno un rapporto di -visualizzazione pari a 2:1 per coprire 360° orizzontalmente e 180° verticalmente. -
      - - - -
      \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autooptimiser.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autooptimiser.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autooptimiser.html 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autooptimiser.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ - - - - - - - - - - Autooptimiser - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
      -
      -
      - -

      Autooptimiser

      -
      - -
      - -

      Autooptimiser è un sostituto di PTOptimizer ed è parte del pacchetto di strumenti panoramici fornito - con hugin. -

      Non è esattamente come PTOptimizer dato che ha un'interfaccia leggermente diversa e alcune caratteristiche aggiuntive: -

      -
      • PTOptimizer scriverà il risultato dell'ottimizzazione nel file script di input come righe "o", cancellando quelle esistenti. -Questo comportamento è un po' strano, quindi autooptimiser scrive il risultato in STDOUT o in un nuovo file, come è più comune per gli strumenti da linea di comando. -
      • Non intaccare il file originale significa non avere il bisogno di creare nuove righe "o"; il file di output è nello stesso formato di quello di input con dei -valori ottimizzati applicati alle righe "i". -
      • PTStitcher richiede la presenza delle righe "o", quindi l'output di autooptimiser non è adatto a essere -assemblato con PTStitcher senza ulteriori elaborazioni; si possono invece assemblare questi file con nona. -
      -

      Caratteristiche addizionali: -

      -
      • autooptimiser può effettuare un'ottimizzazione a coppie invece di cercare l'ottimizzazione di tutti i parametri di rotazione contemporaneamente; -questo significa che non è necessario il posizionamento preventivo delle immagini rispetto al processo di ottimizzazione. -
      • Il livellamento dell'orizzonte di un gruppo di immagini può essere effettuato; la funzione è la stessa fornita dal pulsante raddrizza presente nella -finestra dell'anteprima di hugin. -
      • la modalità di allineamento automatico sceglierà uno schema di ottimizzazione adatto alla distribuzione dei -punti di controllo del progetto e non è quindi richiesto di specificare i parametri da ottimizzare. -
      • autooptimiser può correggere il campo inquadrato, le dimensioni e la proiezione del panorama, per -adattarlo alle immagini in ingresso. -
      • il campo inquadrato delle immagini di input può essere specificato; questo è utile in quanto i file di progetto creati da -autopano e autopano-sift non specificano il -campo inquadrato delle foto in ingresso. -
      - - - -
      \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autopano.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autopano.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autopano.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autopano.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ - - - - - - - - - - Autopano - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
      -
      -
      - -

      Autopano

      -
      - -
      - -

      Autopano è un programma per Windows e Linux di Alexandre Jenny che genera automaticamente i - punti di controllo da gruppi di fotografie. Funziona con Hugin, - PTAssembler, PTGui e da solo. -

      Le funzionalità sono molto simili a quelle di autopano-sift, che però è un programma diverso. -

      Un programma commerciale che si avvale della stessa tecnologia è Autopano pro. -

      -

      Collegamenti esterni

      -
      • Pagina del progetto Autopano -
      - - -
      -Tratto e tradotto da "http://wiki.panotools.org/Autopano"
      -
      \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autopano-sift-C.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autopano-sift-C.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autopano-sift-C.html 2011-07-17 08:39:24.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autopano-sift-C.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ - - - - - - - - - - Autopano-sift-C - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
      -
      -
      - -

      Autopano-sift-C

      -
      - -
      - -

      Autopano-sift-C è un adattamento in linguaggio C del programma autopano-sift scritto in C#. -È per certi versi più veloce e non richiede le runtime del C#. L'installazione delle runtime C# mono su OS X, è provato essere problematico su alcuni sistemi. -

      In aggiunta, autopano-sift-C implementa delle modifiche sperimentali in grado di eseguire il riconoscimento degli elementi nello spazio immagine conforme; -questo è d'aiuto con le fotografie scattate con un ampio angolo inquadrato o in proiezione fisheye. -

      Autopano-sift-C è disponibile nel progetto hugin. -

      - - -
      \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autopano-sift.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autopano-sift.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autopano-sift.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Autopano-sift.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ - - - - - - - - - - Autopano-sift - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
      -
      -
      - -

      Autopano-sift

      -
      - -
      - -

      Autopano-SIFT di Sebastian Nowozin, crea automaticamente i punti di controllo - per dei gruppi di immagini che si sovrappongono; può essere controllato dall'interfaccia grafica di Hugin. - Consultare la pagina internet di autopano-sift, per maggiori dettagli. -

      Nelle funzionalità, autopano-sift è molto simile ad autopano e i due programmi possono essere utilizzati -interscambiabilmente fino a un certo punto. -

      Per autopano-sift esistono sia versioni a linea di comando che con interfaccia grafica. C'è anche una guida per utilizzare autopano-SIFT con PTGui. -

      Autopano-sift è a codice aperto e scritto utilizzando i linguaggi C# e mono. L'utilizzo dell'algoritmo di invarianza di scala degli elementi è coperto da -un brevetto il cui proprietario è l'università della British Columbia. -

      Autopano-sift è stato sostituito da un adattamento in linguaggio C chiamato autopano-sift-C, -disponibile dal progetto hugin. -

      - - -
      \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Banding.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Banding.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Banding.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Banding.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - - - - - - Banding - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
      -
      -
      - -

      Banding

      -
      - -
      - -


      -Il Banding è un fenomeno che si esprime sotto forma di gradini, visibili a occhio nudo, nei gradienti. Le prime versioni dei Panorama Tools potevano introdurre -del banding, per esempio durante la correzione della luminanza radiale come discusso da John Houghton. Questo problema è stato corretto nell'attuale versione del -programma. -

      - -
      -Tratto e tradotto da "http://wiki.panotools.org/Banding"
      -
      \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Barrel_distortion.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Barrel_distortion.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Barrel_distortion.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Barrel_distortion.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ - - - - - - - - - - Distorsione a barilotto - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
      -
      -
      - -

      Distorsione a barilotto

      -
      - -
      - -


      -La distorsione a barilotto è l'opposto della distorsione a cuscinetto; è una distorsione -radiale dell'immagine introdotta dall'obiettivo. -

      È una comune distorsione dell'obiettivo che può essere corretta dal -modello di correzione dell'obiettivo fornito dai panotools. -

      -
      -A photograph showing exaggerated barrel distortion -
      Questa foto mostra una distorsione a barilotto esagerata
      - - - -
      \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Bracketing.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Bracketing.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Bracketing.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Bracketing.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ - - - - - - - - - - Bracketing - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
      -
      -
      - -

      Bracketing

      -
      - -
      - -


      -La maggior parte delle fotocamere digitali permette di catturare una serie di scatti tramite la funzione di bracketing (o a forcella); per esempio è possibile -catturare la stessa scena con differenti valori dell'esposizione. -

      Questa possibilità può rivelarsi utile quando si fotografano dei panorami. -

      - -

      Tecniche di assemblatura dei panorami

      -

      Semplice

      -

      Si scelga la serie di immagini meglio esposte e si scarti il resto. -

      -
      • Il risultato che si ottiene può essere già molto buono ma così facendo non viene sfruttato l'intero intervallo dinamico. -
      -

      Scatti a forcella uniti nel contrasto

      -

      Si utilizzi la fusione del contrasto per unire ogni scatto a diversa esposizione, e si uniscano poi queste immagini a 8 bit in un panorama anch'esso a 8 bit. -

      -
      • È necessario utilizzare la stessa esposizione quando si uniscono gli scatti, ma non è possibile sapere quanto questa deve essere fino a quando non si è terminato -il lavoro ed è visualizzato il risultato (questo problema non si presenta se si utilizza il processo di lavoro a 16 bit). -
      -

      Panorami a forcella uniti nel contrasto

      -

      Si assembli ogni scatto a una determinata esposizione in un panorama completo a 8bit; i panorami risultanti devono poi essere uniti con la fusione del contrasto -in un unico panorama a 8 bit. -

      -
      • Eseguire enblend diverse volte richiede tempo. -
      • Si può ottenere del "ghosting" (aloni sui bordi degli oggetti) se i panorami non sono perfettamente allineati. -
      -

      Convertire gli scatti a forcella in HDR

      -

      Si uniscano le immagini della stessa scena scattate a forcella in un'immagine HDR; unirle in un panorama HDR e poi ridurre -quest'ultimo a 8 bit tramite il processo di tone mapping. -

      -
      • Gli operatori di tone mapping locali producono degli artefatti nei panorami equirettangolari. -
      • Questo procedimento di lavoro è attualmente disponibile solamente per hugin. -
      -

      Convertire i panorami a forcella in HDR

      -

      Si converta ogni passo di esposizione in un panorama completo a 8bit panorama; si uniscano poi questi in un panorama HDR e si riduca -a 8 bit con il tone mapping. -

      -
      • Eseguire enblend diverse volte richiede tempo. -
      • Gli operatori di tone mapping locali producono degli artefatti nei panorami -equirettangolari. -
      • Si può ottenere del "ghosting" (aloni sui bordi degli oggetti) se i panorami non sono perfettamente allineati. -
      -

      Tonemap degli scatti a forcella

      -

      Si uniscano le immagini della stessa scena scattate a forcella in un'immagine HDR; si utilizzi il tone mapping per creare delle immagini a 8 bit. Infine si uniscano queste ultime per formare un panorama a 8 bit. -

      -
      • È necessario utilizzare la stessa esposizione quando si uniscono gli scatti, ma non è possibile sapere quanto questa deve essere fino a quando non si è terminato -il lavoro ed è visualizzato il risultato (questo problema non si presenta se si utilizza il processo di lavoro a 16 bit). -
      -
    • Gli operatori locali di tone mapping avranno un comportamento diverso nelle zone di sovrapposizione: si deve sperare che la fusione con -enblend, smartblend o PTGui li corregga. -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Bracketing"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Camera_response_curve.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Camera_response_curve.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Camera_response_curve.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Camera_response_curve.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ - - - - - - - - - - Curva di risposta della fotocamera - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Curva di risposta della fotocamera

    -
    - -
    - -

    La curva di risposta della fotocamera è una funzione che mostra la relazione intercorrente tra la quantità di luce ricevuta e i valori dei pixel di -un'immagine di una fotocamera digitale. -

    Questa curva viene anche denominata funzione di trasferimento elettro-ottica. -

    Anche se i sensori ottici lavorano in modo pressoché lineare (una certa quantità di fotoni in ingresso provocano un aumento proporzionale della quantità di elettroni -nella cella del sensore), i valori risultanti del pixel non sono proporzionali alla quantità di luce entrante. Questo può essere dovuto a vari fattori: -

    -
    • il convertitore analogico-digitale non è lineare; -
    • è applicata una correzione della gamma; -
    • viene applicata una correzione per rendere l'immagine visivamente più piacevole; -
    • è applicato un bilanciamento del bianco per compensare i diversi valori della temperatura della luce. -
    -

    Mentre la prima considerazione è valida per tutti i tipi di immagini, le altre si applicano solo a quelle che non sono in formato RAW (JPEG, -TIFF). Le immagini RAW dovrebbero contenere dei dati lineari del sensore. -

    La curva di risposta della fotocamera è rilevante principalmente per la creazione di immagini HDR, dove è necessario avere -dei dati di input lineari (proporzionali alla luce). I dati non lineari (= una errata stima della curva di risposta della fotocamera) creeranno del "banding" -nei gradienti di contrasto (per esempio attorno alle fonti luminose). -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/CCD.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/CCD.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/CCD.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/CCD.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - - - - - CCD - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    CCD

    -
    - -
    - -


    -CCD è l'acronimo di Charged Coupled Device, un tipo di sensore che si trova nella maggior parte delle fotocamere: consultare il relativo articolo su wikipedia -per maggiori dettagli. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/CCD"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Chromatic_aberration.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Chromatic_aberration.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Chromatic_aberration.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Chromatic_aberration.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,236 +0,0 @@ - - - - - - - - - - Aberrazione cromatica - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Aberrazione cromatica

    -
    - -
    - -


    -

    - -

    Introduzione

    -

    Le frange di colore possono essere molto fastidiose, in particolar modo nei panorami ottenuti dall'unione di più fotografie. Dato che nella maggior parte dei casi queste -si presentano vicino al bordo di ogni singola immagine, ricadono nella zona in cui avviene l'unione di due immagini per la creazione del panorama. Ancora peggio, -cambiano colore nel passaggio della zona d'unione. -

    Quindi l'aberrazione cromatica deve essere corretta, se visibile, almeno per i panorami visualizzati a schermo intero o per quelli che devono essere stampati -dove si richiede il raggiungimento dell'ingrandimento alla risoluzione nativa della fotocamera. Mentre la correzione è relativamente semplice, la -aberrazione cromatica (abbreviato nel seguito con CA=Cromatic Aberration) non può essere determinata automaticamente come, per esempio, la -distorsione a barilotto. Solo un giudizio visivo può fornire il controllo necessario del risultato. -Sfortunatamente è necessaria una buona dose di esperienza per farlo. -

    -

    Cos'è

    -

    La CA è un errore diffuso degli obiettivi visibile nelle immagini sotto forma di frange sfumate di colore ai bordi degli elementi fotografati. Questo fenomeno è causato -dalla variabilità dell'indice di rifrazione del vetro in funzione della lunghezza d'onda della luce incidente. -È possibile reperire un'esaustiva descrizione del fenomeno, con diversi collegamenti, su "wikipedia:Chromatic aberration". -

    Un'altra ottima descrizione è nel sito di Paul van Walree. -

    -

    LCA

    -

    Indici di rifrazione diversi comportano diverse lunghezze focali per un singolo obiettivo. -Questo porta a d avere diversi piani focali a seconda del colore. Si dovrebbe mettere a fuoco per ogni singolo colore: rosso, blu e verde. -Questo effetto è chiamato aberrazione cromatica longitudinale (LCA=longitudinal chromatic aberration). Se si presentano delle frange vicino al centro -dell'immagine che cambiano colore se si cambia leggermente la messa a fuoco, allora si è in presenza, quasi sicuramente, di aberrazione cromatica longitudinale. -Questo tipo di CA: -

    -
    • non può essere corretta dai programmi; -
    • diminuisce se si aumenta l'apertura; -
    • dipende dalla distanza di messa a fuoco. -
    -


    -

    -

    TCA

    -

    Quando un obiettivo è corretto nei confronti dell'aberrazione cromatica longitudinale, i diversi colori si focalizzano più o meno nello stesso punto sull'asse -ottico, ma comunque possono mettere a fuoco a distanze diverse dall'asse creando immagini di diversa dimensione a seconda del colore. Questa tipologia di errore, -prende il nome di aberrazione cromatica trasversale (o laterale) (TCA=transverse chromatic aberration). Se si hanno delle frange colorate complementari che aumentano -dal centro verso i bordi, si è probabilmente di fronte all'aberrazione cromatica trasversale (anche se vi sono delle eccezioni come mostrano gli -esempi successivi). Questa tipologia di CA: -

    -
    • può essere corretta via software; -
    • non cambia in funzione dell'apertura (diminuendo l'apertura, cioè aumentando gli "f", si renderanno più nitide le frange creando una sensazione di riduzione -della TCA); -
    • dipende dalla distanza di messa a fuoco. -
    -

    Cosa non è

    -

    Con la fotografia digitale sono stati introdotti nuovi tipi di frange di colore che non sono classificabili come aberrazioni cromatiche dell'obiettivo. -Vengono spesso confuse con la TCA e, sfortunatamente, si presenta spesso congiunte con la TCA. Questi effetti si presentano sotto forma di frange viola o blu e sono visibili, -nella maggior parte dei casi, sul contorno delle aree sovraesposte. -

    Possono avere origine diversa: -

    -
    • dagli overflow del sensore visibili come zone ad alta luminosità (bloom). Questo effetto si presenta in genere di colore viola a causa del motivo di bayern -del sensore: se una cella del sensore va in overflow verso la celle adiacenti tutte queste saranno affette dallo stesso fenomeno. Ci sono il 50% di celle verdi ma solo il -25% di rosse e il 25% di blu, nel sensore. Quindi blu e rosso vengono maggiormente pesati creando delle zone viola intorno alle aree sovraesposte. Poiché i sensori CMOS -non sono inclini all'overflow, questo effetto interessa solamente i sensori CCD. -
    • dall'aberrazione cromatica e da altri errori dovuti alle micro lenti posizionate davanti al sensore; -
    • dai riflessi tra il sensore e il vetro protettivo (che potrebbe essere ricoperte e quindi generare dei riflessi colorati); -
    • dagli errori di interpolazione o dai filtri anti Moireè; -
    • dalla saturazione parziale dei colori: per esempio un cielo blu potrebbe essere visualizzato come bianco puro a causa della saturazione di tutti i canali del -colore. Se nell'immagine è ripreso un oggetto scuro e sfocato, il sensore, nella regione sfocata, riceve solo parte della luce e quindi non si satura; la regione sfocata -appare quindi blu. Questo è l'unico fenomeno, tra quelli descritti, che avviene anche per la pellicola analogica. -
    -

    Come evitarla

    -

    la LCA può essere evitata se si aumenta il numero di f-stop (aumenta la chiusura del diaframma); anche le frange viola o blu, in genere, ne beneficiano. -Nella maggior parte dei casi possono essere evitate se si espone per le zone più luminose (cioè non si sovraespone). La TCA può essere evitata -solamente utilizzando un obiettivo di qualità migliore. Gli obiettivi a lunghezza focale fissa, sono meno inclini -alla TCA rispetto ai poco costosi obiettivi zoom. I convertitori sono generalmente molto scarsi. È possibile evitare la TCA al momento dell'assemblatura, se non si utilizzano -gli angoli in cui appare più evidentemente il fenomeno. -

    -

    Come distinguerla

    -

    Se si ha l'intenzione di correggere le frange di colore utilizzando un programma, è necessario riconoscerne prima di tutto, il tipo. Se tutte le condizioni riportate nel seguito -sono verificate, l'immagine è affetta, quasi certamente, da TCA: -

    -
    • agli angoli si concentrano la maggior parte delle frange di colore mentre al centro il fenomeno è pressoché assente; -
    • le frange di colore sono non solo sui bordi delle aree sovraesposte ma anche ai bordi di quelle sottoesposte; -
    • le frange sono di colori complementari (rosso-ciano, blu-giallo o viola-verde) sui lati opposti delle aree buie o luminose; -
    • le frange di colore sono presenti in tutti gli angoli con la stessa direzione verso l'esterno a partire dal centro. -
    -

    Difficoltà nel distinguerla

    -
    Artificial Red-Cyan TCA
    TCA rosso-ciano artificiale
    -
    Artificial Blue-Yellow TCA
    TCA blu-giallo artificiale
    -

    Se si desidera testare il proprio obiettivo per la CA, la scelta del soggetto adatto da fotografare è essenziale. La visibilità della TCA dipende fortemente -dai colori che formano i bordi di contrasto. Le due immagini artificiali riportate, illustrano questo fenomeno: in entrambe, la TCA è stata introdotta ridimensionando -un canale al 101%; nell'immagine superiore si tratta del canale rosso (per cui sono state ottenute delle frange rosso-ciano), mentre in quella inferiore è stato -ridimensionato il canale blu (ottenendo delle frange blu-gialle). -

    Osservando attentamente la metà con lo sfondo azzurro in entrambe le immagini, si nota come le frange in ciano non siano visibili nell'immagine superiore -nelle zone con lo sfondo in verde scuro, mentre le frange rosse diventano di un colore marrone scuro quasi invisibile. -

    Invece, nell'immagine inferiore, sia le frange blu che quelle gialle sono invisibili sullo sfondo, maggiormente saturato, giallo. -Dove queste assumono una sfumatura più chiara di giallo, le frange blu appaiono di colore viola. Le frange gialle sono verdi sullo sfondo azzurro. -

    Questo dimostra come il miglior soggetto per la determinazione della CA sia composto da grigio naturale, nero e bianco non sovraesposto. -L'esempio seguente è decisamente adatto: soggetto non sovraesposto, cielo grigio e colori non saturati.
    -

    -

    Esempio di TCA

    -

    Questa immagine è ridotta del 30% ma mostra ancora un'elevata TCA a causa dell'utilizzo di un convertitore grandangolare di scarsa qualità: -

    -
    Image courtesy of © Thomas Niemann
    Immagine cortesemente fornita da © Thomas Niemann
    -

    Di seguito è visualizzato un ritaglio dell'angolo superiore sinistro dell'immagine, allargato al 200%. Per verificare che si tratta di TCA, è possibile -visualizzare ciclicamente i canali del colore (per esempio premendo Ctrl+1, Ctrl+2 e Ctrl+3 in Photoshop). Se tutto il contenuto dell'immagine nelle aree con colori -più o meno neutrali sembra muoversi, allora si è in presenza di TCA: -

    image:CA_tCA01.jpg image:CA_tCA01.gif -

    (attivare le animazioni GIF per vedere i diversi canali nell'immagine di destra) -

    L'intero contenuto dell'immagine sembra muoversi al cambiare del canale; si tratta chiaramente di TCA. Come si può vedere, i canali hanno una diversa nitidezza dovuta -fondamentalmente alla CA longitudinale. -

    Per confronto si riporta anche un ritaglio di dimensioni e ingrandimento simile al precedente, ma relativo alla zona centrale dell'immagine: -

    image:CA_tCA03.jpg -

    non sono presenti frange di colore al centro. -

    È possibile tentare di correggere manualmente la TCA in un angolo utilizzando Photoshop per vedere se può valer la pena correggerla sull'immagine per intero: -

    -
    • ritagliare un angolo dove sia visibile la TCA; -
    • allargare la vista in un intervallo tra 200% e 400%; -
    • appiattire l'immagine se necessario; -
    • agire lievemente sui canali rosso e blu per tentare di minimizzare le frange. Per farlo, utilizzare nel seguente modo la scheda dei canali: -
      • premere sul canale rosso per renderlo attivo; -
      • premere sul simbolo a forma di occhio relativo al canale RGB per rendere visibili tutti i colori; -
      • selezionare lo strumento di movimento; -
      • spostare di poco il canale rosso con i tasti delle frecce fino a ottenere le frange di colore blu-giallo; -
      • ripetere lo stesso procedimento per il canale blu fino a ottenere il valore migliore; -
      • ripetere per il canale rosso se sono ancora presenti delle frange di colore rosso-verde. -
      -
    -

    Di seguito è mostrata l'immagine precedente corretta utilizzando la tecnica appena descritta: -

    image:CA_tCA02.jpg -

    Le frange rimanenti in colore blu chiaro non possono essere corrette; non si tratta probabilmente di TCA dell'obiettivo ma un effetto descritto nella -sezione cosa non è. -

    -

    Esempio senza TCA ma con frange viola

    -

    Questa immagine è ridotta al 40%. Essa mostra delle frange viola ma non presenta aberrazione cromatica: -

    image:CA_fringes00.jpg -

    Di seguito l'ingrandimento dell'angolo in alto a sinistra e la sequenza dei canali del colore: -

    image:CA_fringes01.jpg image:CA_fringes01.gif -

    (attivare le animazioni GIF per vedere i diversi canali nell'immagine di destra) -

    Come si nota, i dettagli dell'albero grigio non si muovono; è solamente la parte di cielo a sinistra (all'esterno) sovraesposta che cambia. -


    -

    -

    Esempio strano

    -

    Questo ritaglio (angolo in basso a sinistra) proviene da una combinazione frequentemente utilizzata: Nikon D70 con Nikkor 10.5mm full frame fisheye (immagine -fornita da (c) Andrey Ilyin). Di primo acchito sembrerebbe trattarsi di una normale TCA di rosso-ciano; se però si cerca di correggerla, non se ne salterà fuori. -Si osservino più attentamente i canali: -

    image:CA_strange01.jpg image:CA_strange01.gif -

    (attivare le animazioni GIF per vedere i diversi canali nell'immagine di destra) -

    È possibile notare che parte dei dettagli dell'immagine si spostano mentre altri no (il filo d'erba al centro). Se si minimizzano le frange qui, se ne creeranno -altre o addirittura raddoppieranno i dettagli assumendo colori diversi: -

    image:CA_strange02.jpg -

    Questo strano tipo di frange colorate non è sicuramente frutto della CA dell'obiettivo. È presumibile che sia dovuta alla micro lente che Nikon inserisce di fronte -a ogni pixel del sensore, ma si tratta di pura supposizione. -

    -

    Come correggerla

    -

    Nella maggior parte dei casi è sufficiente correggere le dimensioni dei canali del colore per correggere la TCA. Comunque, la correzione può non essere sempre soddisfacente -anche se si tratta della sola TCA pura; questo può essere dovuto a diversi fattori: -

    -
    • potrebbe rimenare della LCA nell'immagine. In questo caso uno o due canali di colore possono essere sfumati. -Si tratta, in parte, del caso dell'esempio di TCA. È possibile rendere più nitidi, selettivamente, -i canali del colore; però, dato che la maschera di affilatura lavora meglio con la sfocatura gaussiana mentre la sfocatura prodotta dalla CA è più simile a quella radiale, -in questo modo non si otterrà probabilmente un risultato soddisfacente; -
    • le immagini hanno una compressione JPEG troppo elevata. Se si spostano i canali del colore di immagini jpeg compresse, non si -farà altro che enfatizzarne gli artefatti. È invece meglio lavorare su un'immagine in formato TIFF convertita direttamente dal -formato RAW o ottenuta da uno scanner; -
    • la correzione è grossolana e imprecisa. In funzione della risoluzione dell'immagine, potrebbe rendersi necessario un allineamento preciso al pixel. -
    -

    Metodo approssimato (semplice)

    -

    Il metodo più conveniente per correggere la TCA consiste nell'utilizzare uno strumento come Adobe Raw Converter, Picture Window Pro o PTLens; si ingrandisce -un angolo dell'immagine con dei buoni dettagli e si utilizzano un paio di barre scorrevoli per variare le dimensioni del canale rosso (frange rosso-ciano) e di quello -blu (frange blu-giallo; quelle viola-verde sono una combinazione di rosso-ciano e blu-giallo). In entrambi i modi è possibile effettuare una correzione a livello inferiore -al pixel. -

    Questa tecnica può essere eseguita manualmente con qualsiasi programma per immagini che permette di modificare singolarmente i canali del colore. -Se l'ampiezza del passo è troppo elevata, l'immagine può essere ingrandita prima della correzione. -

    Comunque, se si utilizza uno di questi approcci semplificati, occorre tenere d'occhio le altre aree dell'immagine e, in particolar modo, le zone a distanze diverse -dal centro; potrebbe infatti facilmente accadere che dei valori che correggono il problema in un'area creino delle frange in un'altra zona dell'immagine. -Se così fosse, significa che la TCA in questa immagine non segue un semplice schema lineare e quindi non può essere corretta in questo modo; vedere il paragrafo successivo. -

    -

    Metodo preciso

    -

    Il filtro di spostamento radiale dei Panorama tools, permette la correzione distinta dei canali di rosso, -verde e blu utilizzando un polinomio di terzo grado. Questo tipo di curva dovrebbe essere sufficientemente complessa per poter correggere ogni tipo di TCA non lineare. -

    Sfortunatamente era molto difficile stimarne i valori corretti fino a quando Jim Watters e Erik Krause nel 2004, trovarono un nuovo metodo per la determinazione -dei coefficienti di correzione più adatti utilizzando diversi approcci di calcolo. -

    Basandosi su questo lavoro, Eric Gerds sviluppò un Javascript per Photoshop CS, chiamato PTShift, che permette la correzione manuale in diverse aree e trasmette poi -le deviazioni trovate come punti di controllo virtuali a PTOptimizer che si occupa poi di calcolare i coefficienti di -correzione. -

    Alternativamente, i coefficienti di correzione, possono essere calcolati interamente con hugin e PTOptimizer; per maggiori dettagli consultare questo esempio di correzione della TCA con hugin. Per ottenere risultati ancora più precisi, può -essere utilizzato il programma "octave" (script nella pagina di hugin: [1]) per calcolare i coefficienti in luogo di PTOptimizer. Un'alternativa al filtro dello spostamento radiale è rappresentata da fulla -che è anche in grado di correggere contemporaneamente la TCA, la distorsione a barilotto e la -vignettatura. -

    Erik Krause 17:18, 2 Maggio 2005 (EDT) -

    -

    Collegamenti esterni

    -
    • Wikipedia:Chromatic aberration -
    • dpreview sull'aberrazione cromatica -
    • articolo di Michel Thoby: Illusione e realtà; come appare la TCA? -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/CMakeLists.txt hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/CMakeLists.txt --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/CMakeLists.txt 2015-07-18 06:31:35.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ - -IF(WIN32) - -#TODO generate italian version of help file - -ELSE(WIN32) - -FILE(GLOB DATAFILES *.htm *.html *.ico *.gif *.JPG *.jpg *.png *.xpm *.hhc *.hhk *.hhp -*.manual) - -INSTALL(FILES ${DATAFILES} DESTINATION ${HUGINDATADIR}/xrc/data/help_it_IT) - -ENDIF(WIN32) \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Color_correct_tiff.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Color_correct_tiff.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Color_correct_tiff.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Color_correct_tiff.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ - - - - - - - - - - Correzione del colore tiff - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Correzione del colore tiff

    -
    - -
    - -

    Color_correct_tiff è una utilità sperimentale scritta da Phillipe Thomin e inclusa in hugin. -

    Nota: questo strumento non è inserito di default ma deve essere compilato separatamente. -

    Date due immagini sovrapposte ne produce una terza che rappresenta una versione della seconda con i colori della prima. -Una funzionalità simile è implementata in PTStitcher, PTmender e -PTblender. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Colour_profile.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Colour_profile.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Colour_profile.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Colour_profile.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - - - - - Profili di colore - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Profili di colore

    -
    - -
    - -

    I profili di colore descrivono gli attributi di colore, di una particolare periferica o strumento di visualizzazione, definendo una corrispondenza tra - lo spazio colore iniziale o finale e uno spazio di connessione con un profilo comune. -

    Vedere i profili ICC e la gestione del colore su Wikipedia per maggiori informazioni. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Control_points.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Control_points.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Control_points.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Control_points.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ - - - - - - - - - - Punti di controllo - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Punti di controllo

    -
    - -
    - -


    -La maggior parte delle strategie di allineamento delle fotografie, richiedono, prima o poi, la presenza di punti di controllo. -

    Il principio è che identificando lo stesso oggetto fisico (una porta, un albero o qualsiasi altro elemento) in più di una foto, è possibile -ricreare matematicamente delle informazioni relative all'orientazione relativa della fotocamera. -La libreria pano12 contiene un programma chiamato PTOptimizer che si occupa -proprio di questo. -

    Ognuno di questi elementi del mondo reale è definito tramite una coppia di punti di controllo. Generalmente due paia di punti di controllo -sono sufficienti per allineare due fotografie e all'aumentare del numero di foto sono necessarie più coppie di punti di controllo; questo processo di allineamento -prende il nome di ottimizzazione dei punti di controllo. -

    Oltre alla correzione di rollio, inclinazione e imbardata, spesso anche il campo inquadrato e altri aspetti del -modello di correzione dell'obiettivo sono ottimizzati nella stessa fase. -

    I punti di controllo possono essere selezionati manualmente utilizzando il mouse; esistono diverse interfacce grafiche che aiutano l'utente in questo compito. -Esistono poi altri strumenti, quali autopano-sift e autopano, -in grado di generare automaticamente i punti di controllo con alcune limitazioni. -

    In aggiunta a questi semplici punti di controllo, PTOptimizer permette all'utente di definire anche -punti di controllo orizzontali, -punti di controllo verticali e -punti di controllo su linea retta. -Questi hanno vari utilizzi, ma sono principalmente utilizzati per livellare un panorama e per -correggere la prospettiva. -

    -

    Note storiche

    -

    Prima di PTPicker, delle interfacce grafiche e di autopano/autopano-sift, i punti di controllo venivano impostati tagliando e incollando gli indicatori mostrati più sotto, tra le foto di partenza. -Erano supportate fino a venti immagini; i Panorama Tools leggevano poi i codici contenuti nelle cornici e generavano uno script per -PTOptimizer. -

    Questa funzionalità è ancora disponibile nel menu «Strumenti->Panoramatools->adjust» se è installato il plugin di Gimp per i panorami; questa tecnica -è comunque estremamente laboriosa e decisamente sconsigliata. -

    Barcode flags used by the original panorama tools control point picking technique -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Crop_factor.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Crop_factor.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Crop_factor.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Crop_factor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ - - - - - - - - - - Fattore di ritaglio (crop factor)r - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Fattore di ritaglio (crop factor)

    -
    - -
    - -

    Il fattore di ritaglio o moltiplicatore della lunghezza focale,esprime il rapporto tra la grandezza del sensore CCD della fotocamera e la grandezza di una classico pellicola fotografica nel formato a 35mm. -

    Generalmente i CCD sono più piccolo, quindi il fattore di ritaglio per una fotocamera tascabile può raggiungere anche un valore pari a 6 mentre quelli di una -fotocamera DSLR si aggira intorno a 1,5. -Alcune DSLR hanno un sensore di 35mm, quindi per esse il fattore è pari a 1 e sono identificate con la dicitura "full frame". -

    In alternativa è semplice calcolarlo come frazione tra la lunghezza focale indicata dalla -fotocamera e quella equivalente nel formato 35mm. Questi due valori sono riportati fra le specifiche di una qualsiasi fotocamera digitale mentre le dimensioni del CCD/CMOS -sono più difficili da reperire -

    Collegamenti esterni: i segreti del il fattore di ritaglio digitale. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Crop_factor"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cropped_TIFF.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cropped_TIFF.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cropped_TIFF.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cropped_TIFF.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ - - - - - - - - - - TIFF ritagliati - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    TIFF ritagliati

    -
    - -
    - -


    -Spesso capita che unendo delle immagini la maggior parte dell'immagine o del livello di output sia vuoto. Questo si verifica in particolar modo durante la -correzione della prospettiva o quando si creano dei panorami parziali ad alta risoluzione -partendo da un elevato numero di fotografie. -

    Questo non crea particolari problemi, se non fosse che i panorama tools elaborano la geometria di -tutti questi pixel vuoti, consumando preziosa memoria e spazio su disco. -

    Le specifiche del formato TIFF permettono di includere un'immagine più piccola spostata rispetto all'area totale, utilizzando -i tag TIFF denominati XPOSITION, YPOSITION, TIFFTAG_PIXAR_IMAGEFULLWIDTH e TIFFTAG_PIXAR_IMAGEFULLHEIGHT; questi sono perfetti per una tipica -immagine panoramica che contiene perlopiù spazi vuoti. -

    hugin, nona e PTmender sono in grado di -creare questi TIFF ritagliati aggiungendo la stringa r:CROP come opzione TIFF nella sezione del formato panorama nella linea p di uno script di -assemblatura. -Sono supportati due formati TIFF di output: TIFF_m e TIFF_multilayer (TIFF_multilayer è supportato solo da -nona). -

    Per esempio, la seguente linea p produce dei file TIFF ritagliati multipli utilizzando la compressione LZW: -

    -
     p f0 w1000 h500 v120 n"TIFF_m c:LZW r:CROP"
    -
    -

    enblend è in grado di leggere i TIFF ritagliati a partire dalla versione 2.4, quindi questa tecnica risulta utile -quando si lavora con enblend. In più, il programma di foto ritocco Gimp può aprire i file TIFF ritagliati direttamente, anche se poi non è in grado di salvarli nello -stesso formato. Può essere utile modificare la maschera alfa nei TIFF multi livello prima di farli elaborare da enblend con l'aiuto di uno script; -consultare l'elaborazione dei TIFF multi livello con Gimp. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cubic.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cubic.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cubic.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cubic.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ - - - - - - - - - - Proiezione cubica - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Proiezione cubica

    -
    - -
    (reindirizzato da "Cubic")
    - -
    Cubic projection, source image courtesy Ben Kreunen
    -

    Quella cubica, è un tipo di proiezione per mappare una porzione di superficie di sfera (o la sfera per intero) -in una immagine piatta. Le immagini sono disposte sulle facce di un cubo e ognuna di esse è in proiezione -rettilineare. Questo cubo è visto dal suo centro. -

    Quattro facce identificano le viste frontale, destra, sinistra e posteriore, una lo zenit e una il -nadir; ognuna di esse ha un campo inquadrato di 90°x90°. -In ogni faccia del cubo, ogni linea retta si mantiene tale, quindi è un formato molto utile per la modifica del panorama. -Consultare "estrarre e inserire le viste rettilineari" per vedere diverse modalità di estrazione e reinserimento delle facce del cubo da -un'immagine equirttangolare. -

    Le immagini in proiezione cubica sono generalmente utilizzate, come formato di ingresso, da diversi visualizzatori di panorami sferici, come SPi-V e Quicktime. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cubic_Projection.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cubic_Projection.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cubic_Projection.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cubic_Projection.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ - - - - - - - - - - Proiezione cubica - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Proiezione cubica

    -
    - -
    Cubic projection, source image courtesy Ben Kreunen
    -

    Quella cubica, è un tipo di proiezione per mappare una porzione di superficie di sfera (o la sfera per intero) -in una immagine piatta. Le immagini sono disposte sulle facce di un cubo e ognuna di esse è in proiezione -rettilineare. Questo cubo è visto dal suo centro. -

    Quattro facce identificano le viste frontale, destra, sinistra e posteriore, una lo zenit e una il -nadir; ognuna di esse ha un campo inquadrato di 90°x90°. -In ogni faccia del cubo, ogni linea retta si mantiene tale, quindi è un formato molto utile per la modifica del panorama. -Consultare "estrarre e inserire le viste rettilineari" per vedere diverse modalità di estrazione e reinserimento delle facce del cubo da -un'immagine equirttangolare. -

    Le immagini in proiezione cubica sono generalmente utilizzate, come formato di ingresso, da diversi visualizzatori di panorami sferici, come SPi-V e Quicktime. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cylindrical.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cylindrical.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cylindrical.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cylindrical.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ - - - - - - - - - - Proiezione cilindrica - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Proiezione cilindrica

    -
    - -
    (Reindirizzato da "Cylindrical")
    - -
    Cylindrical projection, with permission from Ben Kreunen
    -

    Una proiezione cilindrica è un tipo di proiezione che permette di mappare una porzione di superficie della sfera -in una immagine piatta. La si può immaginare pensando di avvolgere un foglio di carta intorno alla circonferenza di una sfera, in modo che sia tangente alla sfera -lungo l'equatore. Proiettando i raggi di una luce dal centro della sfera stessa, la superficie verrà riprodotta sulla carta. -

    Nelle immagini panoramiche, la proiezione cilindrica è spesso utilizzata per stampare i panorami che occupano un ampio raggio di longitudine (>120°). -Come la proiezione equirettangolare, la proiezione cilindrica preserva le -linee verticali, ma non è in grado di rappresentare i dati nelle zone vicine ai poli (nadir e zenit), che risultano distorti e stirati sempre più, fino all'infinito. Può comunque essere utilizzata per visualizzare più di 360° orizzontalmente: -le fotocamere a scansione spesso registrano un po' più di 360° in modo che le aree da sovrapporre siano assemblabili con meno difficoltà nel caso in cui l'illuminazione -sia cambiata o qualche elemento si sia mosso nell'area interessata. Possono anche essere visualizzati i multipli di 360° per mostrare, ad esempio, un soggetto variabile -come le stagioni. -

    Le linee rette che non sono verticali nella realtà vengono curvate (escluso l'orizzonte). L'orizzonte è mappato con una linea retta che attraversa il centro -dell'immagine; naturalmente questo è vero solamente se l'asse attorno al quale è stata ruotata la fotocamera era perfettamente verticale. Se così non fosse, l'orizzonte -apparirebbe curvato. -

    La proiezione cilindrica è il formato nativo di output di una fotocamera panoramica rotante (a scansione quali panoscan, spheron e altre) con un obiettivo -rettilineare o di una fotocamera a obiettivo rotante (Horizon, Noblex...). -

    Le altre forme di proiezione cilindrica in grado di rappresentare correttamente i poli, quale la proiezione di Mercatore diffusa per la creazione della cartografia, -non vengono tipicamente utilizzate nella fotografia panoramica. -

    -

    Collegamenti esterni

    -
    • La pagina di Mathworld sulle proiezioni cilindriche mostra un esempio e fornisce le leggi matematiche alla base della proiezione. -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cylindrical_panorama.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cylindrical_panorama.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cylindrical_panorama.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cylindrical_panorama.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ - - - - - - - - - - Panorama cilindrico - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Panorama cilindrico

    -
    - -
    - -


    -Un panorama cilindrico utilizza la proiezione cilindrica ed è il formato utilizzato dal -plugin originale di Quicktime. -

    Molti aspetti relativi ai panorami cilindrici, sono gli stessi dei panorami parziali. È possibile reperire tutte le informazioni di cui si può aver -bisogno nell'articolo sui panorami parziali ad alta risoluzione a eccezione del fatto che per la pubblicazione su internet non è necessaria un'altissima risoluzione. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cylindrical_Projection.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cylindrical_Projection.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cylindrical_Projection.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Cylindrical_Projection.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ - - - - - - - - - - Proiezione cilindrica - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Proiezione cilindrica

    -
    - -
    - -
    Cylindrical projection, with permission from Ben Kreunen
    -

    Una proiezione cilindrica è un tipo di proiezione che permette di mappare una porzione di superficie della sfera -in una immagine piatta. La si può immaginare pensando di avvolgere un foglio di carta intorno alla circonferenza di una sfera, in modo che sia tangente alla sfera -lungo l'equatore. Proiettando i raggi di una luce dal centro della sfera stessa, la superficie verrà riprodotta sulla carta. -

    Nelle immagini panoramiche, la proiezione cilindrica è spesso utilizzata per stampare i panorami che occupano un ampio raggio di longitudine (>120°). -Come la proiezione equirettangolare, la proiezione cilindrica preserva le -linee verticali, ma non è in grado di rappresentare i dati nelle zone vicine ai poli (nadir e zenit), che risultano distorti e stirati sempre più, fino all'infinito. Può comunque essere utilizzata per visualizzare più di 360° orizzontalmente: -le fotocamere a scansione spesso registrano un po' più di 360° in modo che le aree da sovrapporre siano assemblabili con meno difficoltà nel caso in cui l'illuminazione -sia cambiata o qualche elemento si sia mosso nell'area interessata. Possono anche essere visualizzati i multipli di 360° per mostrare, ad esempio, un soggetto variabile -come le stagioni. -

    Le linee rette che non sono verticali nella realtà vengono curvate (escluso l'orizzonte). L'orizzonte è mappato con una linea retta che attraversa il centro -dell'immagine; naturalmente questo è vero solamente se l'asse attorno al quale è stata ruotata la fotocamera era perfettamente verticale. Se così non fosse, l'orizzonte -apparirebbe curvato. -

    La proiezione cilindrica è il formato nativo di output di una fotocamera panoramica rotante (a scansione quali panoscan, spheron e altre) con un obiettivo -rettilineare o di una fotocamera a obiettivo rotante (Horizon, Noblex...). -

    Le altre forme di proiezione cilindrica in grado di rappresentare correttamente i poli, quale la proiezione di Mercatore diffusa per la creazione della cartografia, -non vengono tipicamente utilizzate nella fotografia panoramica. -

    -

    Collegamenti esterni

    -
    • La pagina di Mathworld sulle proiezioni cilindriche mostra un esempio e fornisce le leggi matematiche alla base della proiezione. -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Depth_of_Field.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Depth_of_Field.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Depth_of_Field.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Depth_of_Field.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,101 +0,0 @@ - - - - - - - - - - Profondità di campo - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Profondità di campo

    -
    - -
    - -


    -

    - -

    Cos'è

    -

    Un'immagine fotografica è nitida solamente sul piano di messa a fuoco; più un oggetto è distante dal piano focale (davanti o dietro) e più appare sfocato. -

    Tuttavia, questa sfocatura non è individuabile se rimane a di sotto di una certa quantità. Nella fotografia classica (non importa se digitale o analogica) in cui le immagini vengono stampate su carta, -la percezione dell'occhio umano rappresenta il fattore limite. -

    L'occhio umano percepisce uno spigolo come nitido, se l'angolo inquadrato della sfocatura è inferiore al minuto di grado. Ne consegue che un punto sfocato di questa -quantità ha un diametro di 2 minuti di grado, che è pari a 1/1700 della distanza di visualizzazione. -

    Questo è il diametro permesso del cosiddetto circolo di confusione. La distanza di visione normale nella fotografia classica è ipotizzata equivalente alla diagonale -dell'immagine stampata. Il circolo di confusione è la base per la maggior parte dei calcolatori e delle tabelle della profondità di campo. -

    -

    Considerazioni per i panorami VR

    -

    Per la creazione dei panorami VR in cui l'osservatore può ingrandire l'immagine, il limite deve essere la distanza del pixel nel panorama visibile; a meno che non -venga permesso l'ingrandimento fino al 100% dei pixel. -

    Dato che un pixel in un panorama equirettangolare corrisponde a un certo angolo di vista nella realtà, -è possibile calcolare direttamente l'angolo di confusione permesso nell'immagine scattata. Questo è pari a 360° diviso la larghezza del pixel dell'immagine equirettangolare. -

    Per un angolo di confusione standard di 2 minuti di arco, si otterrà un'immagine equirettangolare con 10800x5400 pixel. La maggior parte dei panorami VR ha -dimensioni in pixel inferiori, da cui deriva il fatto che la profondità di campo è molto più grande che per la fotografia classica e i calcolatori standard di profondità di -campo non sono molto utili. Proseguire nella lettura per scoprire come aggirare questo problema. -

    -

    Distanza iperfocale

    -

    Nella maggior parte dei casi, un panorama deve essere nitido dall'orizzonte all'oggetto più vicino. Dato che la regione associata alla -profondità di campo è in parte davanti e in parte dietro al piano di messa a fuoco, si perde una fetta importante -di profondità di campo se si mette a fuoco a infinito: solo parte della profondità di campo è utilizzata. -

    Dunque, esiste una distanza a cui effettuare la messa a a fuoco, che estende la profondità di campo esattamente tra l'infinito e il limite più vicino: questa è la -distanza iperfocale. La distanza iperfocale può essere calcolata se è noto il circolo di confusione permesso dal sensore (vedere più in alto). -

    Sulla base delle precedenti considerazioni sulla profondità di campo per i panorami VR, -è possibile creare una piccola tabella con -

    -
    • Largh. - larghezza in pixel dell'immagine -
    • AoC - angolo di confusione in minuti di arco -
    • CoC - Circolo di confusione in mm su DSLR a formato pieno o su pellicola -
    • CoC1.6 - Circolo di confusione in mm su DSLR con un fattore di ritaglio di 1.6 -
    -
    Largh.  AoC  CoC    C0C1.6
    -8000   2.7  0.034  0.021
    -6000   3.6  0.045  0.028
    -4000   5.4  0.068  0.042
    -
    -

    La formula per questo calcolo è la seguente: -

    -
    CoC = sin(AoC) * diagonale del sensore
    -AoC = 360 / Largh.
    -
    -

    Con questi valori è possibile utilizzare un qualsiasi calcolatore di profondità di campo (come per esempio http://www.tawbaware.com/maxlyons/calc.htm) -inserendo il circolo di confusione e calcolando la distanza iperfocale (e la profondità di campo se necessaria). -

    In ogni caso, il limite più vicino della profondità di campo è la metà della distanza iperfocale. -

    È importante ricordare che tutti i valori per gli obiettivi fisheye sono approssimazioni, dato che la loro lunghezza focale, come anche -l'apertura effettiva, variano dal centro ai bordi. -

    -

    Estensione della profondità di campo tramite un programma

    -

    Rik Littlefield ha aggiunto, alla libreria pano12, la capacità di unire più esposizioni con diverse distanze focali in una -singola immagine a estesa profondità di campo. Questa funzionalità è stata ampiamente superata dai nuovi programmi, in particolare CombineZ5, SAR, Helicon focus ed -enfuse. -

    -

    Collegamenti internet

    -

    Some Investigations Regarding Depth of Field by Rik Littlefield: [1] -

    Erik Krause 16:50, 6 Giugno 2005 (EDT) -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Dust_Removal_with_Flatfield.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Dust_Removal_with_Flatfield.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Dust_Removal_with_Flatfield.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Dust_Removal_with_Flatfield.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,102 +0,0 @@ - - - - - - - - - - Rimozione della polvere utilizzando un flatfield - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Rimozione della polvere utilizzando un flatfield

    -
    - -
    - -

    La polvere può entrare nell'ottica di una fotocamera. Nelle immagini panoramiche create a partire da fotografie affette da questo problema, -il ripetersi uniforme della macchia, originata dal granello di polvere, può essere particolarmente fastidioso. -

    -
    Image with dust specks -
    Immagine con granelli di polvere
    -

    È possibile preparare un flatfield adatto alla correzione. Anche se si può correggere le immagini di partenza una alla volta, prima del processo di assemblatura, -con un programma tipo Gimp, per esempio, la procedura di lavoro sarebbe più semplice se fosse direttamente il programma di assemblatura a supportare l'utilizzo di -un flatfield. -

    -
    Image without dust specks
    -
    Immagine senza granelli di polvere
    -

    I flatfield possono essere utilizzati anche per correggere la vignettatura, o una combinazione di quest'ultima -con gli aloni generati dalla polvere. Anche con hugin hugin 0.7 che si avvale di un approccio parametrico per la vignettatura, un flatfield preparato in modo adeguato, -è utile per la rimozione della polvere.
    -

    -

    Esempio di capacità del flatfield

    - - - - - - - - -

    La fotografia all'estrema sinistra presenta delle macchie dovute alla polvere nell'obiettivo. -

    Avendo a disposizione un foglio bianco e impostando l'apertura dell'obiettivo allo stesso valore dello scatto di sinistra, è possibile catturare una fotografia -del flatfield su sfondo bianco contenente le macchie isolate prodotte dalla polvere. -

    Con alcuni aggiustamenti di luminosità e sfocatura con Gimp, la terza immagine rappresenta il flatfield utilizzato nel layer con la modalità impostata su "dividi". -

    Quella all'estrema destra è l'immagine corretta -

    L'esempio riguarda hugin 0.6beta dato che in hugin 0.7beta5 non incorpora più l'utilizzo del flatfield da interfaccia grafica. -In particolare per le immagini panoramiche assemblate, le macchie di polvere tendono a essere fastidiose dato che si ripropongono più volte e ripetitivamente e quindi -l'occhio umano tende a individuarle più facilmente rispetto a un singolo elemento di disturbo posizionato in modo casuale. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Dynamic_range.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Dynamic_range.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Dynamic_range.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Dynamic_range.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ - - - - - - - - - - Dynamic range - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Dynamic range (intervallo dinamico)

    -
    - -
    - -


    -L'intervallo dinamico di una scena, di una fotografia o di un panorama si riferisce al rapporto tra le porzioni più luminose e più buie di un'immagine accuratamente -catturata o osservata. Un problema comune relativo alla realizzazione di un panorama riguarda l'elevato intervallo di livelli di luminosità che si trova nella -maggior parte delle scene, per esempio dall'ombra più profonda sotto a una roccia, alla luce diretta e non filtrata del sole. Una singola esposizione non può -chiaramente riprodurre i dettagli in ombra ed evitare la saturazione nelle zone di luce diretta. -

    Per capire il motivo per cui l'intervallo dinamico è così importante per la fotografia panoramica, è di aiuto capire come il sistema occhio e cervello umano, -percepiscono il naturale intervallo di luminosità che ci circonda. Le più tipiche scene di natura hanno un intervallo dinamico di circa 18 stop (cioè 18 raddoppiamenti), -e l'occhio umano, con dilatazione fissa della pupilla, può apprezzare all'incirca 17 stop (ben adattato alle scene naturali illuminate dal sole non a caso!). -Quando invece si considera anche l'adattamento della dilatazione della pupilla dovuto alla variazione delle condizioni di illuminazione, il sistema occhio-cervello umano -è in grado di apprezzare circa 30 stop di intervallo dinamico (un fattore di 1 miliardo:1!), dalla stella meno luminosa al sole pieno. -

    Per contro, le fotocamera e gli schermi, offrono un intervallo dinamico decisamente inferiore. Le fotocamere digitali migliori possono offrire fino a 10 stop di -intervallo dinamico (cioè 1.000:1). La maggior parte rendono bene l'intervallo dinamico al di sotto di questo valore (vedere [1]). Utilizzando la modalità -RAW della fotocamera si ottiene un maggiore controllo sul processo di tone mapping -dell'intervallo dinamico catturato dal sensore, che può essere esteso al massimo di 1-1,5 stop. Vedere l'estrazione dell'intervallo dinamico RAW per maggiori dettagli. -

    Si tratta comunque di un fattore di circa 500 inferiore al valore tipico presente in una scena illuminata dal sole, ed è anche raramente raggiunto in pratica -(vedere [2]). Le fotocamere con pellicola offrono un intervallo dinamico più ampio al prezzo di una variazione non lineare delle ombre e delle zone sovraesposte. -Alcune fotocamere digitali applicano una curva di trasferimento digitale per approssimare questo comportamento e altre fotocamere (es: [3]) hanno degli speciali -CCD che estendono anche oltre l'intervallo dinamico. Il problema è ancora peggio quando si considerano i sistemi di visualizzazione. -Generalmente gli schermi per computer offrono circa 7-8 stop di contrasto (cioè 100:1), mentre i TV al plasma più costosi offrono 10 stop (1200:1). -

    Questi esempi danno l'idea del problema, e spiegano approfonditamente perché risulta così complicato ottenere una fotografia realistica della luna o di altre scene -a elevato contrasto che invece sono così semplici da apprezzare a occhio nudo. -

    Esistono vari metodi per trattare con le scene a elevato contrasto dinamico, compresa la tecnica che prevede di scattare una serie di fotografie della stessa scena -con diversi valori dell'esposizione, combinandole poi in seguito (consultare la fusione del contrasto) utilizzando dei canali a 16bit per colore (es: processo compelto -di elaborazione a 16 bit) per raggiungere il limitato intervallo del dispositivo di output (stampante o schermo). Esistono anche degli interessanti algoritmi di -compressione dell'intervallo dinamico (es: ompressione Gradient Domain High Dynamic Range). -

    Photoshop CS2 fornisce ora una funzione interna di unione in HDR, in grado di assemblare una serie di scatti ottenuti con il bracketing in una immagine HDR. È reperibile un ottima guida di Brian Greenstone su come utilizzare questa funzione: [4] e una prova comparativa -di due plugin che tentano di comprimere un'immagine HDR: HDR compression -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Enblend.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Enblend.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Enblend.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Enblend.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,108 +0,0 @@ - - - - - - - - - - Enblend - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Enblend

    -
    - -
    - - -

    Introduzione

    -

    Enblend sovrappone diverse immagini in formato TIFF in modo da rendere invisibili le cuciture di collegamento. -È in grado di elaborare immagini a 8, 16 o 32 bit (HDR floating point) per canale. -

    Enblend funziona come plugin per PTGui, hugin, PTMac o PTAssembler oppure indipendentemente dalla linea di comando -o dall'interfaccia di Enblend. -

    Novità della versione 3.0: -

    -
    • corregge le linee di cucitura in modo da evitare le aree di accoppiamento errato tra le immagini di partenza come -gli errori di parallasse; -
    • supporta il salvataggio e il caricamento delle maschere; -
    • include numerosi altri miglioramenti delle prestazioni. -
    -

    Enblend è disponibile per Windows e Linux dal sito del progetto. Esiste una versione per Mac OS X, xblend, disponibile grazie a Kevin Kratzke. -

    -

    Utilizzo da linea di comando

    -

    I parametri degni di nota sono: -

    -
    -a
    pre assembla le immagini che non si sovrappongono. Accelera vistosamente la fusione di panorami con molte immagini che non si sovrappongono -(come gli enormi multi riga). -
    -w
    estende il processo di fusione anche al confine dei 360° in modo da non ottenere una brusca transizione nelle cuciture a +180° e -180°. -
    -o
    obbliga Enblend a utilizzare un nome di file di output fornito dall'utente. -
    -v
    output prolisso; permette di visualizzare i dettagli su cosa sta avvenendo invece di mostrare una finestra vuota. -
    -l <n>
    obbliga Enblend a utilizzare un certo numero di livelli per aumentare l'area di fusione (minimizza le linee di cucitura visibili). -
    -

    Enblend supporta l'input di file TIFF ritagliati. -

    -

    Avvertimento

    -

    Se si cerca di eseguire Enblend 3.0 su un sistema Windows e si osserva che il programma esce immediatamente senza creare un output, probabilmente si sta tentando di -utilizzare una versione compilata con istruzioni SSE su un processore senza il supporto SSE (come le vecchie CPU AMD). È possibile ottenere una versione binaria non SSE -di Enblend da Sourceforge.[1] -

    Questa versione potrebbe non funzionare comunque come discusso in [2] (problema) e [3] (soluzione). Se così fosse c'è una versione corretta disponibile all'indirizzo -http://alto.anu.edu.au/~wpc/private/enblend/enblend-3.0-cyg.zip -

    -

    Ottenere Enblend

    -

    Enblend è a codice aperto. Come tale è possibile scaricarlo gratuitamente dalla pagina ufficiale del progetto. Enblend è contenuto nelle maggiori distribuzioni Linux. -Una versione è ottenibile utilizzando il gestore di pacchetti fornito dalla propria distribuzione. Per ubuntu linux, aprire un terminale e digitare: -

    -
    $ sudo apt-get install enblend
    -
    -

    Tutto qui! -

    Enblend è costantemente in sviluppo. Se si volesse ottenere la versione più recente, si legga la sezione seguente sullo sviluppo. -

    -

    Sviluppo

    -

    Enblend è un progetto a codice aperto e di conseguenza dipende fortemente dai contributi volontari di risorse. Se si hanno delle capacità di programmazione, -si è i benvenuti nel dare uno sguardo al codice sorgente e magari nel contribuirvi. Anche se non si posseggono le conoscenze necessarie per la programmazione, -probabilmente si avranno altre capacità che possono rivelarsi utili al progetto e quindi si è sempre i benvenuti nel fornire il proprio tempo. I campi che richiedono -attenzione cambiano frequentemente e così avviene anche per le capacità e risorse richieste. Registrandosi alla mailing list hugin-ptx è possibile sapere cosa -sta avvenendo in quel momento e quale aiuto è richiesto. Anche provare il programma e esprimere un parere è di aiuto. -

    Per essere aggiornati all'ultima versione, seguire lo sviluppo e il processo di compilazione di hugin -

    -
    • Ubuntu Linux -
    • Fedora Linux -
    • Mac OSX -
    • Windows -
    -

    Vedere anche

    -

    Guide pratiche che trattano di enblend: -

    -
    • Utilizzare enblend per riempire il "buco sul pavimento" Nice to know -
    • Come utilizzare enblend per sistemare le immagini di zenit e nadir Nice to know -
    -

    Collegamenti esterni

    -
    • Pagina del progetto Enblend -
    • xblend -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Enblend"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Enfuse.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Enfuse.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Enfuse.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Enfuse.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,282 +0,0 @@ - - - - - - - - - - Enfuse - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    enfuse

    -
    - -
    - -
    Four exposure panorama blended with enfuse
    - -
    Quattro panorami con diversa esposizione fusi con enfuse
    -
    17 EV image blended with enfuse - (c) 
-Jacek Zagaja
    -
    immagine a 17 EV fusa con enfuse - (c) Jacek Zagaja
    -
    -

    enfuse è un programma funzionante da linea di comando che permette di unire immagini della stessa scena con diversa esposizione al fine di produrre un'immagine -che sembra in tutto e per tutto tonemapped (senza gli aloni) senza richiedere la creazione di -un'immagine HDR. È quindi molto più semplice da usare e permette la creazione di panorami molto grandi con esposizione multipla. -

    enfuse è basato su un articolo di Tom Mertens, Jan Kautz e Frank Van Reeth: "fusione dell'esposizione". L'implementazione è avvenuta a opera di Andrew Mihal -(sviluppatore di Enblend) e del gruppo di hugin capeggiato da Pablo d'Angelo -

    Altri programmi che utilizzano la fusione dell'esposizione sono tufuse e PTGui Pro -

    - -

    Stato di sviluppo

    -

    L'8 Settembre 2008 è stata rilasciata, insieme a enblend, la prima versione ufficiale di enfuse. -La coppia Enfuse/enblend può essere scaricata da enblend.sourceforge.net. In questo sito sono disponibili il codice sorgente della versione 3.2 e i pacchetti binari -precompilati per Windows. -

    I rilasci beta (sviluppo) possono essere scaricati da: -

    -
    • panospace.wordpress (scorrere nella pagina) per Windows; -
    • panorama.dyndns.org (scorrere nella pagina) per MacOSX; -
    • e anche da hugin.panotools.org. -
    -

    Problemi noti

    -

    (Questa sezione deve essere aggiornata)
    -Questa è una lista di problemi noti (bug) che affliggono la versione corrente di cui sopra. Per una lista di bug relativi alle versioni precedenti, fare riferimento -a una versione più vecchia di questa pagina. -

    -

    Nel link fornito in precedenza, è presente anche una lista dei bug conosciuti. Per una lista relativa alle versioni precedenti, fare riferimento a una versione precedente -di questa pagina.

    -
    • Se le strutture contrastanti sono vicine allo zenit o al nadir in una immagine -equirettangolare, potrebbe essere presente un artefatto (vortice) nel panorama risultante. -
    -
    Come aggirare questo problema: utilizzare separatamente le immagini di zenit e nadir unendole poi in seguito al panorama risultante. -
    - sconosciuto, anche se può essere corretto facilmente. -
    -
    -

    Descrizione

    -

    enfuse unisce due immagini che si sovrappongono utilizzando l'algoritmo di fusione dell'esposizione proposto da Mertens-Kautz-Van Reeth. Quest'ultimo rappresenta un -metodo veloce per fondere delle immagini a diversa esposizione in una buona immagine finale, senza produrre delle immagini HDR intermedie -sulle quali dover effettuare l'operazione di tonemap per ottenere un'immagine corretta. Questo processo semplificato spesso produce risultati migliori rispetto agli algoritmi noti di tonemapping. -

    enfuse può anche essere utilizzato per creare immagini con un esteso DOF, unendo una serie di immagini -con messa a fuoco diversa. -

    -

    Principi di base

    -

    L'idea di base sta nel concetto secondo cui i pixel nelle immagini di partenza vengono pesati sulla base di proprietà specifiche quali l'esposizione corretta, -il buon contrasto, e l'elevata saturazione. I pesi determinano l'entità del contributo fornito dal pixel all'immagine finale. -

    Questa idea non è del tutto nuova; per esempio Ardeshir Goshtasby ha proposto una tecnica per selezionare e unire solamente i blocchi con una buona esposizione -e Erik Krause ha creato un'azione per Photoshop per mascherare le aree esposte in modo errato. Esistono diverse soluzioni per il "DRI" o "la fusione dell'esposizione". -

    Il problema comune a tutte queste tecniche, era quello di ottenere una buona transizione tra le erre prelevate da immagini a diversa esposizione; c'era sempre -il rischio di ottenere del banding o dei gradienti inversi nelle zone in cui la luminosità variava gradualmente. -

    enfuse risolve questi problemi utilizzando la tecnica della spline multi risoluzione utilizzata anche da enblend e -smartblend: è proprio questa tecnica la responsabile degli ottimi risultati. Il metodo è descritto in dettaglio per enblend e funziona allo stesso per enfuse, con -l'eccezione che invece della linea di cucitura iniziale, viene creata una maschera in funzione del criterio fornito. -

    enfuse si avvale di tre diversi criteri per giudicare la qualità di un pixel: esposizione, saturazione e contrasto. -

    -
    • Il criterio dell'esposizione favorisce i pixel con una luminosità all'incirca media rispetto all'intervallo. Questi pixel sono considerati meglio esposti rispetto -a quelli con un alto o basso livello di luminosità. -
    • Il criterio di saturazione favorisce i pixel con un elevata saturazione. -
    • Il criterio del contrasto favorisce i pixel che presentano un elevato contrasto. La misura del contrasto è fornita dalla deviazione standard locale del valore di -colore o di grigio. L'articolo di Mertens-Kautz-Van Reeth suggerisce l'utilizzo di un filtro Laplaciano, ma la deviazione standard produce risultati decisamente migliori -per le immagini con diversi valori della messa a fuoco. -
    -

    Aggiustamenti

    -

    L'utente può impostare la misura dell'importanza che viene attribuita a ogni criterio, configurando i parametri che ne determinano il peso dalla linea di comando. -Per esempio, se si imposta --wExposure=1.0 e --wSaturation=0.5, enfuse favorirà i pixel meglio esposti rispetto a quelli con elevata saturazione al momento della -fusione delle immagini di partenza. L'effetto di questi parametri sul risultato finale non sarà sempre chiaro. La qualità del risultato dipende dalla propria -interpretazione artistica; variando i valori dei parametri si possono ottenere immagini più o meno piacevoli. Si consiglia di sperimentare varie impostazioni (magari -utilizzando delle versioni ridotte delle immagini per rendere il processo più veloce). -

    enfuse permette di utilizzare delle immagini di input che hanno un canale alfa. Impostando il valore dell'alfa dei pixel a 0, l'utente è in grado di rimuoverli -manualmente durante l'unione. Se un'immagine in ingresso è sprovvista di un canale alfa, enfuse visualizzerà un messaggio di avviso e procederà ipotizzando che tutti i pixel -debbano essere elaborati per ottenere l'output finale. Un qualsiasi valore dell'alfa diverso da zero, sottintenderà l'elaborazione del pixel per ottenere l'immagine finale. -

    -

    Utilizzo

    -

    L'utilizzo descritto nel seguito si riferisce alla versione CVS del 21 Dicembre 2007. Utilizzare enfuse nel seguente modo: -

    -
    enfuse <opzioni> <file di input>.
    -
    -

    I file di input possono essere sotto forma di lista oppure di espressione regolare (su Windows, per esempio, utilizzare IMG*.jpg per elaborare tutte le -immagini JPG il cui nome inizia per IMG). -

    -

    Opzioni comuni

    -
    -h
    -
    -

    Fornisce le informazioni sulle opzioni disponibili. -

    -
    -l num
    -
    -

    Utilizzare esattamente questo numero di livelli per la fusione piramidale. Un numero basso va a discapito della qualità aumentando però la velocità di elaborazione. -L'impostazione predefinita prevede di utilizzare il maggior numero di livelli possibile in funzione delle dimensioni delle immagini di input. Comunque, le versioni più -recenti sembrano non adottare questa regola e quindi si consiglia di specificare un numero arbitrario piuttosto elevato (per esempio -l 20) al fine di ottenere i risultati -migliori. Se si specifica un numero elevato, enfuse potrebbe comunque utilizzarne uno più basso se la geometria dell'immagine lo richiede. -

    -
    -o output-file
    -
    -

    Necessario: specifica il nome del file di output. -

    -
    -v
    -
    -

    Output prolisso. -

    -
    -w
    -
    -

    fonde il confine a -180°/+180°. Utile per i panorami completi a 360°. Attualmente enfuse non fonde zenit o nadir, quindi è possibile trovare delle cuciture -in queste aree. -

    -
    --compression=COMP
    -
    -

    Scrive un file di output compresso. Valori validi sono NESSUNO, PACKBITS, LZW e DEFLATE, per i file TIFF, e un numero da 0 a 100 per i file JPEG. -

    -

    Opzioni estese

    -
    -b kilobytes
    -
    -

    Imposta la dimensione del blocco per la memoria cache utilizzata da enfuse. Rappresenta la quantità di dati che enfuse movimenterà in una sola volta da e verso il disco. -Il valore predefinito è pari a 2 MB che dovrebbe essere ottimale per la maggior parte dei sistemi. -

    -
    -c
    -
    -

    Utilizza il modello di visualizzazione dei colori CIECAM02 per la loro fusione. I file TIFF di input dovrebbero contenere dei profili ICC. Se questi mancassero, -enfuse assumerà che l'immagine utilizzi uno spazio colore sRGB. La differenza tra l'utilizzo di questa opzione e l'algoritmo predefinito di enfuse, è molto piccola, e -si noterà solamente nel caso in cui si debbano fondere insieme delle zone con diversi colori primari. -

    -
    -g
    -
    -

    Gimp (ver. < 2) e Cinepaint mostrano degli strani comportamenti quando vengono caricate delle immagini con dei canali alfa non associati. Utilizzare l'opzione -g -per evitare questo problema. Con questa opzione enblend creerà l'immagine finale associandole un tag per il canale alfa,anche se in realtà l'immagine non è associata. -

    -
    -f WIDTHxHEIGHT+x0+y0
    -
    -

    Impostazione manuale delle dimensioni e della posizione dell'immagine finale. Questa opzione risulta utile quando si utilizzano dei TIFF ritagliati come input, -come quelli prodotti da nona. -

    -
    -m megabytes
    -
    -

    Imposta la dimensione della memoria cache utilizzata da enfuse. Si tratta della memoria che enfuse utilizza per immagazzinare i dati d'immagine prima di iniziare a -scrivere sul disco. Il valore predefinito è pari a 1 GB. -

    -

    Opzioni di fusione

    -

    W è un numero compreso tra 0 (nessun peso) e 1 (peso massimo) -

    -
    --wExposure=W
    -
    -

    Imposta il peso relativo del criterio di buona esposizione. Aumentando questo valore rispetto agli altri, i pixel ben esposti contribuiranno in misura maggiore alla -creazione dell'output. -

    -
    --wSaturation=W
    -
    -

    Imposta il peso relativo dei pixel a elevata saturazione. Aumentando questo valore rispetto agli altri, i pixel molto saturati contribuiranno in misura maggiore alla -creazione dell'output. -

    -
    --wContrast=W
    -
    -

    Imposta il peso relativo dei pixel a elevato contrasto. Aumentando questo valore rispetto agli altri, i pixel che hanno altri pixel vicini di colore diverso, -contribuiranno in misura maggiore alla creazione dell'output. Questa opzione è particolarmente utile per i gruppi di foto a diversa messa a fuoco. -

    -
    --wMu=mu
    -
    -

    Media della funzione gaussiana del peso (da 0 a 1) valida solamente per il criterio di esposizione. Il valore predefinito è pari a 0,5. Questo parametro permette di -spostare il picco della curva verso la zona più luminosa o più scura dell'istogramma. Valori alti causano il prelevamento di pixel più luminosi dalle immagini di partenza, -mentre valori bassi selezionano quelli più scuri. -

    -
    --wSigma=sigma 
    -
    -

    Deviazione standard della funzione di peso gaussiana (da 0) per il solo criterio di esposizione. Il valore predefinito è pari a 0,2. Valori maggiori danno origine a -una curva più larga e quindi vengono prelevati più pixel da un'immagine specifica (probabilmente saranno inclusi quelli sovra e/o sotto esposti). Un valore minore dà origine a -una curva più stretta e quindi vengono prelevati meno pixel, con il rischio che compaia del banding. -

    -
    --HardMask
    -
    -

    Forza l'applicazione di maschere di fusione nette alla scala maggiore. Questo evita il processo di mediazione dei dettagli più piccoli (solamente), al costo di -un aumento del rumore. Questa opzione aumenta considerevolmente la nitidezza della pila di immagini con diverse messe a fuoco. -

    -

    Opzioni per esperti

    -
    --ContrastWindowSize=s
    -
    -

    Ampiezza della finestra per le analisi locali di contrasto. Valori superiori a 5 possono richiedere lunghi tempi di elaborazione. Valori nell'intervallo 3-7 -hanno fornito buoni risultati per le pile di immagini a diversa messa a fuoco. L'effetto sulla qualità del risultato non è facilmente definibile. Si consiglia di -sperimentarne i risultati. -

    -
    --GrayProjector=OPERATORE
    -
    -

    Applica l'OPERATORE della proiezione in scala di grigi, dove OPERATORE è uno tra "average", "l-star", "lightness", "value", "luminance", o -"channel-mixer:RED-WEIGHT:GREEN-WEIGHT:BLUE-WEIGHT". Default: "average" -

    -
    --EdgeScale=SCALASPIGOLO[:SCALALCE[:FATTORELCE]]
    -
    -

    Scala con cui identificare gli spigoli. Valori positivi di SCALALCE variano il valore locale del contrasto di un fattore FATTORELCE (SCALASPIGOLO, SCALALCE, FATTORELCE ->= 0).
    -Aggiungere il simbolo "%" a SCALALCE per utilizzare i valori relativi a SCALASPIGOLO;
    -Aggiungere il simbolo "%" a LCEFACTOR per utilizzare dei valori relativi. Default: 0:0:0 -

    -
    --MinCurvature=CURVATURA
    -
    -

    Minima CURVATURA per la qualifica di uno spigolo. Aggiungere il simbolo "%" per utilizzare dei valori relativi. Default: 0. -

    -
    --debug
    -
    -

    Non cancella le immagini intermedie; utile nel caso si riscontrassero dei problemi. -

    -

    Collegamenti esterni

    -

    Linea di comando

    -

    Una ulteriore implementazione dell'algoritmo di enfuse è TuFuse di Max Lyons, che permette la fusione automatica del DOF (da una pila di immagini con distanza di messa a fuoco differente), la fusione immediata dell'esposizione e altre opzioni aggiuntive: -http://www.tawbaware.com/tufuse.htm (freeware, solo per Windows) -

    -

    Interfacce grafiche

    -

    enfuse ha dato vita alla realizzazione di diverse interfacce grafiche ancor prima del suo rilascio finale. -

    -

    Multi piattaforma

    -
    • Il recente rilascio di hugin ha integrato completamente enfuse. Scaricarla da http://hugin.sourceforge.net (codice aperto). -
    -
    • PTGui Pro dalla versione 7.7 ha uno strumento integrato di fusione d'immagine che fornisce il solo criterio di esposizione ma ha delle possibilità di personalizzazione -aggiuntive. -
    -

    Windows

    -
    • Le "droplet" di Erik Krause sono contenute nel pacchetto di hugin per Windows reperibile su http://hugin.sourceforge.net; -sono pronte all'utilizzo non appena terminata l'installazione. Un gruppo di immagini o un'intera cartella possono essere trascinate su una "droplet". Nel caso di una -cartella, l'utente può specificare il numero di immagini in una serie a forcella, quindi più serie possono essere unite con enfuse in una volta. La "droplet" copia i -parametri EXIF più rilevanti nell'immagine finale in modo che i dati relativi a fotocamera e obiettivo non siano persi nel caso sia necessario, per esempio, assemblare -di nuovo le immagini. Un'altra versione della "droplet" effettua l'allineamento automatico per poter gestire le serie a forcella catturate a mano libera. (codice aperto) -
    -
    • EnfuseGUI di Ingemar Bergmark, è un'interfaccia grafica (free). -
    -
    • TuFuse Pro di Max Lyons, è un'interfaccia grafica be realizzata per la sua applicazione free da linea di comando tufuse (commerciale). -
    -
    • Tufusion è un'interfaccia grafica free per il programma tufuse di Max Lyons, sviluppato dall'utente del forum di Tufuse soprannominato "entropy". -Non è sofisticata quanto quella di Tufuse Pro, ma rende comunque le operazioni più semplici in confronto all'utilizzo della linea di comando. -
    -

    Mac OSX

    -
    • XFuse di Kevin Kratzke è un'interfaccia grafica che permette l'elaborazione in serie e l'impostazione, attraverso dei semplici controlli, di molte opzioni comuni -di enfuse. Le opzioni avanzate possono essere specificate in un campo «Avanzate». (libero) -
    -
    • Bracketeer di Brian Greenstone è un'interfaccia grafica con funzioni di anteprima (commerciale). -
    -
    • ImageFuser di Harry van der Wolf è un'interfaccia grafica per enfuse e align_image_stack -con funzioni di anteprima (programma libero ma rilasciato con donationware). -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Enfuse"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Entrance_pupil.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Entrance_pupil.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Entrance_pupil.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Entrance_pupil.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - - - - - - Punto a parallasse nulla - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Punto a parallasse nulla

    -
    - -
    (Reindirizzato da "Entrance pupil")
    - -


    -Se la fotocamera viene ruotata rispetto a un punto qualsiasi, le immagini catturate potrebbero mostrare degli errori di parallasse -ed essere difficili da assemblare. -

    Per la maggior parte degli obiettivi, esiste un punto particolare attorno al quale è possibile ruotare la propria fotocamera evitando gli errori di parallasse. -Questo particolare "punto a parallasse nulla" è il centro della pupilla di ingresso dell'obiettivo, un'apertura virtuale all'interno dell'obiettivo. -Nel mondo della fotografia panoramica, questo particolare punto è spesso chiamato "punto nodale", ma non ha in effetti alcuna relazione con i veri punti nodali -dell'obiettivo.1,2 I veri punti nodali sono altri punti sul -percorso ottico, che non hanno alcun significato particolare per la maggior parte delle applicazioni fotografiche. Il punto a parallasse nulla rappresenta anche il "centro -della prospettiva", ma questa definizione non è utilizzata comunemente e non descrive il perché il punto a parallasse nulla è così importante. -

    La pupilla di ingresso è l'immagine dell'apertura limite del diaframma, vista attraverso la parte anteriore dell'obiettivo. -L'immagine può apparire ingrandita dall'effetto degli elementi ottici dell'obiettivo che ha di fronte e può essere spostata rispetto all'effettiva posizione dell'apertura. -È proprio rispetto al centro di questa immagine che la fotocamera dovrebbe essere ruotata per eliminare gli errori di parallasse. La pupilla di ingresso -è importante per un altro motivo: il numero "f" di un obiettivo rappresenta il rapporto tra la lunghezza focale e il diametro della pupilla di ingresso -(e non il diametro fisico dell'apertura all'interno della fotocamera). -

    Alla luce di queste considerazioni, il miglior termine per descrivere il punto a parallasse nulla è proprio "punto a parallasse nulla"!. "Pupilla di ingresso" è -corretto, anche se impreciso per un purista della geometria; è un termine utile da ricercare nella letteratura ed è preferito nella scrittura formale. Il "punto nodale" è -comunemente utilizzato, ma non è corretto e può indurre confusione. Dovrebbe essere evitato nella scrittura e interpretato con cautela nella lettura dei testi. -

    Indipendentemente da come lo si chiami, il punto a parallasse nulla può essere trovato semplicemente per tentativi: occorre solamente correggere il punto di rotazione -in modo che i punti in primo piano e sullo sfondo rimangano allineati. -

    Alcuni obiettivi, in particolare quelli fisheye, non hanno un singolo punto a parallasse nulla; posseggono invece un gruppo di quelli che potremmo chiamare -"punti a parallasse minima" che dipendono dall'angolo a cui si trovano rispetto all'asse dell'obiettivo. Questi obiettivi sono facilmente riconoscibili: è sufficiente -guardare attraverso l'obiettivo dalla parte anteriore e osservare che la posizione della pupilla di ingresso si sposta avanti e indietro ruotando l'obiettivo. -Con questo tipo di obiettivo, è consigliabile scegliere un angolo a cui si desidera assemblare le foto e ruotare la fotocamera attorno a un punto che fornisce un errore di -parallasse nullo per quello stesso angolo. -

    Per facilitare l'individuazione del punto a parallasse nulla a favore degli altri utilizzatori, è possibile inserire le misure utilizzate per la propria combinazione -di fotocamera, obiettivo e lunghezza focale nel database delle pupille di ingresso. -

    -

    Vedere anche

    -
    • Adattatori per punto nodale -
    • Database delle pupille di ingresso -
    -

    Riferimenti

    -
    1. Kerr, Douglas A. "The Proper Pivot Point for Panoramic Photography" The Pumpkin (2005). Accessed 2007-01-14. -
    2. van Walree, Paul "Misconceptions in photographic optics", Item #6. Accessed 2007-01-14. -
    -

    Collegamenti

    -
    • Rik Littlefield, teoria del punto "a parallasse nulla" nella fotografia panoramica -
    • Esempio pratico di panorama di Big Ben: determinare il punto nodale di un obiettivo. -
    • Kaidan, come trovare il punto nodale della propria fotocamera. -
    • Alain Hamblenne, The Grid -
    • Michel Thoby, posizione particolare del punto nodale per l'obiettivo SIGMA 8mm f:4, che descrive un approccio interessante che si avvale di un puntatore laser. -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Equirectangular.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Equirectangular.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Equirectangular.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Equirectangular.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - - - - Proiezione equirettangolare - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Proiezione equirettangolare

    -
    - -
    (reindirizzato da "Equirectangular")
    - -
    Equirectangular Projection, with permission from Ben Kreunen
    - -

    Descrizione

    -

    È un tipo di proiezione che permette di rimappare una porzione della superficie della sfera in una immagine -bidimensionale. È anche chiamata la "non proiezione", o plate carre dato che la coordinata orizzontale è semplicemente la longitudine mentre quella verticale è -la latitudine, senza nessuna trasformazione applicata. La proiezione equirettangolare era utilizzata nella realizzazione delle mappe cartografiche -dato che fu inventata intorno al 100 a.c. da Marinus di Tiro. Consultare le pagine di Mathworld per informazioni più dettagliate sulle leggi matematiche che -governano questo tipo di proiezione. -

    In un'immagine panoramica equirettangolare tutte le verticali rimangono tali, e l'orizzonte diventa una linea retta che attraversa il centro dell'immagine. -Le coordinate nell'immagine sono legate linearmente agli angolo di spostamento verticale e orizzontale nel mondo reale. -I poli (zenit e nadir) sono situati rispettivamente negli spigoli in alto e in basso -e sono identificati da una linea che occupa l'intera larghezza dell'immagine. Le aree vicine ai poli appaiono stirate orizzontalmente. -

    La proiezione equirettangolare costituisce il formato predefinito per le immagini in uscita da una fotocamera panoramica rotante (scanning) equipaggiata con -un obiettivo fisheye; un fisheye a 180° che fornisce una sfera completa a 360°. Le fotocamere per lo scanning coprono spesso più di 360° ma il programma -assume, come limite per un'immagine equirettangolare, 360° in orizzontale e 180° in verticale. Per esempio, è importante assicurarsi che la propria -immagine equirettangolare abbia un rapporto d'aspetto di 2:1; per farlo è sufficiente controllarne -le dimensioni in pixel: un file con 1650 x 824 pixel manca di 1 pixel sul lato corto, confondendo quindi alcune applicazioni. -

    La proiezione equirettangolare è comunemente utilizzata come formato di partenza per i visualizzatori di panorami sferici, compreso -PTViewer. L'altra possibilità è rappresentata dalla -proiezione cubica. -

    -

    Problemi comuni

    -

    Ritocco

    -

    Le regioni vicino ai poli di un'immagine equirettangolare, sono decisamente distorte, rendendo il ritocco di queste zone problematico. Alcuni consigli utili sono -forniti nella panoramica sulla modifica di zenit e nadir. -

    -

    Fusione

    -

    Possono verificarsi dei problemi nell'unione automatica delle cuciture vicino ai poli. -Nessuno degli strumenti che eseguono la fusione, quali PTStitcher, Enblend -o SmartBlend trattano la proiezione equirettangolare in modo diverso dalle altre. -

    Così, se è necessario avere delle cuciture vicino allo zenit o al nadir, sarò necessario unire la scena per intero con una orientazione differente per ottenere -dei buoni risultati. -

    -

    Tone Mapping

    -

    Possono verificarsi dei problemi anche utilizzando degli operatori locali di tone mapping che producono -strani risultati vicino ai poli. La soluzione consiste nell'utilizzare un "tone mapping" globale o ritoccare manualmente zenit e nadir. -

    -

    Scalatura

    -

    Le immagini equirettangolari posseggono una grande quantità di dati ridondanti vicino ai poli a causa della distorsione nella direzione della latitudine. -Quando si rimpicciolisce una immagine di questo tipo in un programma come Gimp o Photoshop, la risoluzione effettiva è diminuita come ci si aspetterebbe -tranne che vicino ai poli. -

    Questo è causa di artefatti radiali indesiderati al momento della visualizzazione successiva in un programma per la visualizzazione di panorami. -La soluzione consiste nel passare a una proiezione che produce meno distorsione come quella cubica -prima di riscalare, sfumare o affilare un panorama; è possibile ritornare successivamente alla proiezione equirettangolare, se necessario. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Equirectangular_Projection.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Equirectangular_Projection.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Equirectangular_Projection.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Equirectangular_Projection.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,86 +0,0 @@ - - - - - - - - - - Proiezione equirettangolare - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Proiezione equirettangolare

    -
    - -
    - -
    Equirectangular Projection, with permission from Ben Kreunen
    - -

    Descrizione

    -

    È un tipo di proiezione che permette di rimappare una porzione della superficie della sfera in una immagine -bidimensionale. È anche chiamata la "non proiezione", o plate carre dato che la coordinata orizzontale è semplicemente la longitudine mentre quella verticale è -la latitudine, senza nessuna trasformazione applicata. La proiezione equirettangolare era utilizzata nella realizzazione delle mappe cartografiche -dato che fu inventata intorno al 100 a.c. da Marinus di Tiro. Consultare le pagine di Mathworld per informazioni più dettagliate sulle leggi matematiche che -governano questo tipo di proiezione. -

    In un'immagine panoramica equirettangolare tutte le verticali rimangono tali, e l'orizzonte diventa una linea retta che attraversa il centro dell'immagine. -Le coordinate nell'immagine sono legate linearmente agli angolo di spostamento verticale e orizzontale nel mondo reale. -I poli (zenit e nadir) sono situati rispettivamente negli spigoli in alto e in basso -e sono identificati da una linea che occupa l'intera larghezza dell'immagine. Le aree vicine ai poli appaiono stirate orizzontalmente. -

    La proiezione equirettangolare costituisce il formato predefinito per le immagini in uscita da una fotocamera panoramica rotante (scanning) equipaggiata con -un obiettivo fisheye; un fisheye a 180° che fornisce una sfera completa a 360°. Le fotocamere per lo scanning coprono spesso più di 360° ma il programma -assume, come limite per un'immagine equirettangolare, 360° in orizzontale e 180° in verticale. Per esempio, è importante assicurarsi che la propria -immagine equirettangolare abbia un rapporto d'aspetto di 2:1; per farlo è sufficiente controllarne -le dimensioni in pixel: un file con 1650 x 824 pixel manca di 1 pixel sul lato corto, confondendo quindi alcune applicazioni. -

    La proiezione equirettangolare è comunemente utilizzata come formato di partenza per i visualizzatori di panorami sferici, compreso -PTViewer. L'altra possibilità è rappresentata dalla -proiezione cubica. -

    -

    Problemi comuni

    -

    Ritocco

    -

    Le regioni vicino ai poli di un'immagine equirettangolare, sono decisamente distorte, rendendo il ritocco di queste zone problematico. Alcuni consigli utili sono -forniti nella panoramica sulla modifica di zenit e nadir. -

    -

    Fusione

    -

    Possono verificarsi dei problemi nell'unione automatica delle cuciture vicino ai poli. -Nessuno degli strumenti che eseguono la fusione, quali PTStitcher, Enblend -o SmartBlend trattano la proiezione equirettangolare in modo diverso dalle altre. -

    Così, se è necessario avere delle cuciture vicino allo zenit o al nadir, sarò necessario unire la scena per intero con una orientazione differente per ottenere -dei buoni risultati. -

    -

    Tone Mapping

    -

    Possono verificarsi dei problemi anche utilizzando degli operatori locali di tone mapping che producono -strani risultati vicino ai poli. La soluzione consiste nell'utilizzare un "tone mapping" globale o ritoccare manualmente zenit e nadir. -

    -

    Scalatura

    -

    Le immagini equirettangolari posseggono una grande quantità di dati ridondanti vicino ai poli a causa della distorsione nella direzione della latitudine. -Quando si rimpicciolisce una immagine di questo tipo in un programma come Gimp o Photoshop, la risoluzione effettiva è diminuita come ci si aspetterebbe -tranne che vicino ai poli. -

    Questo è causa di artefatti radiali indesiderati al momento della visualizzazione successiva in un programma per la visualizzazione di panorami. -La soluzione consiste nel passare a una proiezione che produce meno distorsione come quella cubica -prima di riscalare, sfumare o affilare un panorama; è possibile ritornare successivamente alla proiezione equirettangolare, se necessario. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/EXIF.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/EXIF.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/EXIF.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/EXIF.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ - - - - - - - - - EXIF - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    EXIF

    -
    - -
    - -


    -La sigla EXIF è l'acronimo di Exchangeable Image File Format (formato di file immagine cambiabile); esso permette di immagazzinare le informazioni relative -a fotocamera, obiettivo, esposizione, descrizione immagine, copyright, ecc... direttamente all'interno di campi standardizzati di immagini in formato JFIF -(JPEG) o TIFF. EXIF rappresenta di fatto lo standard adottato dai produttori di fotocamere come metodo per -immagazzinare le informazioni registrate da una fotocamera digitale e non è stato progettato per essere utilizzato come meccanismo di salvataggio delle informazioni per -altri scopi; XMP è un formato più generico per l'immagazzinamento di dati arbitrari in diversi formati multimediali. -

    I dati EXIF vengono utilizzati dai programmi di assemblatura, come PTGUI, per assumere delle ipotesi relative alla fotocamera (sensore) e all'obiettivo -utilizzato per scattare una certa immagine. Queste informazioni permettono di impostare i valori di default per il -campo inquadrato e per il fattore di ritaglio, -necessari al processo di assemblatura. I valori di default -rappresentano generalmente un punto di partenza e sono poi perfezionati durante la fase di ottimizzazione. -

    Come si noterà consultando le pagine dedicate agli ExifTool riportate più sotto, esistono molti campi ridondanti dato che i diversi produttori definiscono -dei campi personalizzati per delle informazioni identiche, e dei campi creati per immagazzinare dei dati specifici per ogni produttore stesso. Parte di questi campi -non sono documentati, almeno per quanto riguarda il dominio pubblico, e quindi molte risorse, in questo settore, sono investite per cercare di decodificare questi -campi, la loro semantica e i loro limiti. -

    Anche se il formato EXIF non è intesa per essere modificabile dall'utente, esistono tutta una serie di strumenti in grado di modificare i dati EXIF con diversi -livelli di supporto per l'enorme varietà di campi che è possibile reperire nei file EXIF in circolazione. -

    ExifTool è un software gratuito che permette la manipolazione dei dati EXIF presenti in diversi tipi di file. ExifTool è uno dei più completi programmi -di modifica dei dati EXIF in circolazione, ed è in continuo aumento il numero e il supporto per i dati EXIF non documentati, ma si aggiunge anche il supporto -ad altre strutture adottate da altri formati di file (non EXIF). -

    Photomolo è uno strumento gratuito per ruotare, senza perdite di qualità, le immagini JPEG aggiornandone -di conseguenza i tag EXIF. -

    -

    Collegamenti esterni

    -
    • ExifTool -
      • Tabella nomi dei tag ExifTool -
      • Tabella dei tag EXIF -
      -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/EXIF"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Field_of_View.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Field_of_View.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Field_of_View.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Field_of_View.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ - - - - - - - - - - Campo inquadrato - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Campo inquadrato

    -
    - -
    - -


    -L'angolo inquadrato di una fotografia o fotocamera è una misura della parte di scena ritratta nell'immagine. In parole semplici: quanti gradi di vista sono -inclusi nell'immagine. Un comune obiettivo a focale fissa potrebbe avere un angolo di 50°, un obiettivo fisheye può avere un angolo inquadrato superiore a 180° mentre un panorama completo equirettangolare -o cilindrico avrà un angolo inquadrato di 360°. -

    Spesso si parla di campo inquadrato quando, in realtà, si intende un angolo inquadrato. Il campo inquadrato è la distanza coperta da una proiezione -a una certa distanza. Quindi, se un'immagine scattata a distanza di 1m mostra esattamente un oggetto di larghezza pari a 2m, il campo inquadrato è pari a 2 metri -(e l'angolo inquadrato è 90°). -L'angolo inquadrato è anche conosciuto con il nome di angolo di copertura. Da qui in poi si parlerà esclusivamente di campo inquadrato -(anche si dovrebbe distinguere dall'angolo inquadrato). -

    Il campo inquadrato è spesso indicato con FoV che è l'acronimo della traduzione inglese del termine (Field of View). -Generalmente il campo inquadrato si riferisce più precisamente al campo inquadrato orizzontale (hFoV) di una immagine. Alcune applicazioni fanno uso del -campo inquadrato verticale (vFoV) che può essere calcolato utilizzando il rapporto d'aspetto (aspect ratio) -dell'immagine: -

    per le immagini rettilineari: -

    rapporto d'aspetto = \frac{tan(\frac{hFoV}{2})}{tan (\frac{vFoV}{2})} -

    per le immagini fisheye (approssimazione): -

    rapporto d'aspetto = \frac{hFoV}{vFoV} -

    -

    Conversione dalla lunghezza focale

    -

    Una ulteriore misura standard della larghezza o strettezza di un obiettivo, è la lunghezza focale (focal lenght). -

    Assumendo di utilizzare un negativo avente una larghezza di 35mm e un obiettivo rettilineare, -il campo inquadrato può essere calcolato nel modo seguente: -

    FoV = 2 * atan \frac{35}{2 * Focal Length} -

    Consultare la pagina dedicata alla proiezione fisheye per le relative formule. -

    -

    Conversione tra orizzontale e verticale (e viceversa)

    -

    Per le immagini fisheye (approssimando) ed equirettangolari (height=altezza; width=larghezza): -

    vFoV = hFoV * \frac{height}{width}\ -

    hFoV = vFoV * \frac{width}{height}\ -

    Per le immagini rettilineari: -

    vFoV = 2 * atan( tan(\frac{hFoV}{2}) * \frac{height}{width}) -

    hFoV =  2 * atan( tan(\frac{vFoV}{2}) * \frac{width}{height}) -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Fisheye_Projection.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Fisheye_Projection.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Fisheye_Projection.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Fisheye_Projection.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,85 +0,0 @@ - - - - - - - - - - Proiezione fisheye - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Proiezione fisheye

    -
    - -
    - -
    Circular Fisheye projection, with permission from Ben Kreunen
    Proiezione fisheye circolare, - con il permesso di Ben Kreunen
    -
    Fullframe Fisheye projection, with permission from Ben Kreunen
    Proiezione fisheye full frame, con il permesso di -Ben Kreunen
    -

    È una classe di proiezioni per mappare una porzione della superficie della sfera in una immagine bidimensionale, -generalmente la pellicola di una fotocamera o un piano rilevatore. In una proiezione fisheye, la distanza dal centro dell'immagine a un punto è pressoché -proporzionale all'angolo reale di separazione. -

    Generalmente si distinguono due tipi di proiezioni fisheye: circolare e fullframe. Comunque, entrambe seguono le stesse regole geometriche di proiezione; -l'unica differenza risiede nel campo inquadrato: per quella circolare l'immagine circolare riempie (più o meno) -completamente l'immagine, lasciando delle aree vuote agli angoli. In quella fullframe, invece, l'immagine rappresenta una porzione di quella circolare, e quindi non rimangono -spazi vuoti sulla pellicola o sul sensore. Una proiezione fisheye circolare può essere fatta in fullframe utilizzando un sensore (o pellicola) di dimensioni più piccole -(e viceversa), o inserendo un adattatore fisheye a un obiettivo zoom. -

    Non esiste una singola proiezione fisheye, è meglio invece parlare di classe di proiezioni di trasformazione a cui riferirsi con il termine fisheye -utilizzate da vari costruttori di obiettivi e che hanno nomi quali proiezione ad angolo equisolido o fisheye equidistante. Meno comuni sono -le proiezioni sferiche tradizionali che mappano immagini circolari, come quelle ortografiche (obiettivi designati generalmente con la sigla OP) o -stereografiche. Fortunatamente, la maggior parte di queste proiezioni -possono essere manipolate in maniera semplice. La seguente spiegazione è tratta da un intervento di Helmut Dersch (per il collegamento all'originale vedere più sotto): -

    \theta\, è l'angolo tra un punto nel mondo reale e l'asse ottico, che va dal centro -dell'immagine al centro dell'obiettivo. -

    La lunghezza focale f di una comune lente fisheye corrisponde semplicemente a θ mentre la posizione radiale R di un punto -nell'immagine sulla pellicola o sul sensore vale: -

    -
    R = 2*f*sin\left(\frac{\theta}{2}\right)
    -
    -

    Così per 90°, che sarebbe il valore massimo di theta per un obiettivo con un campo inquadrato di 180°, -f=8mm, si ha R = 11,3mm, che è il raggio del cerchio d'immagine. -

    Questo modello di proiezione si applica al Nikon 8mm e al Sigma 8mm (che in realtà ha f=7,8mm). -Questo è ciò che accade quando si guarda uno specchio convesso. -

    Alcuni vecchi obiettivi Nikon (per esempio il 7,5mm) cerca di avvicinarsi a una mappatura lineare (theta in rad): -

    -
    R = f*\theta\,
    -
    -

    e quasi ci riesce. -

    Nella maggior parte delle applicazioni pratiche, non si riscontrerà una grande differenza tra i due. -

    Comunque, un obiettivo rettilineare ha la seguente mappatura: -

    -
    R=f*tan(\theta)\,
    -
    -

    Si può dire che la maggior parte degli obiettivi fisheye recenti, seguono il primo schema di mappatura. -

    Il testo completo dell'email è reperibile sul sito di W.J. Markerink relativo all'analisi del fisheye. -

    Ulteriori informazioni sui fisheye e sulle loro distorsioni, da Bob Atkins Photography -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Focal_Length.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Focal_Length.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Focal_Length.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Focal_Length.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ - - - - - - - - - - Lunghezza focale - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Lunghezza focale

    -
    - -
    - -
    Focal Length
    Lunghezza focale
    -

    Per gli scopi fotografici, la lunghezza focale rappresenta una proprietà fisica di un obiettivo (o specchio) rappresentata dalla distanza tra l'obiettivo e il punto in cui -i raggi di luce paralleli all'asse ottico, che passano attraverso lo stesso obiettivo, vengono focalizzati. Il punto esatto da cui viene misurata la lunghezza focale è il -punto nodale posteriore (la posizione della "pupilla di uscita"). Questo punto è situato al di fuori dell'obiettivo fisico -per i comuni obiettivi grandangolari montati su fotocamere reflex a lente singola (SLR=single lens reflex). -

    Per una definizione più completa consultare Wikipedia: w:Focal_length -

    In congiunzione con il formato della pellicola o del sensore, la lunghezza focale determina il campo inquadrato -dell'immagine che è decisamente più importante per la fotografia panoramica. -

    Se per i normali obiettivi rettilineari la lunghezza focale rimane costante in tutta l'immagine, -per gli obiettivi fisheye questo è vero solo per il centro dell'immagine. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Freepv.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Freepv.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Freepv.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Freepv.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - - - - Freepv - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Freepv

    -
    - -
    - -

    Freepv è un visualizzatore di panorami a codice aperto il cui sviluppo è ancora in uno stato embrionale; le caratteristiche già disponibili sono: -

    -
    • accelerazione hardware; -
    • supporto ai panorami in proiezione cubica e in proiezione cilindrica; -
    • supporto ai formati QTVR; -
    • Mozilla/Firefox plugin per Windows e Linux; -
    • visualizzatore indipendente (Windows, Unix/Linux e probabilmente compilabile anche su Mac OS X) -
    • movimenti inerziali simili a SPi-V -
    -

    Collegamenti

    - -

    Pagine di prova

    -

    Di seguito sono riportati dei panorami che dovrebbero funzionare con freepv: -

    -

    Buoni

    -
    • http://www.bruno.postle.net/photos/whinfell-quarry-garden/whinfell-redwoods-quicktime-panorama.mov -
    • http://geoimages.berkeley.edu/wwp606/fullscreen/PeterODonnell.html -
    • http://geoimages.berkeley.edu/wwp604/html/ShujiInoue.html -
    • http://geoimages.berkeley.edu/wwp1204/html/EricRougierAndCecileBrand.html -
    • http://geoimages.berkeley.edu/wwp905/html/KlausVoigt.html -
    • http://geoimages.berkeley.edu/wwp604/fullscreen/ShujiInoue.html -
    • http://www.bruno.postle.net/photos/whinfell-quarry-garden/whinfell-petals-quicktime-panorama.mov -
    • http://geoimages.berkeley.edu/wwp606/html/PeterODonnell.html -
    • http://geoimages.berkeley.edu/wwp305/html/ClaudioLanconelli.html -
    • http://www.bruno.postle.net/photos/hardwick-hall/hardwick-hall-quicktime-panorama.mov -
    • http://geoimages.berkeley.edu/wwp905/html/TroyWard.html -
    • http://geoimages.berkeley.edu/wwp905/html/KrzysztofWojciechowski.html -
    -

    Difficili

    -
    • http://www.aeiou.at/aeiou/panorama/p041/p041m.htm -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Freepv"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Fulla.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Fulla.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Fulla.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Fulla.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,129 +0,0 @@ - - - - - - - - - - Fulla - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Fulla

    -
    - -
    - -

    Fulla è uno strumento per linea di comando distribuito con hugin a partire dalla versione 0.6. - È utile per la correzione di gruppo di: -

    -
    aberrazione cromatica
    Vedere l'esempio riportato nella sezione dei -collegament esterni. -
    distorsione dell'obiettivo
    La distorsione a barilotto o a cuscinetto, può essere corretta utilizzando gli stessi -parametri a, b, c e d utilizzati da altri programmi basati sui Panorama Tools. -
    vignettatura
    Correzione polinomiale per divisione addizione o immagini appiattite. -Hugin è dotato di un calcolatore di vignettatura che utilizza una serie di fotografie che si sovrappongono per determinare -la funzione polinomiale più adatta alla correzione dei problemi di vignettatura. -
    -

    Fulla è in grado di elaborare le medesime tipologie di immagini di nona, compresi i TIFF - a 8 e 16 bit e i dati TIFF delle immagini HDR a 32 bit in virgola mobile. -

    - -

    Utilizzo da linea di comando

    -
     Utilizzo: fulla [opzioni] file di input
    -  le opzioni sono:
    -     -g a:b:c:d       coefficiente di distorsione radiale per tutti i canali (a, b, c, d)
    -     -b a:b:c:d       coefficienti di distorsione radiale per il canale blu (a, b, c, d);
    -                       sono applicati successivamente ai coefficienti di correzione della distorsione -g,
    -                       da utilizzare per la correzione della TCA
    -     -r a:b:c:d       coefficienti di distorsione radiale per il canale rosso, (a, b, c, d)
    -                       sono applicati successivamente ai coefficienti di correzione della distorsione -g,
    -                       da utilizzare per la correzione della TCA
    -     -p               cerca di leggere coefficienti di distorsione radiale per il canale verde
    -                        dal database di PTLens
    -     -m Canon         costruttore della fotocamera, per l'interrogazione del database di PTLens
    -     -n fotocamera     modello fotocamera, per l'interrogazione del database di PTLens
    -     -l obiettivo     nome dell'obiettivo, per l'interrogazione del database di PTLens;
    -                       se non specificato, è visualizzata una lista di possibili obiettivi
    -     -d 50            indica la lunghezza focale in mm, per l'interrogazione del database di PTLens
    -     -s               non ridimensionare l'immagine per evitare i bordi neri
    -     -f nomefile      correzione della vignettatura utilizzando la divisione del flatfield
    -                       I = I / c,    c = flatfield / media(flatfield)
    -     -c a:b:c:d       correzione radiale della vignettatura per divisione:
    -                       I = I / c,    c = a + b*r^2 + c*r^4 + d*r^6
    -     -a               correzione della vignettatura per addizione, invece che per divisione
    -                       I = I + c
    -     -i valore        valore della gamma per i dati in ingresso. Utilizzato per la correzione della gamma prima
    -                       e dopo la correzione flatfield
    -     -t n             Numero di processori da utilizzare durante il processo
    -     -h               Visualizza l'aiuto (questo testo)
    -     -o nome          imposta il nome del file di output. Se è fornita più di una immagine, il nome
    -                       verrà utilizzato come suffisso (suffisso predefinito: _corr)
    -     -v               prolisso
    -
    -

    Utilizzo per l'elaborazione in serie in ambiente Windows

    -

    Una volta che sono stati calcolati i parametri di fulla con il metodo descritto più sopra, si può creare un droplet per correggere in serie delle foto: -

    -
    • creare una scorciatoia al file fulla.exe trascinando l'icona di fulla in un'altra directory in Windows explorer; -
    • modificare le proprietà; -
    • modificare la destinazione in modo da comprendere i parametri di correzione: -
    -
     "C:\Programmi\hugin\fulla.exe" -r 0:0:0.00056:1.00015 -b 0:0:-0.00026:1.0011 -c 1:0.20:-0.51:0.2
    -
    -
    • assegnare un nome descrittivo alla scorciatoia; per esempio fulla-peleng -
    • ora è possibile correggere le fotografia semplicemente trascinandole e rilasciandole sull'icona appena creata. -
    -

    Un ulteriore sviluppo dell'esempio precedente, consiste nel creare un file "batch" nella directory di hugin chiamato "fulla.bat" e contenente la riga: -

    -
    FOR %%I IN (%1) DO C:\Programmi\hugin\fulla.exe -p -v -l Standard %%1
    -
    -

    Nell'ipotesi che il nome dell'obiettivo nel database di PTLens (vedere più sotto) sia "Standard" (com'è per la maggior parte). Ora, -è possibile richiamare questo file da qualsiasi directory contenente delle immagini utilizzando il comando: -"C:\Program Files\hugin\fulla.bat *.jpg". In questo modo fulla correggerà tutte le fotografie utilizzando i parametri recuperati dal database di PTLens descritto più sotto -(è importante non tralasciare di impostare la variabile PTLENS_PROFILE) -

    -

    Ricerca delle informazioni dal database di PTLens

    -

    fulla ricercherà le informazioni relative alla propria fotocamera nel database di PTLens e tenterà di determinare automaticamente i parametri di correzione dell'obiettivo per le proprie immagini. È richiesta una vecchia versione gratuita del database che può essere -scaricata da sourceforge (consultare la sezione sui collegamenti esterni). -

    Utilizzare la variabile di sistema PTLENS_PROFILE per specificare la posizione del database di PTLens, per esempio su Linux o OS X: -

    -
     PTLENS_PROFILE=$HOME/.ptlens/profile.txt
    -
    -

    Su Windows, il seguente comando dovrebbe funzionare per una installazione standard di PTLens: -

    -
     set PTLENS_PROFILE=%ProgramFiles%\PTLens\profile.txt
    -
    -

    altrimenti si inserisca il percorso corretto. -

    -

    Collegamenti esterni

    -
    • Correzione della TCA con hugin e fulla -
    • download del database di PTLens -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Fulla"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Gamma.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Gamma.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Gamma.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Gamma.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - - - - - - Gamma - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Gamma

    -
    - -
    - -


    -Con il termine gamma si intende la relazione intercorrente tra i valori di potenziale elettrico e luminosità visibile di un pixel su un supporto di uscita specifico. -

    Anche se per gli utilizzi comuni il valore di gamma controlla solamente la luminosità soggettiva del raggio medio dei pixel, esistono alcune -situazioni proprie di un processo di assemblatura fotografico, dove il parametro ha una forte influenza sul risultato: -

    -
    • i valori dei pixel sono interpolati quando si corregge la TCA (aberrazione cromatica -trasversale); -
    • l'intensità del pixel è scalata quando si corregge la vignettatura; -
    • i valori del pixel sono interpolati quando le foto vengono riproiettate nell'immagine finale; -
    • fusione utilizzando il feathering (creazione di frange), enblend o smartblend calcolano la media dei valori del pixel tra le immagini. -
    -

    In ognuna delle seguenti situazioni, può essere necessario lavorare con dei dati lineari (gamma = 1,0) o utilizzare degli strumenti -che operano internamente con dei dati di gamma corretti: -

    quando si utilizza fulla per correggere l'aberrazione cromatica e la vignettatura, assicurarsi di impostare il parametro --i al valore di gamma delle immagini in ingresso. -

    nona, PTStitcher e PTmender -accettano un parametro g (gamma) nella riga m; la maggior parte delle interfacce grafiche permettono di impostarlo. -

    enblend (inclusa la versione 3.0) sembra assumere che i dati in ingresso siano già corretti nella gamma, quindi, -se si stanno utilizzando dei dati lineari, sarà necessario cambiare il gamma assegnandogli il valore 2,2 prima di avviare enblend. -

    Consultare l'articolo di Helmut Dersch sull'interpolazione e sulla correzione di gamma. -

    Per maggiori dettagli consultare l'articolo di wikipedia "gamma correction" e la FAQ sul gamma. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Gamma"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/GIF.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/GIF.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/GIF.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/GIF.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ - - - - - - - - - - GIF - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    GIF

    -
    - -
    - -


    -GIF è l'acronimo del termine inglese "Graphics Interchange Format" (formato grafico di interscambio) ed è un formato d'immagine bitmap largamente utilizzato sul web -per i loghi, la grafica e semplici animazioni. Ci furono in passato dei problemi con i brevetti; maggiori informazioni sono reperibili su Wikipedia: w:GIF. -

    Il formato GIF non ha una grande utilità nella fotografia panoramica; è comunque utilizzato da PTViewer per visualizzare pulsanti e grafica dei punti hotspot -(anche animata). -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/GIF"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/HDR.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/HDR.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/HDR.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/HDR.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ - - - - - - - - - - HDR - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    HDR

    -
    - -
    - -

    HDR è l'acronimo del termine inglese "High Dynamic Range". La sigla è utilizzata per riferirsi -alla tecnica e alle immagini che sono in grado di catturare e di riprodurre delle scene con un elevato intervallo dinamico. -

    L'HDR è utilizzato più o meno accuratamente in diversi modi per ottenere maggiori dettagli nelle zone d'ombra e/o sovraesposte. Per comprendere come opera la -cosiddetta tecnica HDR, è importante distinguere tra due limitazioni che interessano l'intervallo dinamico nella fotografia e nelle immagini. La prima limitazione deriva -dall'acquisizione, per esempio la fotocamera; la seconda dalla visualizzazione, per esempio dallo schermo o dalla stampante. -

    -
    • Limitazioni della fotocamera: le fotocamere digitali più diffuse sono in grado di catturare al massimo un intervallo dinamico di 1.000:1, che è molto meno dell'intervallo dinamico della maggior parte delle scene esterne. Questa limitazione è -generalmente aggirata scattando diversi scatti della stessa scena con esposizioni diverse (questo è lo scopo della funzione "bracketing" o a forcella disponibile in molte fotocamere). -
    -
    • Limitazioni della visualizzazione: i monitor normali hanno un intervallo dinamico piuttosto basso, all'incirca di 100:1, che non è sufficiente a -visualizzare correttamente nemmeno i dati RAW catturati da una normale fotocamera. Questa limitazione è aggirata dal -tone mapping o da tecniche che fondono l'esposizione direttamente. La fusione dell'esposizione può essere -effettuata manualmente in Photoshop, semi manualmente con le azioni di Photoshop (vedere fusione del contrasto e fusione e la guida HDR per principianti di Jook Leung) o -automaticamente utilizzando programmi appositi (consultare Photomatix, FDRTools o pfstools - comparazione della compressione HDR). -
    -

    Le limitazioni di fotocamera e visualizzazione possono essere entrambe aggirate utilizzando equipaggiamenti specializzati come la fotocamera SpheroCam HDR e -gli schermi Brightside HDR. Comunque queste attrezzature sono molto costose. -

    Le immagini HDR sono immagazzinate in un formato a elevata profondità di bit e/o in un formato a virgola mobile. Esistono diversi formati HDR, i più diffusi dei -quali sono: -

    -
    • .hdr Radiance RGBE -
    • .tif Floating point TIFF -
    • .pfm Portable floatmap -
    • .float Raw binary floating point -
    • .exr OpenEXR EXR -
    -

    L'interfaccia hugin dei panorama tools supporta l'assemblatura sia dei TIFF a virgola mobile, -sia delle immagini Radiance RGBE HDR; consultare il processo di elaborazione HDR con hugin per maggiori dettagli. Anche lo strumento enblend supporta -la fusione di dati TIFF HDR in virgola mobile, ma non ancora quelli RGBE. -

    Altre informazioni sull'HDR sono reperibili su Wikipedia: w:High dynamic range imaging and the HDR Image FAQ. -

    Consultare anche, la panoramica sui programmi HDR -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/HDR"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/HDR_workflow_with_hugin.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/HDR_workflow_with_hugin.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/HDR_workflow_with_hugin.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/HDR_workflow_with_hugin.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,191 +0,0 @@ - - - - - - - - - - Processo di lavoro in hugin per le immagini HDR - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Processo di lavoro in hugin per le immagini HDR

    -
    - -
    - -

    In questo esempio non verrà discusso il motivo per cui si vogliano assemblare delle immagini nel formato HDR; -si illustrerà invece una semplice spiegazione pratica che elenca gli strumenti disponibili e ne descrive l'utilizzo con hugin. -

    NB questa guida è piuttosto datata, hugin ora supporta l'assemblatura di immagini HDR -internamente. -

    Lavorare con le immagini HDR è un processo piuttosto complesso. Se si desidera solamente ottenere un risultato di qualità -maggiore rispetto alla classica fotografia a 8bit, allora è meglio dare un'occhiata al processo di lavoro a 16 bit con hugin. -

    Ancora qui? Esistono fondamentalmente due metodi per creare un panorama HDR: -

    -
    • unire diversi panorami della stessa scena, ognuna con un'esposizione differente, e unirli per formare un unico file HDR; -
    -
    • creare una serie di scatti HDR della scene e poi unirli. -
    -

    Ciascuna di queste tecniche presenta sia vantaggi che svantaggi: la prima è più semplice e l'ultimo passaggio in HDR può essere -saltato e sostituito da un processo di fusione del contrasto; per contro è elevato il rischio di disallineamento delle immagini con conseguente creazione di ghosting. -La seconda tecnica è invece descritta di seguito dato che coinvolge un elevato numero di strumenti. -

    - -

    Tecnica semplice e veloce

    -

    Il resto di questa guida descrive come generare immagini finali di elevata qualità utilizzando degli strumenti da linea di comando. Comunque è ora possibile -portare a termine l'intero processo utilizzando degli strumenti a interfaccia grafica. Il processo comprende queste fasi: -

    -
    1. cattura di scatti della scena con esposizione a forcella; -
    2. unione degli scatti a forcella in HDR utilizzando qtpfsgui; scegliere il formato di output del tipo RBGE radiance .hdr o -32bit floating-point TIFF; -
    3. assemblare il panorama con hugin e enblend; -
    4. eventualmente, eseguire il tonemap del risultato con qtpfsgui. -
    -

    Tecnica complessa e laboriosa

    -

    Preparare le immagini HDR

    -

    A meno che non si possegga una costosa fotocamera HDR, ci si ritroverà a dover unire degli scatti a -forcella per creare delle immagini HDR. Sfortunatamente questo comporta anche la limitazione di poter riprendere -esclusivamente scene statiche e paesaggi. -

    -

    Scattare a forcella

    -

    Il numero di scatti necessari dipende dall'intervallo dinamico della scena che si desidera catturare -e dalle capacità della propria fotocamera. -

    La maggior parte delle fotocamere è fornita di una modalità di bracketing automatico che permette di catturare tre o cinque scatti separati ognuno da due -stop, premendo solo una volta il pulsante di scatto. Spesso questo è sufficiente, anche se una tipica scena esterna può presentare un -intervallo dinamico di diciotto stop che richiederebbero otto scatti separati ognuno da due stop. -

    A prescindere dal metodo scelto, dovrebbe apparire ovvia la necessità di utilizzare un buon cavalletto per mantenere immobile la fotocamera. -

    -

    Correggere l'aberrazione cromatica

    -

    Questo è il momento adatto per correggere l'aberrazione cromatica e la -vignettatura con fulla utilizzando i dati calibrati in precedenza per il proprio -obiettivo; eseguire questa operazione in seguito non dà i risultati sperati. -

    -

    Unire gli scatti a forcella con PFScalibration

    -

    Esistono altri strumenti che permettono di unire le immagini scattate a forcella, ma PFScalibration è gratuito ed esegue comunque il lavoro. -

    I passi descritti nel seguito per assemblare le immagini in HDR possono anche essere eseguiti con lo strumento a -interfaccia grafica qtpfsgui. -

    -

    Calibrare la curva di risposta della fotocamera

    -

    In genere, quando una fotocamera digitale crea dei file JPEG o TIFF, prende un'immagine con -intervallo dinamico pari a 12 bit per canale, catturata dal CCD, e la comprime, utilizzando una -curva di risposta della fotocamera, in un file di output a 8 bit. -

    Quindi i file JPEG e TIFF devono essere riportati allo stato originale -attraverso l'utilizzo di una curva di risposta della fotocamera calibrata, in modo che possano -essere mappate nello spazio lineare dell'immagine HDR a virgola mobile. -

    Se si sta lavorando con delle immagini in formato RAW, la risposta della fotocamera è, in questo caso, generalmente lineare -e quindi non è necessaria alcuna calibrazione: questo passo può essere saltato. -

    Un metodo rapido per dedurre la curva di risposta per un utilizzo futuro consiste nel scattare cinque immagini a forcella in formato JPEG, leggermente fuori fuoco e distanziate di uno stop (per esempio con 2, 1, 0,5, 0,25 e 0,125 secondi di esposizione). -Estrarre i tempi di esposizione dai dati EXIF: -

    -
     jpeg2hdrgen *.jpg > mycamera.hdrgen
    -
    -

    Estrarre poi la curva di risposta, confrontando le fotografie, e salvarla: -

    -
     pfsinhdrgen mycamera.hdrgen | pfshdrcalibrate -v -g 6 -s mycamera.response
    -
    -

    Allineare gli scatti

    -

    Se le immagini sono state scattate "a mano", sarà necessario allineare la pila di foto -utilizzando hugin. -

    In alternativa lo strumento hdrprep può essere utilizzato per automatizzare il processo e risparmiare molto tempo. -

    -

    Unire le immagini a forcella nel formato Radiance RGBE .hdr -

    -

    Creare un file hdrgen ce elenca ognuna delle immagini scattate a forcella con il relativo tempo di esposizione. Come base si può utilizzare il file -mycamera.hdrgen creato precedentemente. -

    Utilizzare poi questo file e il file della curva di risposta per creare un file RGBE: -

    -
     pfsinhdrgen mypicture.hdrgen | pfshdrcalibrate -v -f mycamera.response | pfsoutrgbe mypicture.hdr
    -
    -

    Controllare l'output con pfsview: -

    -
     pfsinrgbe mypicture.hdr | pfsview
    -
    -

    Assemblare con hugin

    -

    Le immagini in formato RGBE possono essere caricate in hugin come al solito -con un paio di avvertimenti: -

    -
    • le immagini possono apparire molto scure dato che rappresentano dei dati lineari del sensore. La visualizzazione delle immagini HDR può essere configurata -nelle preferenze di hugin; -
    -
    • le informazioni riguardanti il campo inquadrato sono state perse, quindi dovranno essere reinserite -manualmente o ri-ottimizzate. -
    -

    Assemblare le immagini come al solito in un file TIFF; è possibile utilizzare enblend -come passo finale. -

    -

    Post processing

    -

    Questo file TIFF è in formato IEEE in virgola mobile e con 32 bit per canale. Esso risulta impossibile da visualizzare nella sua -completezza su un comune monitor, quindi probabilmente si desidera creare un'immagine finale a 8 bit per canale. -

    Generalmente le immagini HDR panoramiche sono utilizzate come "lightprobe" per i rendering tridimensionali; in questo caso -l'elaborazione è terminata. -

    -

    Correggere in uno strumento a interfaccia grafica

    -

    Esistono diversi editor di immagini in grado di aprire questo file: cinepaint, krita, vips e HDRIE. Le possibilità variano per ognuno, quindi è necessario sperimentarli -personalmente. -

    In alternativa, si può utilizzare pfstools per manipolare le immagini: pfstools è in grado di leggere i file -HDR e TIFF. -

    Un'immagine HDR può essere visualizzata utilizzando pfstools con il comando: -

    -
     pfsintiff stitch.tif | pfsview
    -
    -

    Un metodo rapido per ottenere una buona immagine visualizzabile a 8 bit per canale, consiste nel selezionare il logarithmic mapping, correggere la barra -dell'esposizione fino a ottenere un buon intervallo di ombre e punti più luminosi, ingrandire nel rapporto 1:1 e salvare come PNG. -

    -

    Tone mapping

    -

    L'operazione di tone mapping utilizza la compressione HDR per comprimere le immagini a elevato -intervallo dinamico. -

    Gli operatori locali di tone mapping producono degli artefatti nelle aree circostanti lo zenith e il -nadir nelle immagini equirettangolari. Si consiglia quindi di scegliere -un operatore di tone mapping globale o di ritoccare in seguito i poli. -

    Un pacchetto legato a pfstools, denominato pfstmo, può eseguire automaticamente il tone mapping -di una immagine HDR e comprimerla in un output a basso intervallo dinamico. -Sono disponibili varie opzioni e tecniche; i comandi sono di questo tipo: -

    -
     pfsinrgbe stitch.hdr | pfstmo_drago03 | pfsgamma -g 2.2 | pfsout stitch.png
    -
    -

    qtpfsgui è un'interfaccia grafica gratuita per i pfstools e permette di eseguire interattivamente il tone mapping. -

    Anche Photomatix è in grado di eseguire il tone mapping. -

    -
    - - -
    Questo articolo è datato. È possibile contribuire ad ampliarlo su Panotools Wiki. -
    -

    -Quando l'articolo sarà aggiornato, rimuovere il modello {{Outdated}} -

    -

    -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Horizontal_control_points.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Horizontal_control_points.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Horizontal_control_points.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Horizontal_control_points.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ - - - - - - - - - - Punti di controllo orizzontali - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Punti di controllo orizzontali

    -
    - -
    - -


    -L'ottimizzatore dei panorama tools, è in grado di elaborare differenti schemi per allineare le foto utilizzando i -punti di controllo: -i punti normali sono del tipo t0, i punti di controllo orizzontali sono t1 e -quelli verticali sono del tipo t2. -

    L'utilizzo principale dei punti di controllo orizzontali, è quello di cambiare la prospettiva del panorama in modo che le strutture marcate come tali -risultino orizzontali nella proiezione finale. In un panorama formato da più immagini, questo è possibile solamente se -l'ottimizzazione di rollio e -inclinazione è effettuata per tutte le immagini e lo è anche l'imbardata tranne che per -l'immagine bloccata. -

    È importante identificare i punti di controllo orizzontali il più lontano possibile fra loro. Si ponga comunque attenzione a non impostarli a una distanza -angolare pari a 180° in un panorama in proiezione cilindrica o equirettangolare, dato che in questa eventualità l'orizzonte non sarà -livellato. -

    Si ricorda anche che tutte le linee orizzontali nel mondo reale rimangono tali solamente nelle proiezioni rettilineari. In quelle cilindriche, equirettangolari e fisheye rimane orizzontale solamente l'orizzonte. -

    Maggiori dettagli sulla correzione della prospettiva e nell'aiuto dei Panotools. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Assistant_tab.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Assistant_tab.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Assistant_tab.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Assistant_tab.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ - - - - - - - - - - Linguetta dell'assistente di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Linguetta dell'assistente di hugin

    -
    - -
    - -

    L'assistente di hugin automatizza pressoché ogni passaggio necessario alla creazione di un panorama; - è sufficiente seguire questi tre passi: -

    -

    1. Carica immagini...

    -

    Premere il pulsante carica immagini... per selezionare le foto da utilizzare per creare il panorama. -Questa procedura tenterà di identificare il HFOV (horizontal field of view = campo inquadrato orizzontale) associato alle foto, -controllando le informazioni salvate dalla fotocamera. Se questi dati non vengono trovati, verrà richiesto di inserirli manualmente, -oppure è possibile lasciarli calcolare a hugin in base alla -lunghezza focale e al valore del -moltiplicatore della lunghezza focale. -

    Se non si è sicuri sul tipo di lente -si accetti il valore di default: Normale (rettilineare). -

    -

    2. Allinea...

    -

    Premere il pulsante Allinea... per avvalersi di uno strumento automatico quale autopano-sift per -collegare le immagini e utilizzare poi l'ottimizzatore interno di hugin per allinearle, correggerne l'esposizione e il -bilanciamento del bianco. Il risultato apparirà nella finestra di anteprima di hugin; -se l'anteprima risulta soddisfacente, si può proseguire premendo il pulsante Crea panorama.... Diversamente, sarà necessario effettuare dei cambiamenti -al progetto utilizzando le linguette presenti nella finestra principale di hugin. -

    -

    3. Crea panorama...

    -

    Infine, utilizzare il pulsante Crea panorama... per assemblare il panorama in un file immagine con le impostazioni di qualità -predefinite. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Batch_Processor.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Batch_Processor.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Batch_Processor.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Batch_Processor.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,97 +0,0 @@ - - - - - - - Elaboratore in serie di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Elaboratore in serie di hugin

    -
    - -
    - -

    L'assemblatore in serie (batch stitcher) è un componente di hugin che ha la capacità di assemblare più progetti in -in una serie messa in coda. Il suo scopo è quello di rendere più veloce il processo di assemblatura di più progetti. Il processo di assemblatura di più progetti -è semplificato utilizzando una coda dei progetti; l'utente è in grado di aggiungere, modificare o eliminare i progetti dalla coda.

    -

    L'assemblatore in serie di hugin consiste di un elenco di progetti ordinati sequenzialmente. Di default, l'elenco è ripristinato ogni volta che il programma -viene aperto. L'intera coda di progetti può essere salvata e riaperta in seguito utilizzando i pulsanti «pulisci serie», -«apri serie», «salva serie».

    -

    Opzioni

    -

    Il processo di elaborazione in serie è anche influenzato dalle seguenti opzioni: -

    -
      -
    • elaborazione in parallelo: assembla i progetti nell'elenco in ordine parallelo anziché sequenziale. Abilitare questa opzione solo se si è certi che il proprio -computer è in grado di elaborare più panorami contemporaneamente.
    • -
    • cancella i file .pto: al termine dell'assemblatura di ciascun progetto, l'assemblatore in serie cancellerà il file di progetto del panorama appena -assemblato. Si ponga attenzione dato che i file cancellati sono persi!
    • -
    • sovrascrivi sempre: sovrascrive sempre (per ogni progetto) il nome del file di output se questo esiste. Diversamente, verrà visualizzata una finestra di dialogo -in cui verrà richiesta l'autorizzazione al processo di sovrascrittura.
    • -
    • Spegni il computer alla fine: spegne il computer al termine del processo di elaborazione in serie (quando la coda è esaurita).
    • -
    -

    Pulsanti

    -

    Image:Hugin_clear_batch.png -Pulisci serie

    -

    Rimuove tutti i progetti dalla lista. -

    -

    Image:Hugin_open_batch.png -Apri serie

    -

    Apre un file della serie con una lista di progetti salvato in precedenza. -

    -

    Image:Hugin_save_batch.png -Salva serie

    -

    Salva la lista corrente di progetti in un file che può essere aperto successivamente utilizzando il pulsante «Apri serie». -

    -

    Image:Hugin_start_batch.png -Avvia

    -

    Avvia il processo in serie e assembla tutti i progetti in coda. -

    -

    Image:Hugin_skip_batch.png -Salta

    -

    Interrompe l'elaborazione del progetto corrente e avvia quello successivo nella coda del processo di assemblatura in serie. Questo pulsante è inattivo quando -il processo in serie non è in fase di elaborazione. -

    -

    Image:Hugin_pause_batch.png -Pausa

    -

    Pausa il processo in serie corrente. Per poter proseguire l'elaborazione, premere il pulsante Avvia. Questo pulsante è inattivo quando -il processo in serie non è in fase di elaborazione. -

    -

    Image:Hugin_cancel_batch.png -Annulla

    -

    Ferma l'elaborazione. Questo pulsante è attivo solamente quando il processo in serie è in elaborazione. -

    -

    Image:Hugin_add_project.png -Aggiungi progetto

    -

    Aggiunge un progetto alla lista. Verrà visualizzato un file browser tramite il quale sarà possibile selezionare uno (o più) file di estensione .pto o .pts. -

    -

    Image:Hugin_remove_project.png -Rimuovi progetto

    -

    Rimuove il progetto selezionato dalla lista. -

    -

    Image:Hugin_folder_search.png -Ricerca cartella

    -

    Esamina ricorsivamente la cartella specificata alla ricerca di file di progetto e li aggiunge automaticamente all'elenco. -

    - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Batch_Stitcher.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Batch_Stitcher.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Batch_Stitcher.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Batch_Stitcher.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,105 +0,0 @@ - - - - - - - Assemblatore in serie di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Assemblatore in serie di hugin

    -
    - -
    - -

    L'assemblatore in serie (batch stitcher) è un componente di hugin che ha la capacità di assemblare più progetti in -in una serie messa in coda. Il suo scopo è quello di rendere più veloce il processo di assemblatura di più progetti (*, in più l'assemblatore -in serie, è in grado di riconoscere automaticamente i panorami). Il processo di assemblatura di più progetti è semplificato utilizzando una coda dei -progetti; l'utente è in grado di aggiungere, modificare o eliminare i progetti dalla coda.

    -

    * non ancora implementato

    -

    L'assemblatore in serie di hugin consiste di un elenco di progetti ordinati sequenzialmente. Di default, l'elenco è ripristinato ogni volta che il programma - viene aperto. L'intera coda di progetti può essere salvata e riaperta in seguito utilizzando i pulsanti pulisci serie, - apri serie, salva serie.

    -

    -

    Opzioni

    -

    Il processo di elaborazione in serie è anche influenzato dalle seguenti opzioni: -

    -
      -
    • elaborazione in parallelo: assembla i progetti nell'elenco in ordine parallelo anziché sequenziale. Abilitare questa opzione solo se si è certi che il proprio -computer è in grado di elaborare più panorami contemporaneamente.
    • -
    • cancella i file .pto: al termine dell'assemblatura di ciascun progetto, l'assemblatore in serie cancellerà il file di progetto del panorama appena -assemblato. Si ponga attenzione dato che i file cancellati sono persi!
    • -
    • sovrascrivi sempre: sovrascrive sempre (per ogni progetto) il nome del file di output se questo esiste. Diversamente, verrà visualizzata una finestra di dialogo -in cui verrà richiesta l'autorizzazione al processo di sovrascrittura.
    • -
    • Spegni il computer alla fine: spegne il computer al termine del processo di elaborazione in serie (quando la coda è esaurita).
    • -
    -

    -

    Pulsanti

    -

    -

    Start Pulisci serie

    -

    Rimuove tutti i progetti dall'elenco.

    -

    -

    Start Apri serie

    -

    Apre il file di una serie contenente un elenco di progetti salvato in precedenze.

    -

    -

    Start Salva serie

    -

    Salva in un file l'elenco corrente di progetti. Questo può essere in seguito riaperto utilizzando il pulsante Apri serie

    - -

    Start Avvia

    -

    Avvia il processo in serie e assembla tutti i progetti in coda.

    - -

    Start Salta

    -

    Interrompe l'elaborazione del progetto corrente e avvia quello successivo nella coda del processo di assemblatura in serie. Questo pulsante è inattivo quando -il processo in serie non è in fase di elaborazione.

    - -

    Start Pausa

    -

    Pausa il processo in serie corrente. Per poter proseguire l'elaborazione, premere il pulsante Avvia. Questo pulsante è inattivo quando -il processo in serie non è in fase di elaborazione.

    - -

    Start Annulla

    -

    Ferma l'elaborazione. Questo pulsante è attivo solamente quando il processo in serie è in elaborazione.

    -

    -

    Start Aggiungi progetto

    -

    Aggiunge un progetto all'elenco. Verrà visualizzato un file browser tramite il quale sarà possibile selezionare uno (* o più) file di estensione .pto o .pts.

    -

    Start Rimuovi progetto

    -

    Rimuove il progetto selezionato dalla lista.

    -

    -

    Start Ricerca cartella

    -

    Esamina ricorsivamente la cartella specificata alla ricerca di file di progetto e li aggiunge automaticamente all'elenco.

    - -

    Scorciatoie da tastiera

    -

    Di seguito è presentato un elenco delle scorciatoie da tastiera disponibili nella linguetta dei punti di controllo: -

    Funzioni dei tasti -

    -
      -
    • a aggiunge un nuovo punto che è stato selezionato in entrambe le immagini quando l'opzione aggiunta automatica è disabilitata. -
    • tasti frecce sposta l'immagine su cui è posizionato il cursore del mouse. -
    • shift + tasti frecce sposta entrambe le immagini contemporaneamente. -
    • f regolazione precisa della coppia di punti di controllo selezionata. Identico al pulsante regolazione precisa. -
    • g algoritmo sperimentale di generazione dei punti di controllo. -
    • Del rimuove i punti di controllo selezionati. -
    • 0 visualizzazione adattata. -
    • 1 visualizzazione al 100%. -
    - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Camera_and_Lens_tab.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Camera_and_Lens_tab.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Camera_and_Lens_tab.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Camera_and_Lens_tab.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,171 +0,0 @@ - - - - - - - - - - Linguetta della fotocamera e obiettivo di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Linguetta della fotocamera e obiettivo di hugin

    -
    - -
    - -

    La linguetta della fotocamera e obiettivo è molto simile alla - linguetta delle immagini di hugin, a eccezione - del fatto che qui possono essere modificati i parametri degli obiettivi. -Come nella linguetta delle immagini, si possono fare selezioni multiple per cambiare i parametri associati a più di una immagine contemporaneamente. -

    I Panorama Tools e hugin permettono di utilizzare, all'interno dello stesso progetto, -delle foto scattate con diversi obiettivi e con diverse impostazioni. -A ogni immagine è associato un numero di obiettivo; -tutte le immagini che hanno lo stesso numero di obiettivo sono associate allo stesso tipo di lente e possono condividere gli stessi parametri. -

    I pulsanti carica obiettivo... e salva obiettivo... consentono di salvare i propri profili calibrati per ogni obiettivo. -Una volta ottenuta una serie di parametri per l'obiettivo attraverso la calibrazione, questi non dovrebbero variare di molto nei progetti futuri. -Il vantaggio di questa possibilità risiede nel fatto che se possibile è restringere il processo alla sola ottimizzazione delle posizioni delle immagini nella -linguetta dell'ottimizzatore di hugin, -saranno necessari solamente due o tre paia di punti di controllo per coppia di -immagini per completare con successo l'operazione. -

    Carica EXIF esamin1 il file di immagine selezionato e cerca di determinarne i gradi di vista -leggendo i dati EXIF in essa contenuti; questo è possibile solamente per le immagini in formato -JPEG. La stessa operazione è eseguita non appena vengono aggiunte le foto al progetto e quindi questo pulsante deve -essere premuto solamente per riportare al valore iniziale il campo dei gradi di vista se è stato in qualche modo modificato. -

    Di default, a ogni foto presente in un progetto, viene assegnato il numero di lente 0. Se sono presenti, in un progetto, delle foto scattate con -diverse fotocamere, con diversi obiettivi o con impostazioni variabili della lunghezza focale, allora si renderà necessario assegnare un nuovo obiettivo -a queste immagini premendo il pulsante nuovo obiettivo. -È possibile assegnare un numero di obiettivo ad altre immagini selezionandole e premendo il pulsante cambia obiettivo.... -

    -

    Geometrico

    -

    Il modello di correzione dell'obiettivo fornito dai Panorama Tools -considera un numero sufficiente di parametri per poter analizzare la maggior parte delle immagini fotografiche; questi parametri possono anche -essere impostati manualmente proprio dalla linguetta della fotocamera e obiettivo di hugin o calcolati automaticamente nella -linguetta dell'ottimizzatore di hugin. -

    -

    Obiettivo

    -

    I parametri più rilevanti sono il tipo di lente e i gradi di vista orizzontali. -hugin supporta le seguenti proiezioni per le immagini in ingresso: -

    -
    • Normale (rettilinea): è la proiezione utilizzata dalla gran parte delle -fotocamere; ha il pregio di mantenere le linee rette come tali. I gradi massimi di vista orizzontale sono 180° (per un'immagine di larghezza infinita, a rigore). -
    • Panoramica (cilindrica): è una proiezione utilizzata dalle fotocamere panoramiche quali le Horizon, Roundshot e Spheron. -Questa proiezione prende anche il nome di Proiezione cilindrica. -
    • Grandangolo (circolare): questa proiezione è ottenuta utilizzando gli obiettivi fisheye. -Se l'immagine è circolare, o i bordi dell'immagine sono neri, è possibile utilizzare comunque questa tipologia di foto una forma di ritaglio circolare -disponibile nella linguetta di ritaglio di hugin permetterà di escludere i bordi dell'immagine. -
    • Grandangolo (full frame): è la stessa proiezione descritta al punto precedente, ma il ritaglio, in questo caso, sarà di forma rettangolare -invece di circolare. Questa scelta dovrebbe essere utilizzata per le foto scattate con un obiettivo grandangolare montato su una fotocamera full-frame. -
    • Equirettangolare: un'immagine in proiezione equirettangolare -completamente sferica. Normalmente questa tipologia di immagini sono il risultato di un processo di assemblatura, ma, a volte, risulta utile avere -la possibilità di ricaricare un panorama completato per poterlo rielaborare ed estrarne altre immagini. -
    -

    Dopo che è stato specificato il tipo di obiettivo, è necessario inserire un valore approssimato per i -gradi di vista orizzontali (HFOV). -Il HFOV indica l'angolo di apertura sul piano orizzontale dell'immagine catturata. -Dato che la maggior parte dei fotografi ha una maggiore confidenza con la lunghezza focale -come parametro di misura del HFOV, hugin permette di inserire questo valore e si occuperà poi autonomamente di calcolare il valore a esso associato del HFOV. -Per questo calcolo sono necessari la lunghezza focale dell'obiettivo e il -fattore di ritaglio (crop factor) della fotocamera. -Se è nota la lunghezza focale equivalente nel formato 35mm, deve essere inserito un fattore di ritaglio pari a 1. -

    Per le foto in formato JPEG, hugin è generalmente in grado di calcolare il HFOV sulla base dei dati -EXIF associati al file di immagine. -

    -

    Distorsione radiale, spostamento centrale dell'immagine -e deformazione dell'immagine

    -

    Normalmente gli obiettivi non proiettano le immagini esattamente nel modo selezionato, ma soffrono problemi di distorsione. -Nella maggior parte dei casi, le distorsioni, sono accettabili per le foto prese singolarmente, mentre devono essere corrette quando si intende assemblare un panorama. -I parametri a, b e c permettono di correggere le distorsioni; essi vengono applicati in modo radiale a partire dal centro dell'immagine -che può essere cambiato agendo sui parametri d ed e. -I parametri a, b, c, d ed e appena descritti, rappresentano la del -modello di correzione dell'obiettiv fornito dai Panotools. -

    Anche le immagini scansionate possono essere affette da deformazione. Questa può essere corretta utilizzando i parametri g e t. -

    I parametri di distorsione variano generalmente in funzione della lunghezza focale e, in minor modo, con la messa a fuoco. -La casella del collegamento indica se un parametro è collegato o no; un parametro collegato è identico per tutte le immagini a cui è associato lo stesso numero di -obiettivo. Questa impostazione è attivata di default per l'HFOV e per i parametri di distorsione. -Se un parametro non è collegato allora per ogni immagine è consentito avere dei valori specifici per ogni parametro. -Questa possibilità è utile se, per alcune immagini, sono stati utilizzate differenti impostazioni di lunghezza focale e messa a fuoco. -Se si sta lavorando con immagini scansionate, queste non saranno probabilmente centrate perfettamente, e quindi ogni immagini dovrebbe avere -dei parametri d ed e specifici. -

    -

    Fotometrico

    -

    Hugin modella i parametri fotometrici di un sistema fotocamera-obiettivo in un modo simile a a quello del - modello di correzione dell'obiettivo per quanto riguarda i parametri geometrici. -Questi valori possono essere impostati manualmente direttamente in questa sezione della linguetta della fotocamera e obiettivo o lasciati calcolare automaticamente -da hugin nella linguetta dell'esposizione. -

    -

    Esposizione e colore

    -

    Esposizione (EV): EV significa valore dell'esposizione (Exposure Value); impostando il valore a 0 (zero) si indicherà a -hugin di non effettuare alcuna modifica del valore dell'esposizione della foto. -

    EV è una scala fotografica standard; ogni aumento o diminuzione di una unità andrà a incidere sull'esposizione di una quantità equivalente a un -f-stop (per esempio dimezzando o raddoppiando l'esposizione). -

    Capita spesso che le foto di uno stesso progetto, anche nel caso abbiano lo stesso numero di obiettivo, necessitino di valori differenti per -l'esposizione. Questo può essere causato dall'aver scattato le foto con diverse velocità dell'otturatore o, più semplicemente, è cambiata l'illuminazione -tra uno scatto e l'altro. Se ci si trova in quest'ultima situazione, occorre disabilitare l'opzione collegamento in questa finestra prima di ottimizzare -l'esposizione nella linguetta dell'esposizione di hugin. -

    Il moltiplicatore rosso e il moltiplicatore blu permettono di prendere in considerazione i cambiamenti nel bilanciamento del bianco -(noto anche come bilanciamento del colore o temperatura del colore) tra due foto. Impostandone entrambi i valori a 1 non verranno applicati -dei cambiamenti al bilanciamento del bianco (i valori sono relativi al canale verde che rimane inalterato). -

    Come per l'esposizione, le foto in uno stesso progetto necessitano spesso differenti bilanciamenti del bianco. -Questo è fenomeno è causato generalmente dalla variazione delle condizioni di illuminazione tra gli scatti; per esempio una scena in presenza di nuvole conterà -sensibilmente meno luce rossa della stessa scena ripresa con luce solare diretta. Quindi si consiglia di disabilitare l'opzione di collegamento da questa -finestra prima di ottimizzare il bilanciamento del bianco nella linguetta dell'esposizione di hugin. -

    -

    Vignettatura

    -

    Il fenomeno della vignettatura dipende principalmente dall'obiettivo e dal valore di apertura utilizzato -per lo scatto. Generalmente il centro dell'immagine è più luminoso, mentre la luminosità diminuisce spostandosi verso i bordi. I tre numeri riportati in questa finestra, -individuano una curva polinomiale che hugin utilizza per correggere la vignettatura. -

    Questi valori non devono essere inseriti dall'utente, ma sono caricati in funzione del profilo dell'obiettivo o calcolati a partire da due o più foto che si -sovrappongono nella linguetta dell'esposizione di hugin. -

    Impostare i valori a 0,0,0 per non effettuare alcuna correzione alla vignettatura. -

    Normalmente tutte le foto scattate con lo stesso obiettivo avranno la stessa vignettatura; si consiglia quindi di mantenere attivata l'opzione di -collegamento per essere sicuri che hugin applicherà la stessa correzione per la vignettatura a tutte le foto con il numero di obiettivo selezionato. -

    -

    Spostamento centrale vignettatura

    -

    Il centro di vignettatura è raramente il centro esatto della foto. I due numeri in questa sezione individuano -la posizione del centro di vignettatura; la distanza è in pixel, mentre 0,0 indica il centro della foto. Questi valori sono indipendenti dai parametri d -& e che specificano invece l'origine della proiezione e della distorsione geometrica. -

    Come anche altri parametri dell'obiettivo, lo spostamento centrale della vignettatura può essere ottimizzato nella -linguetta dell'esposizione di hugin. Mantenere attivata l'opzione di collegamento, -garantisce che hugin applicherà lo stesso centro di vignettatura a tutte le foto che hanno lo stesso numero di obiettivo -di quella selezionata. -

    -

    Risposta fotocamera

    -

    La curva di risposta della fotocamera permette sia di mappare l'immagine in uno spazio colore -lineare quando si crea un'immagine HDR, sia di normalizzare lo spazio colore per la vignettatura, luminosità e la correzione del colore -interni quando si intende ottenere una "normale" immagine LDR. -

    Hugin utilizza il modello di risposta EMoR del laboratorio di visione computerizzata della Columbia University il quale -parametrizza la curva di risposta con cinque coefficienti numerici. Questi valori non devono essere immessi dall'utente, ma sono normalmente caricati in funzione del -profilo dell'obiettivo o calcolati a partire da due o più foto che si -sovrappongono nella linguetta dell'esposizione di hugin. -

    Impostare i coefficienti a 0,0,0,0,0 per utilizzare una curva di risposta generica o cambiare il tipo a -lineare per assumere che le foto hanno una curva riferita alla scena o una risposta HDR. -

    Mantenere attivata l'opzione di collegamento, -garantisce che hugin applicherà la stessa curva di risposta a tutte le foto che hanno lo stesso numero di obiettivo -di quella selezionata. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Control_Points_tab.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Control_Points_tab.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Control_Points_tab.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Control_Points_tab.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,149 +0,0 @@ - - - - - - - - - - Linguetta dei punti di controllo di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Linguetta dei punti di controllo di hugin

    -
    - -
    - -

    I punti di controllo sono essenziali per i Panorama Tools e per - hugin, poiché sono utilizzati per stimare la posizione reciproca delle immagini e i parametri dell'obiettivo - descritti in precedenza. -Un punto di controllo specifica una corrispondenza tra due immagini. Utilizzando le coppie di punti corrispondenti, la -linguetta dell'ottimizzatore di hugin è in grado di stimare la posizione dell'immagine e i -parametri dell'obiettivo. -È quindi essenziale che i punti di controllo siano accurati e che ne vengano individuati almeno 3 ben distribuiti per poter -correttamente determinare la posizione dell'immagine (imbardata, rollio -inclinazione) e anche l'HFOV. -Per ottenere una stima accurata dei parametri di distorsione a, b e c, sono necessari molti punti di controllo uniformemente distribuiti e un'ampia -area di sovrapposizione (anche il 50%). -

    La linguetta consiste di due riquadri in cui vengono visualizzate due immagini e di alcune linguette per poter selezionare le immagini da elaborare. -La parte inferiore riporta una lista nella quale è possibile selezionare i punti e alcuni campi che permettono di modificare il punto selezionato. -I punti possono anche essere selezionati direttamente cliccando sull'immagine. -È inoltre possibile cambiare l'ingrandimento delle immagini visualizzate. -

    Per inserire un punto di controllo, si deve selezionare con il puntatore un elemento nell'immagine di sinistra o di destra, e poi cliccare nel punto -corrispondente nell'altra immagine. Se l'opzione aggiunta automatica è disattivata, il punto può essere spostato premendo in un altra posizione dell'immagine. -I punti selezionati vengono aggiunti alla lista dei punti di controllo premendo il tasto destro del mouse, il tasto a o premendo il pulsante aggiungi. -Se il tasto destro del mouse viene premuto quando è stato selezionato un solo punto, l'operazione di selezione verrà annullata. -L'opzione aggiunta automatica inserisce il punto di controllo non appena entrambi i punti sono stati specificati. -

    Se le immagine vengono rimpicciolite fino a riempire tutto lo schermo, il primo clic fa aumentare temporaneamente al 100% la vista per aumentare la precisione -nella selezione del punto; solo il secondo clic avvia la stima automatica. -

    Spesso è difficile selezionare esattamente il punto corrispondente; comunque, i punti di controllo -dovrebbero essere selezionati più accuratamente possibile per ottenere dei buoni risultati. -Una volta che la coppia di punti è stata grossolanamente selezionata, la funzione di regolazione precisa fornita da hugin, -può essere utilizzata per stimare i punti corrispondenti fino alla precisione di un decimo di pixel. -La scorciatoia da tastiera per la funzione di regolazione precisa è il tasto f. -Con la regolazione precisa, viene esaminata solamente un'area ristretta nelle vicinanze del punto di controllo già individuato. -L'ampiezza di quest'area può essere impostata nella finestra delle preferenze di hugin variando il -valore della larghezza area ricerca locale. -

    Si ricorda che la funzione di regolazione precisa stima la traslazione della porzione di area nell'intorno del punto selezionato nell'altra immagine -nei confronti dell'immagine corrente. Questa operazione funziona se la rotazione tra le due immagini è piccola e se sono stati utilizzati degli angoli inquadrato stretti. -Se vengono utilizzate delle immagini grandangolari od ottenute con una proiezione fisheye, -la ricerca della rotazione dovrebbe essere attivata nel pannello delle preferenze di hugin. -hugin ricerca inoltre le occorrenze ruotate della pezza attorno al punto selezionato. -

    L'immagine può essere trascinata premendo il tasto centrale del mouse o il tasto CTRL mentre viene spostato il mouse. -Se invece si preme il tasto shift, entrambe le immagini verranno trascinate contemporaneamente. -Questa caratteristica è molto utile se i punti di controllo vengono individuati utilizzando la visualizzazione -al 100% di livello di zoom. -

    La creazione dei punti di controllo è inoltre influenzata dall'impostazione delle seguenti opzioni: -

    -
    • regolazione precisa automatica: hugin aiuta l'utente nell'individuazione del secondo punto, ricercandolo in una -regione (indicata da un rettangolo attorno al cursore). Questa funzione potrebbe non funzionare in tutti i casi, ma nella maggior parte dei casi è attendibile se le -distorsioni dell'immagine non sono troppo elevate. -
    • aggiunta automatica: un punto di controllo viene aggiunto automaticamente quando entrambi i punti sono noti. Non verrà permesso di aggiustare la -selezione prima di aggiungere il punto. -
    • stima automatica: cerca di stimare la posizione del secondo punto valutando la traslazione tra le due immagini. Questo processo è grossolano -e probabilmente funzionerà correttamente solo per un panorama con una singola riga di immagini scattate con un obiettivo -a proiezione rettilineare. -
    -

    Tutte queste opzioni possono essere combinate. Nella maggior parte dei casi, è possibile utilizzare la regolazione precisa automatica e la -stima automatica contemporaneamente; con queste impostazioni, hugin è generalmente in grado -di selezionare correttamente il secondo punto, almeno per quanto riguarda le immagini normali, -in proiezione rettilineare e che non sono troppo ruotate fra loro. -

    Hugin fornisce anche un algoritmo sperimentale di creazione dei -punti di controllo. Può essere richiamato premendo il tasto g; vengono individuati gli angoli -dell'immagine selezionata, e i corrispondenti punti di controllo sono individuati in base alla posizione relativa delle due immagini. -Le foto devono essere già approssimativamente allineate per far si che il processo vada a buon fine. -

    -

    Modalità dei punti di controllo

    -

    Utilizzando la lista a comparsa relativa alla modalità, è possibile cambiare la tipologia associata a una coppia di -punti di controllo. -

    -

    Punti di controllo normali

    -

    La modalità normale dei punti di controllo permette di allineare delle coppie di foto che si sovrappongono facendo corrispondere -gli elementi identici presenti in entrambe. -

    -

    Punti di controllo per linee verticali e orizzontali

    -

    Le coppie di punti di controllo verticali e -punti di controllo orizzontali differiscono dai punti di controllo normali, -in quanto vengono utilizzati per allineare le immagini in ingresso rispetto a una particolare linea del panorama invece di unire solamente le immagini. -

    Occorre selezionare due punti lungo un elemento che si desidera allineare orizzontalmente o verticalmente nel panorama finale. -Se questi punti sono nella stessa foto, hugin sarà in grado di capire che si sta tentando di creare dei punti di -controllo orizzontali o verticali e imposterà la modalità adatta automaticamente; se invece i punti appartengono a immagini differenti, sarà necessario -impostare manualmente la modalità. -

    Generalmente i punti orizzontali e verticali sono utilizzati per livellare un panorama sferico o per -correggere la prospettiva. -

    -

    Punti di controllo per linea retta

    -

    Aggiungere dei punti di controllo in linea retta corrisponde a inserire -dei punti di controllo orizzontali e verticali, con la differenza che è necessaria più di una coppia per realizzare una linea retta. -

    Si crei una coppia di punti nella linguetta dei punti di controllo di hugin, e si scelga poi -aggiungi nuova linea nel menu a tendina della modalità. Questa prima linea verrà chiamata linea 3; sarà poi possibile -identificare altre coppie di punti utilizzando lo stesso menu a tendina della modalità. -

    -

    Scorciatoie da tastiera

    -

    Di seguito è riportato un elenco delle scorciatoie da tastiera disponibili nella linguetta dei punti di controllo di hugin: -

    Tasto Funzione -

    -
    • a: aggiunge un nuovo punto che è stato selezionato in entrambe le immagini quando l'opzione aggiunta automatica è disabilitata. -
    • tasti frecce: muove l'immagine in cui è posizionato il cursore del mouse. -
    • shift + tasti frecce: muove le immagini contemporaneamente. -
    • f: esegue la regolazione precisa della coppia di punti di controllo selezionata. Funziona identicamente al pulsante regolazione precisa. -
    • g: algoritmo sperimentale per la generazione dei punti di controllo. -
    • Del: cancella il punto di controllo selezionato. -
    • 0: adatta la visualizzazione dell'immagine alla finestra. -
    • 1: vista al 100% di zoom. -
    -

    Mouse Funzione -

    -
    • tasto control + movimento del mouse: muove l'immagine in cui è posizionato il cursore. -
    • tasto shift + movimento del mouse: muove le immagini contemporaneamente. -
    • tasto sinistro del mouse: permette di selezionare dei nuovi punti o di spostare i punti esistenti. -
    • tasto destro del mouse: aggiunge la coppia di punti di controllo, se l'opzione aggiunta automatica è disabilitata. -
    • tasto centrale del mouse: muove l'immagine in cui è posizionato il cursore. -
    • shift + tasto centrale del mouse: muove entrambe le immagini. -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Control_Points_table.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Control_Points_table.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Control_Points_table.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Control_Points_table.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - - - - Tabella dei punti di controllo di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Tabella dei punti di controllo di hugin

    -
    - -
    - -

    La tabella dei punti di controllo di hugin è una finestra a comparsa in cui è riportata una lista - di tutti i punti di controllo presenti nel progetto, mentre -la linguetta dei punti di controllo di hugin visualizza solamente i punti in comune -a un paio di immagini. -

    La lista può essere ordinata premendo con il mouse su uno dei titoli delle colonne, premendo una seconda volta verrà invertito l'ordine: -

    -
    • G CP#: indica il numero indice globale (per il progetto) della coppia di punti di controllo; se si cancellano dei punti la lista verrà rinumerata. -
    • Imm. sinistra: rappresenta il numero indice della prima immagine della coppia (sinistra/destra ha significato solamente se inteso come ordine -di visualizzazione nella linguetta dei punti di controllo di hugin). -
    • Imm. destra: rappresenta il numero indice della seconda immagine della coppia. -
    • P CP#, il numero indice locale (di due immagini mostrate nella linguetta dei punti -di controllo di hugin) della coppia di punti di controllo; se si cancellano dei punti la lista verrà rinumerata. -
    • Allineamento: esprime il tipo di punto di controllo; può essere normale, -orizzontale, -verticale o in -linea retta. -
    • Distanza: è la distanza, in pixel, tra un allineamento perfetto e l'allineamento reale ottenuto dall'ottimizzatore. -Alternativamente, dopo aver selezionato l'opzione regolazione precisa di tutti i punti dal menu Modifica, questa colonna riporta -il valore della correlazione tra i punti (0,0 indica nessuna correlazione e 1,00 indica il 100% di correlazione). -Generalmente a valori superiori o uguali a 0,8 (80% di correlazione) corrispondono aree dell'immagine molto simili nell'intorno di -ogni punto della coppia. -
    -

    Selezionando una riga della tabella verrà visualizzato la corrispondente copia di immagini nella -linguetta dei punti di controllo di hugin mentre la coppia di punti di controllo -selezionata verrò evidenziata in rosso. -

    Premendo cancella verranno rimossi dal progetto tutti i punti e/o le righe selezionate. -

    È possibile selezionare più righe tenendo premuto il tasto Ctrl ed evidenziando le ulteriori righe; allo stesso modo è possibile -selezionare un intervallo di righe contigue premendo il tasto Shift. -

    Premendo Seleziona per distanza sarà possibile selezionare dei punti in funzione del valore presente nella colonna della distanza; -per esempio: -

    -
    • Inserire 10 per selezionare tutti i punti a cui è associato un errore di ottimizzazione maggiore o uguale a dieci pixel. -
    • Inserire -5 per selezionare tutti i punti a cui è associato un errore di ottimizzazione minore di cinque pixel. -
    • Inserire -0.8 per selezionare tutti i punti con una correlazione di regolazione precisa inferiore all'80%. -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Crop_tab.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Crop_tab.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Crop_tab.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Crop_tab.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - - - - Linguetta di ritaglio di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Linguetta di ritaglio di hugin

    -
    - -
    - -

    La linguetta di ritaglio permette di selezionare le aree delle immagini in ingresso che hugin - dovrebbe escludere dal processo di assemblatura. Si noti che, a differenza di PTGui, l'impostazione dei parametri di ritaglio in -hugin non incide sull'angolo inquadrato o sul centro ottico dell'immagine; indica semplicemente -le aree dell'immagine che verranno mascherate. È quindi possibile intervenire sul ritaglio delle foto di un progetto in qualsiasi momento del processo -di assemblatura. -

    In pratica, hugin utilizza un parametro S di "selezione" nelle linee i e o -dello script, in luogo del parametro C di ritaglio ("crop" in inglese). -

    Si ricorda che questo parametro di ritaglio (o "crop") non è da confondere con il fattore di ritaglio -( o "crop factor") relativo alla fotocamera, che rappresenta un parametro completamente differente. -

    In hugin, si può presentare la necessità di utilizzare i parametri di ritaglio in 3 situazioni: -

    -
    • quando si deve elaborare una immagine acquisita con uno scanner dato che spesso si presentano dei segni o dei bordi scuri ai lati dell'immagine; -
    • con una immagine circolare in proiezione fisheye (o grandangolare) -dato che si possono presentare delle aree nere al di fuori del circolo dell'immagine; -
    • quando l'obiettivo utilizzato presenta delle riflessioni ("flaring") sui bordi dell'immagine che si desidera rimuovere. -
    -

    A seconda del tipo di immagine in ingresso, il ritaglio può avere due diversi comportamenti: -

    -
    • per le foto in proiezione grandangolare circolare, l'area di ritaglio è un cerchio; -
    • per qualsiasi altra tipologia di immagine, l'area di ritaglio è rettangolare. -
    -

    (Il tipo di immagine in ingresso può essere modificato nella -linguetta della fotocamera e obiettivo di hugin). -

    La linguetta di ritaglio presenta quattro caselle testuali denominate sinistra, superiore, destra e inferiore -tramite le quali è possibile inserire manualmente la posizione dei quattro lati. L'origine è in alto a sinistra e i valori indicano la distanza in pixel -dall'origine. -

    Si noti che i valori possono essere negativi ed estendersi oltre la larghezza e l'altezza della foto; questa possibilità risulta utile -principalmente per le immagini grandangolari (fisheye) parziali per le quali non è visibile il circolo completo, e quindi il cerchio di ritaglio -deve estendersi oltre la cornice dell'immagine. -

    L'impostazione predefinita che prevede di centrare sempre il ritaglio, imposta l'area in simmetricamente rispetto al centro ottico dell'obiettivo. -Di solito questa impostazione è ottimale a meno che si stia utilizzando la funzione di ritaglio per rimuovere i riflessi (flare), nel qual caso potrebbe occorrere -un ritaglio asimmetrico. -

    I parametri dell'obiettivo d ed e che individuano la posizione del centro ottico sono utilizzati dal -modello di correzione dell'obiettivo e sono impostati nella -linguetta della fotocamera e obiettivo di hugin. -

    Selezionando l'immagine da ritagliare dalla lista a sinistra, è possibile configurare la posizione dell'area di ritaglio trascinando il perimetro -nell'anteprima dell'immagine visualizzata a destra. È possibile selezionare più immagini tenendo premuto il tasto Shift o Ctrl -mentre si clicca nella lista delle immagini. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Exposure_tab.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Exposure_tab.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Exposure_tab.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Exposure_tab.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,139 +0,0 @@ - - - - - - - - - - Linguetta dell'esposizione di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Linguetta dell'esposizione di hugin

    -
    - -
    - -

    Hugin fornisce un sistema di correzione della luminosità e del colore che è completamente - indipendente dal vecchio strumento PTStitcher. Questo sistema migliorato è disponibile solamente se -si utilizza lo strumento di assemblatura predefinito nona nella linguetta -dell'assemblatore di hugin. -

    Il sistema di hugin lavora campionando un insieme di punti per ogni coppia di immagini sovrapposte. L'ottimizzatore cerca poi di modellare un -sistema di curva di risposta della fotocamera, esposizione, bilanciamento del bianco -e vignettatura che soddisfa i valori dei punti campionati. -

    Perché questo procedimento vada a buon fine, le foto nel progetto devono essere già allineate. Allineare quindi le immagini gestendo i punti di controllo nella -linguetta dei punti di controllo di hugin e ottimizzando i parametri geometrici nella -linguetta dell'ottimizzatore di hugin. -

    L'opzione usare solo le immagini selezionate nell'anteprima permette di lavorare solamente con alcune immagini del progetto corrente invece che con tutte. -Utilizzare i pulsanti presenti nella parte alta della finestra di antprima di hugin -per visualizzare o nascondere le foto di partenza. Al momento dell'ottimizzazione, tutte le immagini nascoste verranno ignorate. -

    -

    Predefiniti

    -

    Utilizzare il menu a tendina a fianco della voce predefiniti per selezionare uno fra i diversi schemi di ottimizzazione fotometrica predefiniti; premere -poi il pulsante ottimizza per avviare il calcolo mirato a ottenere la migliore correzione della luminosità e del colore. -

    -

    Low dynamic range

    -

    Con questa scelta verranno ottimizzate la vignettatura, la -curva di risposta della fotocamera e l'esposizione (EV) -per tutte le foto caricate nel progetto. -

    Viene ottimizzata l'esposizione per tutte le immagini, ad eccezione dell'immagine bloccata selezionando -blocca quest'immagine per l'esposizione nella linguetta delle immagini di hugin. -

    -

    Low dynamic range, bilanciamento del bianco variabile

    -

    Con questa scelta verranno ottimizzati la vignettatura, la -curva di risposta della fotocamera, l'esposizione (EV) e il -bilanciamento del bianco per tutte le foto presenti nel progetto. -

    Come per la scelta precedente, l'esposizione e il bilanciamento del bianco sono ottimizzati per tutte le immagini ad eccezione di quella bloccata. -

    -

    High dynamic range, esposizione fissa

    -

    Selezionando questa opzione verranno ottimizzate la vignettatura e la -curva di risposta della fotocamera per tutte le fotografie. -

    -

    High dynamic range, bilanciamento del bianco variabile, -esposizione fissa

    -

    Con questa scelta verranno corretti la vignettatura, la -curva di risposta della fotocamera e il bilanciamento del bianco -per tutte le foto appartenenti al progetto. -

    -

    Parametri personalizzati sottostanti

    -

    Le impostazioni predefinite sono sufficienti nella maggior parte delle situazioni, ma a volte può rendersi utile impostare dei parametri personalizzati. -Per esempio, nessuno dei metodi predefiniti ottimizza il centro di vignettatura, ed è quindi necessario utilizzare dei parametri personalizzati -se la vignettatura è decentrata. -

    -

    Variabili immagine

    -

    Le variabili associate a una immagine, sono generalmente diverse fra le foto, in conseguenza alla variabilità, seppur piccola, nella velocità dell'otturatore, oppure -ai cambiamenti nell'illuminazione naturale o a causa delle impostazioni automatiche della fotocamera stessa. -

    -

    Esposizione

    -

    La sezione dedicata all'esposizione mostra il numero della foto e il valore associato dell'esposizione (tra parentesi) per tutte le foto di partenza; il segno di -spunta indica i parametri che verranno ottimizzati. -

    Quando un valore viene impostato a 0 (zero), hugin non applica alcuna correzione all'esposizione della foto. -EV è una scala fotografica standard, ogni aumento o diminuzione di una unità, farà variare l'esposizione dell'equivalente di un f-stop (cioè l'esposizione -sarà dimezzata o raddoppiata). -

    -

    Bilanciamento del bianco

    -

    Noto anche con il nome di bilanciamento del colore o temperatura del colore. -

    La sezione dedicata al bilanciamento del bianco, mostra il numero della foto e i valori (fra parentesi) dei moltiplicatori del rosso e del blu. -Il segno di spunta indica le foto che verranno ottimizzate. Se i valori sono impostati a (1,1), non verranno effettuate delle correzioni al bilanciamento del -bianco (i numeri qui riportati sono relativi al canale verde che rimane inalterato). -

    -

    Variabili fotocamera e obiettivo

    -

    Le variabili di fotocamera e obiettivo sono l'analogo fotometrico dei parametri geometrici del -modello di correzione dell'obiettivo; hugin -assume che tutte le foto di partenza che hanno associato lo stesso obiettivo, abbiano anche gli stessi valori a meno che non siano scollegate nella -linguetta della fotocamera e obiettivo di hugin. -

    -

    Vignettatura

    -

    La vignettatura dipende principalmente dall'obiettivo e dal valore dell'apertura. Generalmente il centro -dell'immagine è più luminoso con un decadimento verso i bordi. Hugin è in grado di stimare la curva associata al decadimento -della luminosità, come parte del processo di ottimizzazione fotometrica oppure è possibile inserirla manualmente nella -linguetta della fotocamera e obiettivo di hugin nella forma di una terna di numeri descritti -nel seguito. -

    -

    Centro di vignettatura

    -

    Il centro di vignettatura corrisponde raramente al centro geometrico della foto; -hugin può ottimizzare questa posizione oppure è possibile inserirne il valore manualmente nella -linguetta della fotocamera e obiettivo di hugin. La scala è in pixel, mentre 0,0 -indica il centro geometrico della foto. I valori sono indipendenti dai parametri d ed e che identificano l'origine per i parametri di proiezione e distorsione. -

    -

    Risposta fotocamera

    -

    Hugin è in grado di ottimizzare la curva di risposta della -fotocamera confrontando le differenze tra due immagini che si sovrappongono. Per farlo le foto devono avere o una significativa -vignettatura o un valore dell'esposizione variabile. Se le foto hanno una esposizione perfettamente identica e una -vignettatura nulla, allora si dovrà calibrare la risposta della fotocamera separatamente e inserirne i corrispondenti valori manualmente nella -linguetta della fotocamera e obiettivo di hugin. -

    La curva di risposta della fotocamera è utile sia per mappare le immagini in uno spazio colore lineare quando si crea un'immagine finale in -HDR, sia per normalizzare lo spazio colore per la vignettatura interna, la luminosità e la correzione del colore quando si crea -una "normale" immagine LDR. Se le immagini di cui si dispone non necessitano di una tale correzione, allora non è necessario calibrare la curva di risposta. -

    hugin si avvale del modello di risposta EMoR ottenuto dal laboratorio di visione computerizzata della Columbia University, il quale semplifica l'intera curva -di risposta con cinque coefficienti numerici empirici. -

    Se le variazioni di luminosità sono causate dal "lens flare" è meglio non ottimizzare l'esposizione o il bilanciamento del bianco. È invece -meglio deselezionare l'opzione collegamento per la risposta fotocamera nella -linguetta della fotocamera e obiettivo di hugin al fine di ottimizzare una curva di risposta -differente per ogni fotografia. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_FAQ.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_FAQ.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_FAQ.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_FAQ.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,214 +0,0 @@ - - - - - - - - - - FAQ di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    FAQ di hugin

    -
    - -
    - - -

    Installazione

    -

    Come posso compilare hugin.app sul mio sistema OSX?

    -

    Vedere la guida su come compilare hugin su OSX. -

    -

    Come posso compilare hugin sul mio sistema Linux?

    -

    Un'ottima guida per gli utenti di Ubuntu è reperibile a questo indirizzo: Compiling hugin in Ubuntu. È anche presente una guida a qui e altri documenti non -ancora completi che illustrano come compilare hugin e libpano13 (i commenti sono i benvenuti!). Per gli utenti di Ubuntu/debian, Rob Park ha scritto un ottimo -documento sulla compilazione in Ubuntu, ma sembra non essere più disponibile. -

    -

    Come posso compilare hugin sul mio sistema Windows?

    -

    Consultare la guida su come compilare hugin su Windows. -

    -

    Il comando «make install» fallisce quando esegue lo script -update-desktop

    -

    Se «make install» restituisce il seguente messaggio di errore: -

    -
    *** calling /usr/bin/update-desktop-database
    -*No directories in update-desktop-database search path could be processed and updated.* 
    -
    -

    eseguire di nuovo il comando «./configure» con le opzioni «--disable-desktop». -

    -

    La compilazione di PTWXDlg.cpp fallisce

    -

    Se viene visualizzato questo messaggio di compilazione (o uno simile): -

    -
     PTWXDlg.cpp: In function 'void registerPTWXDlgFcn()':
    - PTWXDlg.cpp:176: error: invalid conversion from 'void (*)(char*,
    - char*)' to 'void (*)(char*, ...)'
    - PTWXDlg.cpp:176: error: initializing argument 1 of 'void
    - PT_setErrorFcn(void (*)(char*, ...))'
    - make[3]: *** [PTWXDlg.lo] Error 1
    -
    -

    è necessario aggiornare libpano alla versione 2.8.4 o successiva e ricompilare. Sfortunatamente lo script «./configure» di hugin 0.6.1 controlla la presenza di -libpano 2.8.1. -

    -

    hugin si blocca o si chiude durante l'ottimizzazione

    -

    Se è stato installato hugin in versione 0.6 o successiva utilizzando un pacchetto in formato rpm, assicurarsi di avere anche installato la versione 2.8.3 o successiva -dei panotools. La versione 0.6 e successive di hugin potrebbero creare dei problemi utilizzando una versione precedente dei panotools. -

    -

    Autopano-SIFT non può essere utilizzato all'interno di hugin (LINUX) -

    -

    In alcuni sistemi Linux (per esempio Fedora Core), i programmi mono (Autopano-SIFT è scritto in C#) non sono direttamente eseguibili. Quando si cerca di creare -automaticamente dei punti di controllo, hugin non è in grado di avviare autopanog.exe. -Aprire la finestra delle preferenze e utilizzare -

    -
     mono `which autopanog.exe`
    -
    -

    come programma autopano-SIFT. -

    -

    Creazione dei punti di controllo

    -

    Come posso aggiungere dei punti di controllo?

    -

    L'editor dei punti di controllo è piuttosto potente, ma il suo utilizzo non è ovvio dal primo tentativo. -Di seguito vengono riportate alcune modalità con cui gli sviluppatori utilizzano il pannello dei punti di controllo: -

    1. Selezionare i punti di controllo con un ingrandimento del 100%. -

    Con questo metodo sarà necessario spostarsi all'interno dell'immagine se questa è di grandi dimensioni. È anche possibile utilizzare la visualizzazione adattata -alla finestra. Passare alla linguetta dei punti di controllo e utilizzare le impostazioni seguenti: -

    -
    ingrandimento: 100%
    -[X] regolazione precisa automatica
    -[X] aggiunta automatica
    -[X] stima automatica
    -
    -

    Individuare e cliccare su un elemento chiaramente visibile sull'immagine di sinistra. Se la coppia di immagini contiene già dei punti di controllo, -hugin cercherà di selezionare il punto nell'altra immagine. Se si tratta invece del primo punto di questa coppia, -selezionare un punto vicino allo stesso elemento nell'immagine di destra. Il secondo punto verrà inserito e regolato con precisione, automaticamente. -Se non si è soddisfatti del risultato, entrambi i punti possono essere trascinati in una posizione migliore. Premere il tasto «f» per regolare precisamente i punti -nell'intorno una piccola area. -


    -2. Selezionare i punti di controllo nella modalità adatta alla finestra. -

    Questo metodo è utile se si devono individuare dei punti di controllo su immagini molto grandi. Aprire la linguetta dei punti di controllo e utilizzare le -impostazioni seguenti: -

    -
    ingrandimento: adatta alla finestra
    -[X] regolazione precisa automatica
    -[ ] aggiunta automatica
    -[X] stima automatica
    -
    -

    Cliccare sull'immagine di sinistra; in questo modo verrà visualizzata con iil 100% di ingrandimento. All'interno della visualizzazione dettagliata, selezionare un elemento -distinguibile. Se la coppia di immagini contiene già dei punti di controllo, hugin tenterà di individuare autonomamente il punto corrispondente nell'immagine di destra. -Se si tratta invece del primo punto di controllo per la coppia di immagini, selezionare un punto nelle vicinanze dello stesso elemento sull'immagine di destra. -Il punto verrà automaticamente posizionato e regolato con precisione. Se non si è soddisfatti del posizionamento, entrambi i punti possono essere modificati -cliccando sulla posizione desiderata. Spostare il punto vicino all'elemento desiderato e premere il tasto «f» per regolarlo precisamente. Quando i punti sono posizionati -sullo stesso oggetto, premere il pulsante destro del mouse, o premer il tasto «a», per aggiungere la coppia di punti di controllo appena individuata; -questa verrà mostrata nella lista al di sotto delle immagini. -

    -

    Come posso trascinare entrambe le immagini contemporaneamente?

    -

    Premendo il tasto «shift» mentre si muove il mouse. Il tasto «Ctrl» o il pulsante centrale del mouse, possono essere utilizzati per trascinare solo l'immagine in cui -si trova il cursore del mouse. -

    -

    Come posso fare in modo che hugin non si blocchi per qualche -secondo ogni volta che premo il pulsante del mouse?

    -

    La finestra dell'anteprima si aggiorna continuamente ogni volta che qualche parametro cambia; occorre quindi disabilitare la funzione di aggiornamento automatico -della finestra di anteprima, diminuirne le dimensioni o chiuderla se non è necessaria. -

    Diversamente, l'individuazione dei punti di controllo con la regolazione precisa automatica abilitata, -può richiedere molta elaborazione. Per ridurla si può selezionare File -> Preferenze -> Regolazione precisa e diminuire il valore di larghezza -zona, larghezza area di ricerca e larghezza area di ricerca locale. Questo comporta di dover adottare una maggiore precisione quando si selezionano gli -oggetti per la creazione dei punti di controlli, ma il risultato sarà comunque lo stesso. -

    -

    Problemi comuni quando si creano dei panorami

    -

    Come posso riutilizzare un progetto come modello?

    -

    Copiando un file di progetto con l'estensione .pto in una cartella differente, all'apertura con hugin verrà richiesta l'individuazione delle immagini "mancanti". -I punti di controlli di questo progetto potranno essere completamente rimossi dato che non avranno significato per le nuove fotografie. -

    Alternativamente si possono caricare le immagini come al solito, e poi selezionare la voce Applica modello -dal menu File; in questo modo verranno importati i parametri e le impostazioni delle immagini di un progetto precedente. -

    -

    Come posso raddrizzare un orizzonte curvato?

    -

    Se il panorama sembra corretto ma l'orizzonte è curvato, esistono due modi per migliorare l'immagine e raddrizzare l'orizzonte. Il primo consiste nell'ottimizzare -la vista selezionando "posizione e vista" come modalità di ottimizzazione e lanciando di nuovo l'ottimizzatore. Premendo "calcola campo inquadrato" nella linguetta -dell'"assemblatore" e visualizzando in seguito la finestra di anteprima , è possibile controllare se la situazione è migliorata. -

    Se l'orizzonte fosse ancora curvato, è necessario aggiungere dei punti di controllo per linee verticali nella linguetta dei "punti di controllo". -Generalmente due punti di controllo verticali sono sufficienti per raddrizzare correttamente -l'orizzonte. Spesso gli spigoli dei fabbricati, i pali o altre strutture antropiche forniscono delle ottime linee verticali. Per aggiungere un punto di controllo verticale, -selezionare l'editor dei punti di controllo e impostare la stessa immagine in entrambi i riquadri; individuare un punto di controllo nella parte alta di un elemento -verticale sull'immagine di sinistra. In quella di destra, selezionare invece un punto nella parte bassa dello stesso elemento e premere il pulsante destro del mouse. -Una volta che i nuovi punti sono stati aggiunti, il loro tipo dovrebbe essere impostato automaticamente a "linea verticale". Disabilitando le funzioni di aggiunta -automatica e di stima automatica si eviteranno dei messaggi fastidiosi durante l'immissione di questi punti. -

    Due punti approssimativamente a 90° tra loro, forniscono l'effetto migliore. -

    Consultare anche i relativi esempi pratici di correzione della prospettiva: esempio di correzione della prospettiva con hugin, correzione della prospettiva e livellare un panorama finito. Anche se questi articoli si riferiscono alla correzione della prospettiva -di un'immagine, la stessa tecnica si applica per livellare un panorama. -

    -

    Metà panorama è nero, le mie immagini -occupano solamente la metà destra dell'immagine finale

    -

    In hugin la prima fotografia inserita è bloccata nei confronti della posizione e viene inserita al centro di default. Questo comporta che, se è stata scattata una -sequenza di immagini da sinistra a destra, queste riempiranno solamente il lato destro del panorama. Esistono due modi per porvi rimedio: -

    -
    • aprendo la finestra dell'anteprima e premendo il pulsante centra; -
    • selezionando la foto centrale nella linguetta delle immagini, premendo il pulsante blocca questa immagine per la posizione e ripristina; -eseguire poi di nuovo l'ottimizzazione. -
    -

    Rimangono delle bande visibili nel cielo e in altre -aree piatte; cosa posso fare?

    -

    Assicurarsi di utilizzare enblend per eseguire l'assemblatura dell'immagine finale; in questo modo verranno fuse -le sovrapposizioni nel miglior modo possibile; enblend è abilitato assemblando le immagini in un file TIFF di alta qualità nella linguetta dell'assemblatore. -

    Se si avessero ancora dei problemi, si potrebbe dover correggere la vignettatura delle immagini. -Nella sezione dedicata alla vignettatura della linguetta fotocamera e obiettivo, selezionare modifica parametri.... Selezionare poi divisione, -polinomiale e stima polinomiale per calcolare una curva di correzione della vignettatura per la propria fotocamera; questa verrà applicata a ogni foto -nel progetto alla pressione del tasto OK. -

    -

    Le mie foto non si allineano mai bene, come posso fare?

    -

    È normale avere un po' di errore di parallasse se la fotocamera si è mossa fra gli scatti. La soluzione è quella di ruotare -la fotocamera attorno al no-parallax point utilizzando una testa panoramica o philopod. -

    Diversamente si può tentare di migliorare il risultato ottimizzando i parametri d ed e separatamente. Quando si ottimizza tutto, -si deselezioni collegamento per d ed e nel pannello di fotocamera e obiettivo. -

    Se questi errori di parallasse sono ancora evidenti, si deve decidere quale parte della scena si desidera allineare e quale invece può essere scartata. -Selezionare i punti di controllo solo sugli oggetti che si desidera allineare e che sono tutti -approssimativamente alla stessa distanza dalla fotocamera. -

    Le restanti linee interrotte possono poi essere ritoccate in un programma di foto ritocco come Gimp. -Lo strumento inclina è ideale per sfumare le linee e renderle allineate. -

    -

    Postprocessing

    -

    Perché non vine mantenuto il profilo ICC delle mie immagini di -input?

    -

    A partire da hugin 0.5 e enblend 2.4, i profili ICC delle immagini di input sono trasferiti al panorama finale. -Si consiglia quindi di aggiornare hugin alla versione più recente. -

    -

    Come posso elaborare successivamente la mia -immagine in Gimp utilizzando livelli multipli?

    -

    Purtroppo Gimp non è in grado di leggere i file in formato PSD generati da PTStitcher, -e l'output TIFF multiplo che produce è scomodo da utilizzare. Esistono però due possibilità per aggirare questo problema: -

    -
    • Utilizzando l'assemblatore di nona, per salvare in formato TIFF multi livello. -
    -

    In questo modo verrà prodotto un file multi_layer.tif, che contiene tutte le immagini rimappate, ritagliate lungo il contorno che le contiene. -In questo modo si risparmierà molto spazio in confronto al formato di file a livelli "tradizionale" di PTStitcher in cui tutti i livelli hanno la stessa dimensione del -panorama completo. -

    Sfortunatamente, Gimp 1.2 e 1.3, non sono in grado di aprire i file TIFF multi livello. Si consiglia quindi di utilizzare la versione 2.0 o successive. -

    -
    • Se si necessita delle funzioni di PTStitcher non fornite da nona, è anche possibile utilizzare tif2xcf, per combinare -un formato TIFF multiplo in un formato XCF multi livello. -
    -

    Purtroppo questo richiede molta memoria dato che ogni immagine rimappata viene immagazzinata in un livello con la dimensione del panorama finale. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Hugin_FAQ"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Fast_Preview_window.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Fast_Preview_window.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Fast_Preview_window.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Fast_Preview_window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,153 +0,0 @@ - - - - - - - - - - - Finestra dell'anteprima veloce di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Finestra dell'anteprima veloce di hugin

    -
    - -
    - -

    Come la più accurata finestra dell'anteprima di hugin, l'anteprima veloce mostra un'immagine simile al risultato finale assemblato, ma con alcune importanti -differenze: -

    -
    • vengono utilizzate delle immagini a risoluzione ridotta, quindi alcune aree possono apparire sfocate anche se poi saranno nitide nell'immagine finale; -
    • non vengono create le cuciture; le immagini sono semplicemente sovrapposte inserendo la prima in fondo alla pila e l'ultima in cima; -
    • la fusione realizzata da uno strumento quale enblend non è mostrata; -
    • la luminosità della visualizzazione in HDR e di immagini a 16 bit è controllata -impostando le preferenze di hugin; queste impostazioni non sono utilizzate durante l'assemblatura. La colorazione di queste immagini risulterà inoltre inaccurata -utilizzando la correzione dell'esposizione o del bilanciamento del bianco. Per i panorami HDR, si raccomanda invece di utilizzare la -finestra dell'anteprima di hugin; -
    • la correzione fotometrica comprende solamente il bilanciamento del bianco e l'esposizione, a meno che non sia abilitata la correzione fotometrica completa -tramite il pulsante «fotometria»; -
    • la rimappatura è approssimativa, il risultato di uno strumento quale nona è più accurato. Se si è più -interessati a questi aspetti che alla velocità, usare la finestra di anteprima di hugin; -
    • è molto più veloce ;-). -
    - -

    Pulsanti

    -

    Ogni pulsante che appare in entrambe le finestre di anteprima funziona allo stesso modo; consultare la guida alla finestra dell'anteprima di hugin su come utilizzarli. I pulsanti specifici della finestra di anteprima veloce sono descritti nel seguito. -

    -

    Image:Fast_preview_icon_photometric.svg Fotometria

    -

    Abilita la correzione fotometrica completa. Quando è abilitata, si riscontrerà un ritardo significativo alla variazione dei parametri fotometrici. Inoltre sarà impiegato -un po' di tempo all'abilitazione o alla disabilitazione dell'opzione. Comunque, quando è abilitata, si avrà una migliore rappresentazione dei colori del risultato finale. -Quando invece è disabilitata si avrà la correzione solamente di bilanciamento del bianco ed esposizione. Abilitandola si avrà anche la correzione della vignettatura e della -risposta del colore. La finestra dell'anteprima di hugin fornisce tutte queste opzioni di -default, quindi si può voler utilizzare direttamente quest'ultima. -

    -

    Image:Fast_preview_icon_drag.svg -Trascina

    -

    Utilizzando questo strumento è possibile centrare il panorama interattivamente. Con questa opzione abilitata, provare a: -

    -
    • trascinare il panorama con il tasto sinistro del mouse per ruotare le immagini che compongono il panorama stesso. Il centro di rotazione è rappresentato dal punto -nel quale è stato premuto il tasto sinistro del mouse; -
    • mantenere premuto il tasto «shift» mentre si esegue l'operazione descritta nel punto precedente per bloccare il movimento solo per imbardata e inclinazione. -Si noti come l'inclinazione sia influenzata dal centro di rotazione; -
    • trascinare il panorama con il tasto destro del mouse o tenere premuto il tasto «Ctrl» e trascinare con il sinistro per rollare il panorama (ruotarlo attorno al -centro). -
    -

    Se il panorama contiene dei componenti non connessi, questi verranno spostati individualmente. -

    Premere di nuovo il pulsante per disabilitarlo. -

    -

    Image:Fast_preview_icon_crop.svg -Ritaglio

    -

    Utilizzando questo strumento è possibile impostare la regione di ritaglio del risultato finale interattivamente. Se invece si desiderasse impostarla con maggiore -precisione, utilizzare la linguetta dell'assemblatore. Inizialmente, l'intero panorama -è la regione di output (cioè non è ritagliato niente). -

    Per cambiare il ritaglio su ogni lato, muovere il mouse verso il lato desiderato fino a quando appare un riquadro bianco lungo di esso; trascinarlo poi, con il -tasto sinistro del mouse, fino alla posizione desiderata. Le aree più scure rappresentano le regioni scartate. È anche possibile spostare due lati contemporaneamente -spostando il mouse nell'angolo condiviso da entrambi fino a far comparire su entrambi un riquadro bianco. Se si desidera invece spostare l'intera regione in una volta sola, -spostare il mouse al centro, in modo che ogni lato abbia su di esso un riquadro bianco, e trascinare. -

    Premere di nuovo il pulsante per disabilitare questa modalità. -

    -

    Image:Fast_preview_icon_identify.svg Identifica

    -

    Utilizzando questo strumento è possibile identificare dove sono le proprie immagini, e farle corrispondere ai rispettivi numeri; è anche possibile modificare i punti di -controllo. -

    Quando questo strumento è abilitato, spostare il mouse sui pulsanti di visibilità delle immagini (i numeri in alto nell'anteprima). L'immagine corrispondente al -numero su cui si trova il cursore del mouse, si illuminerà di rosso nell'anteprima. Spostando il mouse sul panorama, tutte le immagini toccate dal cursore del mouse verranno -illuminate con colori diversi. I pulsanti corrispondenti a queste immagini saranno illuminati con gli stessi colori. -

    Quando il cursore si trova nell'area di sovrapposizione di due immagini, fare clic per modificare i punti di controllo tra le due immagini. -

    -

    Modalità unione

    -

    La modalità di unione normale disegnerà le immagini come una pila. La modalità di unione differenza farà lo stesso con la differenza che l'immagine situata -sotto al cursore del mouse verrà sottratta dal resto della pila. Utilizzare questa funzionalità per determinare l'allineamento è stato eseguito correttamente: se vengono -visualizzati dei contorni nell'immagine sottratta, questi sono disallineati. Questa visualizzazione non è accurata al 100%; l'altra anteprima ha un metodo di differenza -migliore. -

    -

    In pratica

    -
    A panorama with unconnected image groups after optimisation.
    -
    Un panorama con gruppi non connessi dopo l'ottimizzazione.
    -

    Verrà ora illustrato come utilizzare questa anteprima per correggere un panorama per cui l'allineamento automatico ha fallito. Questo panorama è stato catturato -in un momento in cui diversi oggetti erano mossi dal vento e le nuvole si spostavano velocemente; non deve quindi sembrare strano che l'allineamento automatico abbia fallito. -La linguetta dell'assistente indica che esistono diversi gruppi di immagini non connessi. -È possibile ottimizzare il panorama e ottenere delle immagini posizionate correttamente se all'interno di un gruppo, ma i gruppi saranno non allineati tra loro. Provare -prima con questa possibilità.

    -
    Dragging images with the drag tool.
    Trascinamento delle immagini con lo strumento «trascina».
    -

    Utilizzando lo strumento «trascina», è possibile allineare approssimativamente i gruppi tra loro: -

    -
    1. abilitare lo strumento con il pulsante trascina; -
    2. trascinare ogni componente in modo da posizionare l'orizzonte al centro, utilizzando il pulsante sinistro del mouse; -
    3. trascinare, con il tasto destro del mouse (o tenendo premuto «Ctrl»e trascinando con il sinistro), per livellare l'orizzonte; -
      Rotating images with the drag tool.
      Ruotare le immagini con lo strumento «trascina».
      -
    4. tenere premuto «Shift» e trascinare di lato con il tasto sinistro del mouse per allineare approssimativamente l'immagine con gli altri gruppi. -
    -
    Two images highlighted in the preview window.
    Due immagini evidenziate nella finestra dell'anteprima.
    -

    Quando si hanno le immagini approssimativamente nella giusta posizione, è possibile iniziare a inserire dei punti di controllo per guidare l'ottimizzatore. -Lo strumento «identifica» viene in aiuto per questo compito. Prima di tutto, abilitare questo strumento; spostare poi il mouse sull'area di sovrapposizione appena creata -tra due gruppi di immagini. Le immagini interessate si colorano. Spostare il mouse in una posizione in cui sono presenti solo due immagini e fare clic. Le due immagini -verranno aperte nell'editor dei punti di controllo -(potrebbe esserci un ritardo mentre le immagini vengono caricate). Una volta che i punti di controllo sono stati inseriti manualmente, è possibile tornare all'anteprima -per trovare altre coppie di immagini. -

    -
    Adjusting the cropping region.
    -
    Aggiustamento della regione di ritaglio.
    -

    Quando si è soddisfatti del numero di punti di controllo che il proprio panorama contiene; ottimizzarlo di nuovo. Probabilmente il panorama avrà l'orizzontale all'angolo -errato; in questo caso premere il pulsante Raddrizza nella finestra di anteprima. È poi possibile incorniciare il panorama utilizzando lo strumento «trascina» (tenere -premuto «shift» in modo da non renderlo ondulato di nuovo!). Se si desidera ritagliare il proprio panorama, fare clic su ritaglio e trascinare i lati del rettangolo di -ritaglio. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,135 +0,0 @@ - - - - - - - - - - hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    hugin

    -
    - -
    - -

    hugin -è un'interfaccia grafica (graphical user interface: GUI) a codice aperto per i Panorama tools. -

    Come quelle di altri programmi, anche hugin consiste di una interfaccia del tipo -"punta e clicca" che rende più semplici da realizzare le operazioni eseguite da tutta una serie di applicativi, che altrimenti dovrebbero essere immesse -da linea di comando, tra cui: -

    - -

    Lo scopo del progetto hugin non è unicamente quello di creare una potente GUI ma anche quello di fornire un'alternativa a codice aperto -all'esiguo numero di applicativi a codice chiuso dei Panorama tools, in particolare modo -PTStitcher. -Un sostituto di PTStitcher, denominato nona è stato sviluppato garantendo il supporto alle sue principali caratteristiche. -

    Fra le numerose opzioni che è possibile selezionare lungo il percorso di elaborazione si ricordano la possibilità di correggere l'esposizione, la -vignettatura e il bilanciamento del bianco fra le varie foto; generare un'immagine -HDR o con l'esposizione fusa partendo da una serie di scatti a forcella; -utilizzare le immagini a 16bit e HDR nativamente. -

    - -

    Componenti di hugin

    -

    I seguenti programmi fanno parte del pacchetto hugin: -

    -
    • hugin: l'interfaccia grafica per l'utente. -
    • nona: un'alternativa a riga di comando per PTStitcher. -
    • fulla: correzione di distorsione del barilotto, -aberrazione cromatica e vignettatura. -
    • nona_gui: una versione di nona con una semplice interfaccia di processo, -simile alla versione per piattaforme Windows di PTStitcher. -
    • autooptimiser: uno strumento in fase sperimentale con la stessa interfaccia di PTOptimizer a eccezione del fatto che utilizza un'ottimizzazione a coppie che non richiede alcun pre-posizionamento manuale. -
    • align_image_stack: uno strumento per automatizzare il processo di -allineamento di un gruppo di foto. -
    • tca_correct: strumento che genera automaticamente i parametri di correzione dell'aberrazione -cromatica da utilizzare con fulla. -
    • matchpoint: strumento di identificazione dei punti corrispondenti. -
    • pto2mk: generatore di "Makefiles" per l'unione delle immagini tramite linea di comando. -
    • vig_optimize: strumento a linea di comando per la stima dei parametri fotometrici. -
    • hugin_hdrmerge: unisce diverse esposizioni in un'immagine HDR avvalendosi dell'algoritmo di Khan per l'anti-ghosting. -
    • hugin_stitch_project unisce in serie dei progetti di hugin, eseguendo anche qualsiasi unione o fusione HDR necessaria. -
    • celeste_standalone rimuove i punti di controllo relativi alle nuvole dai file di progetto. -
    • PTBatcherGUI gestisce la coda di assemblatura di più progetti di hugin. -
    • PTBatcher linea di comando permette di accedere alla coda di assemblatura. -
    • panoglview visualizzatore di panorami in OpenGL contenuto nell'SVN di sourceforge assieme a -hugin che deve essere compilato separatamente. -
    • autopano-sift-C versione di autopano-sift -scritta in C; anche questa deve essere compilata separatamente. -
    -

    Ulteriori informazioni, documentazione e guide sono disponibili sul sito ufficiale del progetto. -

    -

    Interfaccia dell'utente

    - -

    Sviluppo

    -

    hugin è a codice aperto e, come tutti gli altri software sviluppati dalla comunità, è fortemente dipendente dai contributi volontari. -Se si posseggono abilità nella programmazione, si è i benvenuti nella consultazione del codice sorgente e nella contribuzione al suo miglioramento. -Anche se non si hanno le conoscenze necessarie per la programmazione, probabilmente si potrebbe essere in possesso di altre capacità -utili comunque per il progetto: ogni tipo di aiuto è sempre accettato. I campi che richiedono attenzione cambiano frequentemente -così come le risorse e le capacità necessarie: per questo è possibile, per tutti, tenere sotto controllo il processo di sviluppo. -


    -

    -

    Consultare anche

    -
    • hugin FAQ domande poste frequentemente riguardo a hugin -
    -

    Collegamenti esterni

    -
    • Pagina ufficiale di hugin per reperire immagini, guide, documentazione e altri collegamenti utili. -
    • Progetto hugin su "sourceforge" per il download, l'elenco dei bug e la richiesta di nuove funzioni. -
    • "sourceforge SVN" per navigare fra il codice sorgente di hugin. -
    • Gruppo di Google "hugin-ptx" per contribuire allo sviluppo e ricevere assistenza. -
    -

    Sistemi operativi supportati

    -
    • Windows -
    • Linux e Unix -
    • Mac OS X -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Hugin"
    -
    diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Images_tab.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Images_tab.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Images_tab.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Images_tab.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,80 +0,0 @@ - - - - - - - - - - Linguetta delle immagini di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Linguetta delle immagini di hugin

    -
    - -
    - -

    La linguetta delle immagini permette di gestire le foto presenti in un progetto di hugin. - In aggiunta, qui possono essere modificate le posizioni delle immagini nel panorama finale. -

    - -

    Aggiungere delle immagini

    -

    Le immagini possono essere aggiunte sia tramite i pulsanti Aggiungi immagini individuali... e Aggiungi immagini per data..., oppure con il metodo -"drag and drop". L'opzione Aggiungi immagini per data... permette di aggiungere tutte le immagini che hanno una data di modifica del file simile a quello -dell'immagine selezionata; se il progetto è vuoto, verrà mostrata una finestra di dialogo in cui sarà possibile selezionare il primo file della serie. -

    -

    Punti di controllo

    -

    Dei punti di controllo individuali possono essere creati e modificati -dalla linguetta dei punti di controllo di hugin, mentre, nella linguetta delle immagini, -possono essere manipolati contemporaneamente. -

    La creazione automatica dei punti di controllo può essere avviata -premendo il pulsante Crea punti di controllo (se sono state selezionate solo alcune immagini, i punti di controllo verranno creati solamente -per esse). Hugin avvierà autopano o -autopano-sift e aggiungerà i punti di controllo individuati al progetto. -Le preferenze di hugin determinano quale di questi programmi autopano debba essere utilizzato -e con quali opzioni. Il pulsante rimuovi punti fa esattamente quello che il nome suggerisce: rimuove i punti di controllo tra le immagini selezionate, -o tutti i punti di controllo se non è selezionata alcuna immagine. -

    Spesso un progetto presenta diversi punti di controllo individuati sulle nuvole nel cielo; generalmente questi punti sono indesiderati in quanto le nuvole si muovono -tra una foto e l'altra. Premendo il tasto esegui Celeste, verranno ricercati ed eliminati i punti di controllo nel cielo utilizzando lo strumento denominato "celeste". -

    -

    Orientazione immagine

    -

    Nella sezione orientazione immagine, è possibile specificare la posizione dell'immagine selezionata rispetto al panorama finale -intervenendo sui valori angolari di imbardata, inclinazione e -rollio (in gradi). Il pulsante ripristina permette di riportare a zero il valore di tutti gli angoli. -Questo è utile se l'ottimizzatore non riesce a individuare l'orientamento corretto dell'immagine bloccandosi su un risultato non ottimale. -È possibile selezionare più immagini contemporaneamente; le modifiche relative all'orientamento verranno applicate a tutte le immagini selezionate. -

    Selezionare blocca quest'immagine per la posizione per indicare a hugin che questa particolare immagine non deve essere spostata quando -si ottimizza il progetto dalla linguetta dell'ottimizzatore di hugin. Una sola -immagine può essere bloccata e, di default, questa è la prima immagine del progetto. -

    -

    Esposizione

    -

    Selezionando blocca questa immagine per l'esposizione si indicherà a hugin che quella particolare immagine dovrà essere utilizzata come -riferimento bloccato quando verranno ottimizzati l'esposizione o il bilanciamento del bianco nella -linguetta dell'esposizione. Normalmente l'immagine selezionata con questa opzione -dovrebbe essere quella con la minore sotto o sovra-esposizione o quella con il miglior bilanciamento del bianco. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Keyboard_shortcuts.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Keyboard_shortcuts.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Keyboard_shortcuts.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Keyboard_shortcuts.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ - - - - - - - - - - Scorciatoie da tastiera di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Scorciatoie da tastiera di hugin

    -
    - -
    - -

    Le seguenti scorciatoie da tastiera sono disponibili in ogni finestra di Hugin: -

    -
    • Ctrl-N: scarta il progetto corrente e avvia un nuovo progetto vuoto. -
    • Ctrl-O: apre un progetto esistente di Hugin, PTGUI, PTAssembler, autopano o autopano-sift. -
    • Ctrl-S: salva il progetto corrente in un file pto di hugin. -
    • Ctrl-Q: esce da hugin. -
    • Ctrl-Z: annulla i cambiamenti più recenti effettuati nel progetto corrente. -
    • Ctrl-R: ripete una operazione annullata. -
    • Ctrl-T: ri-ottimizza il progetto corrente; ha esattamente lo stesso effetto che si ottiene premendo il pulsante Ottimizza ora! nella -linguetta dell'ottimizzatore di hugin. -
    • Ctrl-P: mostra la finestra di anteprima di hugin. -
    • <F1>: apre il manuale di Hugin. -
    • <F3>: visualizza la tabella dei punti di controllo di hugin. -
    -

    Oltre a questi esistono una serie di scorciatoie da tastiera disponibili solamente nella linguetta dei punti di controllo di hugin. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Main_window.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Main_window.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Main_window.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Main_window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,228 +0,0 @@ - - - - - - - - - - Finestra principale di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Finestra principale di hugin

    -
    - -
    - -

    Linguette

    -

    Anche se sono possibili altri utilizzi, hugin è prima di tutto uno strumento per -assemblare un gruppo di foto e creare, da queste, un unico panorama senza che siano visibili le giunzioni. -

    Questo processo è completamente automatizzato se si utilizza la linguetta dell'assistente di hugin, -ma hugin permette anche di avere il totale controllo manuale di ogni passaggio. -Quindi hugin suddivide i vari passaggi e li presenta, nella finestra principale, sotto forma di linguette. -Queste linguette sono approssimativamente nell'ordine da seguire per la creazione di un panorama (da sinistra a destra), -anche se poi, in realtà, per un progetto che richiede un lavoro di precisione, si renderà necessario spostarsi indistintamente tra una linguetta e l'altra. -

    Di seguito è riportata una panoramica di questo sistema a linguette; non si tratta di una guida passo-passo: esse sono reperibili -sul sito ufficiale di hugin. -

    -

    Assistente

    -

    La linguetta dell'assistente di hugin rappresenta la parte automatizzata di -hugin; qui è possibile -caricare le immagini, allinearle e unirle in un panorama senza il bisogno di aprire le altre linguette. -

    Alternativamente, è possibile avvalersi dell'Assistente per compiere il primo passo nella creazione di un progetto -che prevederà l'utilizzo di alcune o di tutte le altre linguette. -

    -

    Immagini

    -

    Nella linguetta delle immagini di hugin è possibile aggiungere o togliere delle immagini al proprio progetto. -La tabella al centro mostra la posizione nella scena finale di ogni immagine espressa come angoli di -rollio, inclinazione e imbardata. -

    Anche se è possibile inserire manualmente questi valori, molto probabilmente si preferirà creare dei -punti di controllo nella -linguetta dei punti di controllo di hugin -e utilizzare il processo di ottimizzazione nella linguetta dell'ottimizzatore di hugin -per posizionare l'immagine. -

    -

    Fotocamera e obiettivo

    -

    Le foto hanno delle proprietà che devono essere note per poter essere assemblate senza che si notino delle giunzioni; queste -proprietà possono essere geometriche come il campo inquadrato (FOV=field of view) o la -distorsione a barilotto, o fotometriche quali la -vignettatura o l'esposizione. -

    Ancora una volta, anche se è possibile inserire i parametri per queste proprietà direttamente qui nella -linguetta di fotocamera e obiettivo di hugin, hugin è in grado di stimare il -campo inquadrato a partire dai dati immagazzinati nella fotografia dalla fotocamera; è anche in grado di utilizzare l'ottimizzatore nella -linguetta dell'ottimizzatore di hugin per calcolare la distorsione geometrica e nella -linguetta dell'esposizione di hugin per calcolare le correzioni fotometriche. -

    -

    Ritaglio

    -

    Spesso, le foto, contengono delle parti che si desidera scartare; per esempio le foto in -proiezione fisheye presentano un'area circolare al centro con un'inutile area -scura all'esterno; le immagini scansionate presentano dei bordi che devono essere tagliati fuori. -

    La linguetta di ritaglio di hugin permette di applicare delle semplici maschere per escludere -determinate aree dalle proprie foto. -

    -

    Punti di controllo

    -

    hugin crea i panorami facendo corrispondere gli elementi presenti in foto differenti; questi elementi sono -definiti tramite una coppia di punti di controllo. -La linguetta dei punti di controllo di hugin mostra due immagini alla volta e permette -all'utente di inserire manualmente e di modificare un a qualsiasi coppia di punti di controllo. -

    Oltre alla linguetta dei punti di controllo, la -tabella dei punti di controllo -è utilizzata per gestire le coppie di punti di controllo. -

    I punti di controllo possono essere creati automaticamente nella sezione Allinea della -linguetta dell'assistente di hugin o tramite la sezione corrispondenza caratteristiche -della linguetta delle immagini di hugin. -

    -

    Ottimizzatore

    -

    hugin utilizza uno schema di allineamento delle foto in cui vengono corretti l'orientamento e -le impostazioni dell'obiettivo delle foto di partenza fino a ottenere l'allineamento dei punti di controllo; -questo processo prende il nome di ottimizzazione e la linguetta dell'ottimizzatore di hugin -ne permette il controllo. L'utente può creare dei -punti di controllo nella linguetta dei punti di controllo di hugin e gestirli -nella linguetta delle immagini e dalla -tabella dei punti di controllo. -

    -

    Esposizione

    -

    Le foto che compongono un progetto di hugin possono presentare delle differenze di esposizione o di bilanciamento del bianco -sia a causa dei naturali cambiamenti nell'illuminazione, sia per effetto delle impostazioni della fotocamera. -

    La linguetta dell'esposizione di hugin corregge queste variazioni fotometriche -controllando le coppie di foto che si sovrappongono e modellando di conseguenza un sistema di -curva di risposta della fotocamera,esposizione, bilanciamento del bianco -e vignettatura adatto per quel preciso gruppo di foto. -

    Perché questa procedura abbia successo, le foto del progetto devono essere già allineate utilizzando la -linguetta dei punti di controllo per gestire i punti di controllo -e la linguetta dell'ottimizzatore di hugin per quantificare i parametri geometrici. -

    -

    Assemblatore

    -

    Il risultato finale di un progetto di hugin è un file di immagine contenente un panorama. Nell'ultima -linguetta dell'assemblatore di hugin vengono infine impostate le dimensioni e la qualità -dell'immagine finale prima di creare finalmente il panorama. -

    -

    Menu

    -

    File

    -
    • Nuovo, scarta il progetto corrente e aprine uno nuovo vuoto. -
    • Apri un file di progetto esistente di hugin, -PTGUI, PTAssembler, autopano or autopano-sift. -
    • Salva il progetto corrente come un file pto di hugin. -
    • Salva come un file pto con un nome differente. -
    • Scrivi script per PTStitcher, salva un file di progetto semplificato utilizzabile per l'assemblatura in lotto con -PTStitcher, nona o -PTmender. Si noti che nona è in grado di assemblare -un file di progetto di hugin direttamente e quindi questo passo non è necessario quando si utilizza -nona. - -
      • Esegui PTBatcher, avvia l'interfaccia grafica di gestione della coda dell'elaboratore in serie di hugin; la coda non viene elaborata fino a quando il gestore non viene avviato. -
      -
      • Applica modello, permette di assegnare i parametri di un progetto esistente in formato pto all'attuale gruppo di foto. -Vengono trasferiti solamente le posizioni e i parametri dell'obiettivo; i -punti di controllo vengono ignorati. -
      - -
      • Chiudi hugin. -
      -

      Modifica

      -
      • Annulla, annulla i cambiamenti più recenti effettuati nel progetto corrente. -
      • Ripeti, ripete un'operazione annullata. -
      - -
      • Ottimizza, ottimizza di nuovo il progetto corrente. L'effetto che si ottiene è lo stesso che si ha premendo il pulsante Ottimizza ora! -presente nella linguetta dell'ottimizzatore di hugin. -
      • Aggiungi immagine al progetto corrente. -
      -

      Visualizza

      - -

      Aiuto

      - -

      Pulsanti

      -

      Al di sopra della riga delle linguette sono posizionati una serie di pulsanti che permettono di attivare i comandi più comunemente utilizzati: -

      -

      Image:Hugin_filenew.png -Nuovo progetto

      -

      Scarta il progetto corrente e ne avvia uno nuovo vuoto. -

      -

      Image:Hugin_fileopen.png -Apre un progetto

      -

      Apre un progetto esistente di hugin, PTGUI, PTAssembler, -autopano o autopano-sift. -

      -

      Image:Hugin_filesave.png -Salva il progetto

      -

      Salva il progetto corrente in un file .pto di hugin. -

      -

      Image:Hugin_filesaveas.png -Salva il progetto come

      -

      Salva come file .pto con un nome differente. -

      -

      Image:Hugin_undo.png Annulla

      -

      Annulla i cambiamenti più recenti effettuati nel progetto corrente. -

      -

      Image:Hugin_redo.png Ripeti

      -

      Ripete un'operazione annullata. -

      -

      -Image:Hugin_edit_add.png Aggiungi immagine

      -

      Aggiunge un'immagine o una foto al progetto aperto. -

      -

      -Image:Hugin_optimize.png Ri-ottimizza

      -

      ottimizza di nuovo il progetto corrente. L'effetto che si ottiene è lo stesso che si ha premendo il pulsante Ottimizza ora! -presente nella linguetta dell'ottimizzatore di hugin. -

      -

      Image:Gl_preview.png -Anteprima veloce

      -

      Mostra la finestra di anteprima veloce di hugin. -

      -

      -Image:Hugin_preview.png Anteprima panorama

      -

      Mostra la finestra dell'anteprima di hugin. -

      -

      -Image:Hugin_list.png Mostra punti di controllo

      -

      Mostra la tabella dei punti di controllo di hugin. -

      -

      -Image:Hugin_info.png Informazioni su hugin

      -

      Visualizza la finestra delle informazioni su hugin che riporta il numero della versione utilizzata e la lista dei collaboratori. -

      - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Optimizer_tab.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Optimizer_tab.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Optimizer_tab.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Optimizer_tab.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,149 +0,0 @@ - - - - - - - - - - Linguetta dell'ottimizzatore di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Linguetta dell'ottimizzatore di hugin

    -
    - -
    - -

    Hugin utilizza uno schema di allineamento delle foto che prevede la correzione dell'orientamento delle immagini e -delle impostazioni dell'obiettivo delle foto di partenza, fino a ottenere l'allineamento dei punti di controllo; -questo processo prende il nome di ottimizzazione ed è controllato dalla linguetta dell'ottimizzatore di hugin. L'utente generalmente crea dei -punti di controllo nella linguetta dei punti di controllo di hugin, e li manipola -nella linguetta delle immagini di hugin e -nella tabella dei punti di controllo di hugin. -

    Quindi, per allineare delle foto, sono necessari dei punti di controllo; come regola generale, è possibile affermare che più sono numerosi i parametri da -ottimizzare, maggiore dovrà essere il numero di punti di controllo. -

    -

    Ottimizzatore veloce

    -

    Utilizzare la lista a comparsa a fianco della voce ottimizza per selezionare uno degli schemi di ottimizzazzione pre-impostati; premere poi il pulsante -ottimizza per calcolare la migliore corrispondenza. Una tecnica valida, consiste nell'eseguire ogni schema di ottimizzazione in sequenza, partendo da quello -più in alto nella lista, fino a quando non si è soddisfatti del risultato ottenuto. -

    I risultati dell'ottimizzazione forniscono informazioni sulla bontà dell'allineamento; elevate distanze di errore tra i punti di controllo indicano uno -dei seguenti problemi: -

    -
    • alcuni punti di controllo sono posizionati in modo errato; controllare la lista nella -tabella dei punti di controllo di hugin per identificare le coppie di punti a cui è -associata una distanza elevata e controllare se questi sono individuati correttamente (cioè se si riferiscono allo stesso elemento presente in entrambe le immagini); -
    • se i punti sono impostati correttamente, potrebbe essere presente un errore di parallasse causato dal movimento -della fotocamera tra i due scatti. Se così fosse, potrebbe essere necessario decidere per quali elementi della scena è importante mantenere l'allineamento e cancellare -i punti di controllo non relativi a questi nella linguetta dei punti di controllo di hugin; -
    • diversamente non si sta ottimizzando un numero sufficiente di parametri. Per esempio, i dati EXIF recuperati da un file -JPEG potrebbero fornire un valore non accurato del campo inquadrato; in tal -caso sarebbe necessario ottimizzare il parametro vista (v). -
    -

    L'opzione usare solo i punti di controllo tra le immagini selezionate nell'anteprima permette di elaborare esclusivamente una parte delle immagini presenti nel -progetto selezionandole nella finestra dell'anteprima di hugin. Quando si ottimizza dalla -linguetta dell'ottimizzatore di hugin, tutte le immagini nascoste verranno ignorate. -

    Sono forniti i seguenti schemi di ottimizzazione pre-impostati: -

    -

    Posizioni (incrementali, a partire dal blocco)

    -

    Questo è il metodo più semplice ed è probabilmente sufficiente per molti scopi. È ottimizzato esclusivamente l'orientamento relativo delle immagini, mentre i -parametri dell'obiettivo non vengono toccati; il metodo lavora al meglio se una delle seguenti affermazioni è vera: -

    - -

    oppure -

    - -

    Per allineare una qualsiasi coppia di foto, devono essere individuate almeno due coppie di punti di controllo -che le colleghino. -

    -

    Posizioni (y,p,r)

    -

    È equivalente all'impostazione incrementale descritta più sopra, con la differenza che tutti i parametri sono ottimizzati una sola volta; -questo può confondere l'ottimizzatore se le immagini non sono già state approssimativamente posizionate reciprocamente. Non utilizzare questa impostazione. -

    -

    Posizioni e Vista (y,p,r,v)

    -

    Opera come la precedente ma in più è ottimizzato anche il campo inquadrato dell'obiettivo; -utilizzare questa opzione se non si è sicuri del valore del campo inquadrato calcolato dai dati EXIF che accompagnano la foto. -

    Perché questo metodo funzioni correttamente, sono necessari almeno 3 paia di punti di controllo ben -distribuiti per ogni coppia di foto. Con un panorama a 360°, è generalmente utile ottimizzare anche il campo inquadrato, anche se l'obiettivo è già stato -calibrato in precedenza. -

    -

    Posizioni e distorsione barilotto (y,p,r,b)

    -

    È equivalente all'ottimizzazione delle posizioni a cui si affianca un tentativo di identificazione della -distorsione del barilotto introdotta dall'obiettivo. Solo il parametro b dell'intero -modello cdi correzione dell'obiettivo, è interessato da questo schema di ottimizzazione, -dato che esso rappresenta un'approssimazione ragionevole della distorsione di un comune obiettivo. -

    Anche in questo caso sono necessari almeno 3 paia di punti di controllo ben -distribuiti per ogni coppia di foto. -

    -

    Posizioni, vista e barilotto (y,p,r,v,b)

    -

    Come il nome suggerisce, con questo metodo vengono ottimizzati contemporaneamente campo inquadrato e -distorsione del barilotto. -

    -

    Tutto

    -

    Selezionando tutto verrà ottimizzato ogni singolo parametro del modello di correzione -dell'obiettivo; se non sono stati utilizzati una testa panoramica e molti punti di controllo, si potrebbero ottenere dei risultati bizzarri -(più sono i punti di controllo, meglio è). Con questo metodo è possibile eseguire la calibrazione di un obiettivo. -

    -

    I parametri personalizzati sottostanti

    -

    Le opzioni di ottimizzazione pre-impostate sono adatte alla maggior parte delle situazioni, ma a volte può essere necessario passare ai parametri personalizzati. -

    Per esempio, quando si scattano foto panoramiche a mano (senza l'utilizzo di cavalletti o teste panoramiche), alcune delle variazioni di posizione tra gli scatti, -possono essere corrette utilizzando diversi parametri d ed e (relativi allo spostamento centrale immagine) per ogni scatto. Selezionare l'opzione -i parametri personalizzati sottostanti e scegliere i parametri d ed e per l'ottimizzazione. Di default, le impostazione dell'obiettivo sono -condivisi da tutte le foto appartenenti al progetto; andare nella linguetta della fotocamera e -obiettivo di hugin e deselezionare l'opzione collegamento associata alle foto per cui si desidera avere dei valori specifici dei parametri. -

    -

    Orientazione immagine

    -

    La sezione orientazione immagine mostra il numero della foto e i valori (tra parentesi) di orientazione e rotazione relativi a rollio, -inclinazione e imbardata per tutte le foto di partenza; -il riquadro di spunta permette di marcare i parametri da ottimizzare. -

    -

    Parametri obiettivo

    -

    La sezione denominata parametri obiettivo, mostra il numero dell'obiettivo e i parametri (tra parentesi) del -modello di correzione dell'obiettivo per ogni obiettivo presente nel progetto. Sono visualizzati -solamente i parametri marcati come collegati nella linguetta della fotocamera e -obiettivo di hugin. -

    Si noti che, di solito, tutte le foto nello stesso progetto sono assegnate allo stesso obiettivo, e quindi, nella maggior parte dei casi, viene visualizzata -un'unica riga. -

    -

    Modifica script prima dell'ottimizzazione

    -

    Hugin crea un file di script per PTOptimizer che poi viene trasferito alla -libreria dei panorama tools per l'ottimizzazione; attivando l'opzione modifica script prima dell'ottimizzazione, è possibile personalizzare questo file -per ogni ciclo di ottimizzazione. -

    Questa opzione può essere utile solo in casi estremi, quali: -

    -
    • collegare le posizioni delle foto di partenza. Per esempio, le foto in un panorama a più a righe scattate senza un cavalletto, verosimilmente avranno lo stesso -valore del rollio; allo stesso modo, le foto in ogni riga avranno la stessa imbardata. -Questo sarà di aiuto nel caso siano presenti solo pochi dettagli utili all'individuazione dei punti di controllo; -
    • si desidera ottimizzare i parametri g o t di deformazione del modello di -correzione dell'obiettivo per le immagini acquisite con uno scanner; questo è possibile solo modificando il file di script. -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Preferences.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Preferences.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Preferences.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,175 +0,0 @@ - - - - - - - - - - Preferenze di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Preferenze di hugin

    -
    - -
    - -

    Generale

    -

    Utilizzo risorse

    -

    Per rendere più veloce l'utilizzo, hugin conserva una copia in memoria del maggior numero possibile di immagini di partenza. -Con progetti che richiedono molto spazio, verrà utilizzata tutta la memoria del sistema; impostare quindi la memoria cache immagine a un valore inferiore alla -quantità libera disponibile di memoria RAM. Il valore di default è pari a 200MB e dovrebbe essere adatto per un sistema con 512MB di RAM. -

    La finestra dell'anteprima di hugin permette l'utilizzo di più processori (multi-thread) -ed è quindi possibile utilizzare più di una CPU/core se necessario. Impostare il numero di CPU al valore di processori che si intende utilizzare. -

    -

    Interfaccia utente

    -

    Normalmente, hugin utilizzerà le impostazioni locali per determinare il linguaggio di pulsanti, menu ecc... -Impostare il linguaggio se si desidera cambiare provvisoriamente lingua o se si sta utilizzando una piattaforma che non supporta il software localizzato, -quale Windows95. hugin non cambierà immediatamente la lingua, sarà necessario riavviarlo per rendere effettiva la modifica. -

    -

    Opzioni file

    -

    Alcune operazioni eseguite da hugin creano dei file temporanei molto grandi; cambiare il percorso della directory temporanea -per specificare una posizione alternativa per la scrittura di questi file. Una ragione per impostare questa cartella indipendentemente dal sistema operativo -potrebbe essere quella di voler utilizzare un disco RAM per accelerare il processo di assemblatura. -


    -

    -

    Assistente

    -

    La linguetta dell'assistente di hugin, automatizza l'intero processo di creazione del panorama; le -impostazioni in questa finestra permettono di personalizzare l'assistente. -

    -

    Caricamento immagini

    -

    Selezionare allinea automaticamente le immagini dopo il caricamento per far eseguire automaticamente a hugin, il secondo passo denominato -allinea... subito dopo l'avvenuto caricamento delle immagini. -

    -

    Allineamento automatico

    -

    L'allineamento automatico si avvale di autopano-sift o autopano -per generare i punti di controllo tra le coppie di immagini; agendo sul numero dei punti di controllo -per sovrapposizione è possibile impostare il numero dei punti di controllo. Si noti che, anche se la maggior parte delle foto possono essere unite utilizzando -solamente 3 o quattro paia di punti di controllo, i punti generati automaticamente non tendono a essere uniformemente distribuiti, quindi, questo valore, -dovrebbe essere uguale o superiore a 10. -

    La dimensione dell'immagine panoramica è generalmente configurata nella linguetta -dell'assemblatore di hugin dove è anche possibile calcolare la dimensione ottimale sulla basa delle immagini di partenza. Il processo di allineamento -automatico opera in modo simile, però qui è possibile impostare un'immagine finale più piccola di un certo valore in percentuale. -Generalmente impostando una percentuale pari al 70% si ottiene una perdita accettabile di qualità per il modo in cui il CCD di una -fotocamera campiona i dati. -


    -

    -

    Editor punti di controllo

    -

    Visualizzazione HDR e 16bit

    -

    Hugin supporta le immagini sia in HDR che a 16bit. Questi formati d'immagine, contengono -una quantità di gran lunga superiore di informazioni riguardanti la luminosità e il colore, rispetto a quelle che possono essere visualizzate da un normale schermo per -computer; di conseguenza hugin visualizza solamente una rappresentazione approssimativa dell'immagine. -

    I dati a 16bit, possono avere una gamma lineare o corretta. Le immagini lineari appaiono molto scure nella -maggior parte degli schermi, quindi si consiglia di impostare la curva a gamma 2.2. -

    Per i dati HDR, si può provare a impostare la curva a logaritmica. -

    Le modifiche alla visualizzazione HDR e 16bit richiedono il riavvio di hugin per essere rese effettive. -

    -

    Regolazione precisa

    -

    Hugin aiuta automaticamente l'utente a individuare i punti di controllo -con una precisione pari alla frazione di pixel quando: -

    - -

    Le opzioni disponibili in questa sezione sono le seguenti:

    -
    • larghezza zona: l'ampiezza del quadrato di pixel nella foto di sinistra da confrontare con un0'area simile nella foto di destra quando si -individuano i punti di controllo; ridurre questo valore se questa operazione richiede molto tempo sul proprio sistema; -
    • larghezza area ricerca: la percentuale di area della foto di destra in cui si svolge la ricerca quando si individuano i punti di controllo; -ridurre questo valore se questa operazione richiede molto tempo sul proprio sistema; -
    • larghezza area ricerca locale: la regione della foto di destra in cui avviene la ricerca quando si preme il pulsante regolazione precisa presente -nella linguetta dei punti di controllo di hugin o si seleziona la voce regolazione -precisa di tutti i punti dal menu modifica presente nella finestra principale di hugin; -
    • soglia di correlazione: per ogni regolazione precisa, hugin calcola la qualità della corrispondenza fra -punti di controllo; aumentare questa soglia per scartare le corrispondenze incerte; -
    • soglia picco curvatura: attualmente non utilizzata. -
    -

    Ricerca rotazione

    -

    Abilitare questa opzione se le foto: -

    - -


    -

    -

    Autopano

    -

    Hugin si avvale di uno strumento esterno per la creazione automatica dei -punti di controllo di un gruppo di immagini quando: -

    - -

    Premere nella lista a comparsa per utilizzare le impostazioni predefinite di uno dei seguenti strumenti: -

    -
    • Autopano (by A. Jenny), a codice chiuso, disponibile per Linux i386 e Windows 32bit. -
    • Autopano-SIFT (by S. Nowozin), a codice aperto, disponibile per Linux, Windows e OS X. -
    -

    I parametri per questi strumenti possono essere personalizzati o anche ereditati da un altro strumento simile (quale -autopano-sift-C) nella sezione restante. I cambiamenti più comuni potrebbero consistere nel: -

    - -

    Enblend

    -

    Nella fase finale del processo di assemblatura, nona riproietta e deforma le immagini per adattarle; -enblend prende queste immagini come singoli file TIFF e le elabora utilizzando -un sofisticato sistema di posizionamento e unione, che elimina le giunzioni, per creare un singolo file TIFF finale. -

    Abilitare l'opzione usare il programma enblend alternativo per poter utilizzare degli strumenti che forniscono un'interfaccia simile, come -smartblend o enblend-mask. -

    Enblend supporta una serie di argomenti aggiuntivi: -

    -
    • -a: assembla preventivamente le immagini che non si sovrappongono per accelerarne l'unione. Generalmente questa opzione è utile, ma -potrebbe rallentare il processo in alcuni casi; -
    • -l number: numero di livelli da utilizzare (da 1 a 29); a numeri più grandi corrispondono zone di cucitura più larghe. Per esempio, impostando il valore a -1, si otterrà una cucitura larga 2 pixel, con 8 si otterrà una cucitura larga 256 e difficilmente si desidererà avere un numero di livelli superiore a 16; -
    • -z: permette di utilizzare la compressione LZW. Il formato di file TIFF ha un limite di 2GiB (o 4GiB o 8GiB, in funzione -della persona a cui si chiede) così questa opzione sarà utile per i panorami molto grandi; -
    • -b kilobyte: dimensione del blocco cache dell'immagine (default=2MiB); -
    • -c: utilizza l'algoritmo CIECAM02 per la sfumatura dei colori. Le immagini in ingresso devono essere dotate dei -profili di colore perché questa opzione possa funzionare correttamente; -
    • -m megabyte: utilizzare questa quantità di memoria prima di passare su disco (default=1GiB). Aumentare il valore se si dispone di molta memoria nel proprio -sistema; -
    • --fine-mask: abilita la generazione dettagliata della maschera; -
    • --no-optimize: disabilita l'ottimizzazione della maschera. -
    -

    Enfuse

    -

    Se è selezionata la trasformazione dell'esposizione nella linguetta dell'assemblatore di hugin, -allora verrà utilizzato enfuse, per unire le immagini a diverse esposizioni, durante il processo di assemblatura. -

    -

    Celeste

    -

    Spesso un progetto presenta diversi punti di controllo individuati sulle nuvole nel cielo; generalmente questi punti sono indesiderati in quanto le nuvole si muovono -tra una foto e l'altra. Premendo il tasto esegui Celeste, verranno ricercati ed eliminati i punti di controllo nel cielo utilizzando lo strumento denominato "celeste". -


    -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Preview_window.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Preview_window.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Preview_window.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Preview_window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,152 +0,0 @@ - - - - - - - - - - Finestra dell'anteprima di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Finestra dell'anteprima di hugin

    -
    - -
    - -

    hugin fornisce due finestre a comparsa che mostrano un'anteprima del risultato finale assemblato; la differenza -sta nel fatto che la finestra dell'anteprima di hugin mostra un'immagine più accurata ma richiede molto tempo per essere aggiornata, mentre la -finestra dell'anteprima veloce di hugin mostra l'immagine aggiornata praticamente all'istante -ed è dotata di alcune nuove caratteristiche. -

    La finestra dell'anteprima rappresenta una versione in scala minore dell'immagine finale ottenuta salvando un file dalla -linguetta dell'assemblatore di hugin, con alcune differenze: -

    -
    • sono utilizzate delle coppie a bassa risoluzione delle immagini originali, quindi, in alcune aree, potrebbero essere visualizzate delle imperfezioni -che verranno eliminate nell'immagine finale; -
    • le giunzioni non vengono visualizzate; le immagini sono semplicemente sovrapposte inserendo la prima immagine in fondo al gruppo e l'ultima in primo piano; -
    • l'operazione di unione, eseguita da strumenti quali enblend, non è mostrata; -
    • la visualizzazione della luminosità di un'immagine HDR o a 16bit, è modificabile -nelle preferenze di hugin; queste impostazioni non influenzano il processo di assemblatura. -
    -

    La finestra di anteprima mostra il risultato del processo di creazione del panorama con le impostazioni scelte dal programma. Utilizzando i vari pulsanti e schede della -finestra dell'anteprima, queste impostazioni possono essere cambiate a seconda delle proprie preferenze. Questi cambiamenti avranno un effetto sul modo in cui il panorama -finale verrà creato. -

    Quando si sarà soddisfatti del risultato ottenuto nell'anteprima, la finestra potrà essere chiusa. Occorre porre attenzione a non chiudere la finestra dell'anteprima -quando in essa non è visualizzata un'immagine di cui non si è soddisfatti. -

    -

    Pulsanti

    -

    Image:Hugin_center_pano.png Centra

    -

    Questo pulsante trasla orizzontalmente l'immagine finale, cambiando l'inclinazione delle immagini assemblate -in modo che siano centrate rispetto al riquadro dell'immagine finale. Questa funzione è utile se è presente un ampio spazio nero a destra o a sinistra dell'immagine finale. -Premendo questo pulsante si ottiene anche un adattamento equivalente alla funzione eseguita dal pulsante successivo. -

    Si noti che la centratura di un'immagine panoramica in proiezione rettilineare o in -proiezione fisheye, comporta un cambiamento della prospettiva che potrebbe essere non desiderato. -

    -

    Image:Hugin_fit_pano.png Adatta

    -

    Questa funzione non influenza alcun parametro associato alle immagini di partenza; semplicemente riaggiusta il -campo inquadrato dell'immagine finale per comprendere nella cornice tutte le immagini in ingresso. -Se le immagini sono tutte decentrate, rimarrà uno spazio nero in uno dei lati. -

    -

    Image:Hugin_straighten_pano.png Raddrizza

    -

    Il raddrizzamento del panorama ottimizza il rollio e l'imbardata delle immagini di partenza, -senza modificarne la posizione relativa, livellando il panorama. Normalmente, in questo modo, si ottengono dei buoni risultati; se si necessita di un posizionamento più -accurato, si provino ad aggiungere dei punti di controllo verticali -nella linguetta dei punti di controllo di hugin. -

    -

    Image:Hugin_preview_num_transform.png Trasform. num.

    -

    Alla pressione di questo pulsante, verrà aperta una nuova finestra dove sarà possibile inserire una trasformazione numerica per ruotare le immagini di partenza -senza alterarne la posizione reciproca; in pratica viene ruotato l'intero panorama. -

    Inserire dei valori in gradi per rollio, imbardata e -inclinazione; è possibile ri-allineare il panorama premendo i tasti sinistro e destro del mouse direttamente sull'immagine di anteprima, -ma questo metodo non è preciso quanto il precedente. -

    -

    Image:Hugin_preview_auto_update.png Automatico

    -

    Attivando l'opzione automatico, l'anteprima verrà rigenerata ogni volta che qualche parametro del progetto viene modificato. Il processo di aggiornamento può -essere lento se la finestra dell'anteprima è molto grande; è quindi preferibile disattivare l'opzione automatico o, in alternativa, diminuire la dimensione della -finestra. -

    -

    Image:Hugin_reload.png Aggiorna

    -

    Quando l'opzione automatico è disabilitata, l'anteprima non viene rigenerata al variare dei parametri del progetto. Premendo il pulsante aggiorna, -verrà forzata manualmente la rigenerazione. -

    -

    Image:Hugin_preview_show_all.png Tutte

    -

    Come impostazione di default, nella finestra di anteprima, vengono mostrate tutte le immagini di partenza appartenenti al progetto aperto; è comunque possibile visualizzare o nascondere -alcune o tutte le immagini nella sezione denominata immagini visualizzate. Utilizzare il pulsante tutte per ripristinare la visualizzazione di default -in cui vengono mostrate tutte le immagini. -

    -

    Image:Hugin_preview_show_none.png Nessuna

    -

    In analogia al caso precedente, premendo il pulsante nessuna, vengono nascoste tutte le immagini; la funzione è utile se si desidera comporre l'anteprima -una immagine alla volta. -

    -

    Immagini visualizzate

    -

    A ogni immagine di partenza, è associato un pulsante di attivazione, premendo il quale è possibile visualizzare o nascondere l'immagine corrispondente. -

    Inoltre, se è selezionata l'opzione Ottimizza e assembla solo le immagini selezionate nella finestra dell'anteprima nella sezione Varie delle -preferenze di hugin, allora da questa finestra è possibile controllare anche il comportamento della -linguetta dell'ottimizzatore di hugin e della -linguetta dell'assemblatore di hugin. -

    -

    Anteprima

    -

    Il riquadro dell'immagine vero e proprio, visualizza una rappresentazione del panorama finale assemblato; utilizzando le barre di scorrimento è possibile variare -l'angolo inquadrato orizzontale e verticale. -

    Un clic con il tasto sinistro del mouse in questo riquadro, sposterà tutte le immagini, senza cambiarne la posizione reciproca, in modo che il punto -in cui è stato effettuato il clic, diventi il centro del panorama. -

    Un clic con il tasto sinistro del mouse, farà invece ruotare tutte le immagini, senza cambiarne la posizione reciproca, in modo tale che il punto selezionato -sia livellato con la linea centrale dell'orizzonte. -

    -

    Opzioni anteprima

    -

    Proiezione

    -

    La lista a comparsa permette di selezionare la proiezione con cui si desidera visualizzare il panorama finale; la lista è identica a quella riportata nella -linguetta dell'assemblatore di hugin. Per alcuni tipi di proiezione, le barre di scorrimento che -permettono di variare il campo inquadrato, sono disabilitate. Se si riscontrassero dei problemi, si consiglia di -tornare alla proiezione equirettangolare e modificare il campo inquadrato, per poi -riselezionare la proiezione desiderata. -

    -

    Modalità unione

    -
    • La modalità normale mostra semplicemente tutte le immagini selezionate in sequenza. -
    • La modalità differenza mette in evidenza le diversità tra due immagini che si sovrappongono. Se le immagini sono ben allineate, si riscontreranno -poche differenze e la zona di sovrapposizione apparirà , per la maggior parte, nera. -
    -

    Output

    -

    Cambiando qui il valore dell'output, si indicherà a hugin se si intende creare una immagine "low dynamic range" -(LDR) o high dynamic range (HDR) per il panorama finale. Se non si conosce il significato di questi termini, si selezioni -l'opzione LDR dato che è il formato di una normale fotografia; le immagini HDR sono visibili solamente con elaborazioni aggiuntive specialistiche. -

    Selezionando HDR, verrà modificata la visualizzazione dell'anteprima in una vista fotometrica in scala logaritmica; in questo modo -verranno visualizzati alcuni particolari sia delle aree più scure che di quelle più luminose della scena, anche se il contrasto sarà molto basso. -

    -

    EV

    -

    EV è l'abbreviazione del termine Exposure Value che in Italiano significa valore dell'esposizione; premendo il pulsante di Reset, -il valore verrà posto uguale alla media dell'esposizione delle immagini in ingresso oppure, impostandolo a 0 (zero), non verranno applicati cambiamenti -all'esposizione del panorama. -

    L'EV è una scala fotografica standard; ogni aumento o diminuzione di una unità, cambierà l'esposizione dell'equivalente di un f-stop (cioè verrà -dimezzata o raddoppiata l'esposizione). Vale la pena correggere l'esposizione in hugin, invece che farlo in seguito -in un programma di foto ritocco esterno, dato che hugin utilizza la curva di risposta della -fotocamera, calcolata nella linguetta dell'esposizione di hugin, per eseguire le correzioni -in uno spazio colore lineare. -

    Non sempre è desiderabile utilizzare il valore medio dell'esposizione. Se si notano degli artefatti nelle zone luminose del cielo, è possibile impostare il -valore pari al negativo dell'immagine di partenza più scura; di contro, le immagini più luminose saranno influenzate. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Stitcher_tab.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Stitcher_tab.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Stitcher_tab.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_Stitcher_tab.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,186 +0,0 @@ - - - - - - - - - - Linguetta dell'assemblatore di hugin - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Linguetta dell'assemblatore di hugin

    -
    - -
    - -

    L'ultimo passo per la creazione di un panorama con hugin si svolge nella linguetta dell'assemblatore: qui - viene creata l'immagine finale. -

    -

    Panorama

    -

    Qui è possibile impostare la proiezione del progetto; sono disponibili diverse scelte ognuna delle quali -presenta vantaggi e svantaggi: -

    -
    • Rettilineare: è la stessa proiezione di una foto scattata con una comune fotocamera. -Utilizzare questa proiezione se si stanno unendo diverse fotografie scattate con un ristretto campo inquadrato o per -correggere la prospettiva di un singolo scatto; -
    • Panorama: è una semplice -proiezione cilindrica così come viene utilizzata dalle tradizionali fotocamere panoramiche rotanti. -Un'ottima proiezione per stampare un panorama a 360°, anche se si potrebbe preferire la proiezione di Mercatore; -
    • Equirettangolare: il formato adatto a rappresentare un'intera scena sferica. -Copre orizzontalmente un angolo di 360° e comprende anche lo zenit e il nadir; -
    • Fisheye: è la stessa proiezione di una fotografia scattata con un obiettivo grandangolare -fisheye. È migliore di una proiezione rettilineare per rappresentare un ampio campo inquadrato -ma, nella maggioranza dei casi, la proiezione stereografica fornisce una distorsione inferiore rispetto alla proiezione fisheye; -
    • Stereografica: un'immagine fisheye conforme. Gli oggetti in una immagine con -proiezione stereografica, mantengono la stessa forma e mostrano una distorsione inferiore al fisheye puro; -
    • Mercatore: un'immagine cilindrica conforme. È una proiezione adatta alla stampa di -immagini panoramiche a 360°; -
    • Trans Mercatore, un'immagine in proiezione di Mercatore, -ruotata di 90°; utile per visualizzare oggetti di notevole altezza o situati al di sopra della propria testa; -
    • Sinusoidale, una proiezione ad area equivalente per l'intera scena sferica; -
    • Lambert Equal Area Conical; -
    • Lambert Equal Area Azimuthal; -
    • Albers Equal Area Conic; -
    • Miller Cylindrical; -
    • Panini; -
    • Architetturale; -
    • Ortografica; -
    • Equisolida; -
    • Panini equirettangolare. -
    -

    Campo inquadrato

    -

    Sono riportati gli angoli inquadrato orizzontale e verticale dell'immagine finale; premendo il pulsante -calcola campo inquadrato si restringerà o allargherà il campo inquadrato dell'immagine finale per comprendere tutte le immagini di partenza; il pulsante adatta, -presente nella finestra di anteprima di hugin, esegue la stessa identica funzione. -

    Si ricorda che alcune proiezioni hanno un limite del campo inquadrato, in particolare: -

    -
    • le proiezioni rettilineari sono limitate a 180° verticalmente e orizzontalmente; -
    • le proiezioni panoramiche (cilindriche) sono limitate a 180° verticalmente; -
    • le proiezioni stereografiche sono limitate a 360° verticalmente e orizzontalmente; -
    • le proiezioni di Mercatore sono limitate a 360° verticalmente; -
    • le proiezioni trasversali di Mercatore sono limitate a 180° orizzontalmente. -
    -

    Dimensione immagine panoramica

    -

    Permette di definire la larghezza e l'altezza, in pixel, del panorama finale. Premendo il pulsante calcola dimensione ottimale verrà impostata -automaticamente una dimensione tale da ottenere un'immagine finale avente una risoluzione all'incirca corrispondente a quella delle foto di partenza. -

    Alcuni esempi: un'immagine a 3 megapixel ha una dimensione di 2048 x 1536 pixel; la stampa di una immagine nel formato A4 a 300 ppi (pixels per inch = -punti per pollice) avrà una dimensione in pixel di 3500 x 2480; un'immagine in proiezione -equirettangolare, sferica, a pieno schermo, avrà una dimensione di almeno 6000 x 3000 mentre, un'immagine da un gigapixel, ha una dimensione -di 32768 x 32768 pixel. -

    L'interpolazione utilizzata da hugin non si comporta molto bene -con il downsampling (rimpicciolimento di un'immagine), quindi le immagini finali aventi dimensioni inferiori alla metà delle dimensioni ottimali, saranno affette -da artefatti dovuti all'aliasing. Se si desidera creare immagini piccole ma di alta qualità, è consigliabile crearne prima -una versione con dimensioni ottimali in hugin, e rimpicciolirla in seguito utilizzando un programma esterno di grafica quale Gimp. -

    -

    Ritaglio

    -

    Le impostazioni di ritaglio permettono di assemblare solamente una porzione del panorama; può essere utile per varie ragioni: -

    -
    • quando si sta correggendo la prospettiva, delle aree piuttosto estese del panorama -finale possono essere vuote; -
    • i panorami molto grandi, nell'ordine dei "gigapixel", possono essere assemblati in sezioni e poi uniti in seguito. -
    -

    Le aree ritagliate, vengono mostrate come zone oscurate nella finestra dell'anteprima di hugin. -

    -

    Output

    -

    hugin è in grado di salvare delle "normali" immagini assemblate, delle immagini con l'esposizione combinata oppure delle immagini -"high dynamic range" (HDR). -Le opzioni seguenti determinano il tipo di immagine creata e permettono all'utente di conservare le immagini generate durante le fasi intermedie di elaborazione. -

    -

    Normale

    -

    Se è attivata l'opzione panorami trasformati, verrà utilizzato enblend per l'unione delle immagini. -Nel processo finale di assemblatura, nona riproietta e deforma le immagini per adattarle, enblend prende queste immagini -individualmente come file in formato TIFF e le unisce utilizzando un sistema sofisticato di posizionamento e di fusione -delle linee di giunzione. Ulteriori impostazioni relative a enblend, sono reperibili fra le -preferenze di hugin. -

    Abilitare l'opzione immagini rimappate se si desidera conservare le immagini intermedie che enblend utilizza come partenza. Per esempio, -modificando il canale alpha di queste immagini e unendole poi manualmente, è possibile -includere ed escludere persone e oggetti che si sono spostati tra due scatti. -

    -

    Trasformazione esposizione

    -

    Se l'opzione panorami trasformati (enfuse) è abilitata, hugin dividerà le immagini di partenza in gruppi, confrontandone le posizioni -e i valori, espressi in EV, dell'esposizione. Ognuno di questi raggruppamenti di esposizione verrà -elaborato con enfuse e i risultati verranno assemblati in un panorama con enblend; -

    Perché questo avvenga, la stessa scena deve essere fotografata più volte usando la funzione di bracketing -(disponibile in alcune fotocamere) e i valori dell'esposizione devono essere impostati o manualmente nella -linguetta della fotocamera e obiettivo di hugin, o automaticamente dai dati -EXIF oppure ottimizzando l'esposizione nella -linguetta dell'assistente di hugin o -nella linguetta dell'esposizione di hugin. -

    Si noti anche che, a differenza delle opzioni normale e unione in HDR dove l'esposizione delle immagini viene corretta nel processo di rimappamento -delle immagini, la fusione richiede che ogni strato di esposizione sia fornito senza correzioni. hugin si prende cura di questo automaticamente e non applica alcuna -correzione in questa eventualità. -

    Abilitare l'opzione livelli esposizione trasformati per assemblare ogni livello di esposizione in un panorama distinto; utile per la fusione manuale. -

    Abilitare l'opzione immagini rimappate per conservare le immagine intermedie elaborate poi da enblend. -

    -

    Unione in HDR

    -

    Se l'opzione panorama HDR trasformato è attivata, hugin identificherà i raggruppamenti di immagini e creerà nuove immagini HDR rimappate e senza ombre (deghosting) -che verranno poi unite con enblend. -

    Come per l'opzione di trasformazione dell'esposizione descritta più in alto, questa scelta ha senso solamente se la scena è stata fotografata diverse volte -utilizzando la funzione di bracketing (o forcella) dell'esposizione e se i valori, espressi in EV, sono -stati ottimizzati nella linguetta dell'esposizione di hugin. -

    Abilitare l'opzione pila immagini HDR per conservare le immagini HDR rimappate che sono poi inviate a enblend per l'elaborazione. -

    Abilitare l'opzione immagini individuali non unite per conservare una copia di ogni immagine rimappata nello spazio colore lineare prima dei processi di -eliminazione delle ombre (deghosting) e unione (merging) in HDR. -

    Premere infine Stitch now! per generare il panorama finale. Selezionando salva progetto e invia alla coda il progetto corrente verrà inviato -alla coda di assemblatura dell'elaboratore in serie di hugin; la coda non verrà elaborata -se non è in esecuzione il gestore della coda. -

    -

    Elaborazione

    -

    Nona è il rimapattore (motore di assemblatura) predefinito fornito con hugin; -generalmente non è necessario cambiarlo o modificare qualsiasi altra opzione tra quelle descritte in seguito. -

    Premendo il tasto opzioni verrà aperta una finestra in cui è possibile impostare l'interpolatore (i) con cui viene eseguito il campionamento per -l'interpolazione. Probabilmente non si noterà alcuna significativa differenza fra le varie opzioni, se non -una maggiore velocità selezionando Nearest Neighbour (a cui però corrisponde una qualità d'immagine molto bassa). L'impostazione predefinita è Poly3 (bicubic) -che è generalmente la scelta più a adatta per la maggior parte degli utilizzi. -

    I TIFF ritagliati, sono un formato di file che richiede meno spazio ed è più efficiente dato che le parti -inutilizzate dell'immagine non vengono salvate nel file. Si dovrebbero sempre salvare le immagini come TIFF ritagliati, -a meno che non si debbano aprire in un programma che non ne supporta il formato. -

    Enblend è il motore di unione (blender) predefinito in hugin; -normalmente non c'è bisogno di modificarlo. In aggiunta, qui possono essere impostate delle opzioni per la linea di comando (queste possono essere inserite anche -nelle preferenze di hugin per i nuovi progetti). -

    Enfuse è il motore di fusione dell'esposizione (fuse) predefinito; le opzioni sono simili a quelle di -enblend. -

    -

    Formati file

    -

    L'output normale può essere nei seguenti formati: -

    -
    • TIFF con varie opzioni di compressione. Sono supportati i formati a 16bit e 8bit di profondità. -Salvando l'immagine con nessuna compressione, la si renderà compatibile con la maggior parte delle applicazioni; la compressione LZW è comune per -le applicazioni Windows e Mac mentre la compressione Deflate è più utilizzata dagli strumenti dei sistemi Linux. -
    • JPG: compressione spinta per l'utilizzo su web o per le email. La qualità può variare da 0 -(molto bassa, ma si ottengono file di piccola dimensione) e 100 (qualità molto alta, ma file più grandi). Un valore tipico di questa impostazione per l'utilizzo su -web o in email, è compreso tra 70 e 80. -
    • PNG: compressione senza perdite. Sono supportati i formati a 16bit e 8bit di profondità. -
    -

    L'output HDR può essere: -

    -
    • TIFF: con varie opzioni di compressione; -
    • EXR: è un formato per immagini "high dynamic range" che è più compatto rispetto a un high dynamic range TIFF. -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_translation_guide.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_translation_guide.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_translation_guide.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Hugin_translation_guide.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,208 +0,0 @@ - - - - - - - - - - Hugin translation guide - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Hugin translation guide

    -
    - -
    - - -

    Introduction

    -

    This page intends to provide guidance to translators of the Hugin project. Some terminology is very specific or used in a specific way in hugin, making it hard to find a close translation that fits the context of hugin in another language than English. -

    -

    Translation guide for specific terms

    -

    Note to translators, please add your language variant to the term on a new line in the same format as NL=
    Also add your own difficult terms that are not mentioned here.
    -

    Note to developers, please check and enhance the meanings of these terms if they are unclear or incorrect. -

    -
    Custom parameters -
    Meaning=parameters other than standard (+context???) -
    NL=aangepaste parameters -
    -
    bundle -
    Meaning=Seems to be used only on Mac OSX -
    NL=bundle (bundel?) -
    -
    bundled version -
    Meaning=? version distributed with hugin MacOSX bundle? -
    NL=ingebouwde versie (gebundelde versie?) -
    -
    image -
    Meaning= photo, scan, .... -
    ET=pilt -
    NL=afbeelding -
    -
    Stitcher (the tab) -
    Meaning= Where the actual combining of the images is done -
    ET=Ühendaja -
    NL=Samenvoegen (alt: Combineren, Naaien?) -
    -
    grayscale -
    Meaning=monochrome colourspace. Typically grayscale images can have many shades of gray as well as black and white. -
    ET=halltoonid -
    NL=grijsschaal (kan beter!) -
    -
    pyramid image -
    Meaning=This is the practice of creating a stack of successively smaller versions of an image, useful for many image manipulation tasks. -
    NL=piramidale afbeelding -
    -
    mapping -
    Meaning=render to a different projection? -
    NL=translatie, afbeelding, vervorming, projectie? -
    -
    control points -
    Meaning=corresponding areas in two images (or the same image for horizontal and vertical control points) -
    ET=juhtpunktid -
    NL=ijkpunten (was controle punten), IJkpunten bij hoofdletters -
    -
    Druid -
    Meaning=wizard for ease of use, alternative names: Assistant, workflow guide, etc. -
    NL=Druide (kan beter?) -
    -
    Cropped (images) -
    Meaning=image cut smaller than the original size -
    Discussion=Should this be translated? Like Blend, this is jargon, may be clearer when untranslated? -
    ET=kärbitud (pildid) -
    NL=uitgesneden (afbeeldingen) -
    -
    Exposure blending -
    Meaning=Taking a bracketed photo stack and picking the best bits to create a new image. -
    NL=Blend van belichtingen? -
    -
    Photometric Optimisation -
    Meaning=Optimisation of non-mapping image parameters? -
    ET=fotomeetriline optimeerimine -
    NL=fotometrische optimalisatie -
    -
    Photometric Alignment -
    Meaning=Determining relative exposure and vignetting -
    ET=fotomeetriline joondamine -
    NL=fotometrische uitlijning (beter?: fotometrische afstemming) -
    -
    Low Dynamic Range (LDR) -
    Meaning=Luminance values are within a small numeric range (typically 8-bit or 16bit integer) -
    NL=Laag Dynamisch Bereik (LDR) -
    -
    High Dynamic Range (HDR) -
    Meaning=Luminance values are within a large numeric range (typically floating point) -
    NL=Hoog Dynamisch Bereik (HDR) -
    -
    Anchor -
    Meaning=Reference -
    NL=referentie (was anker) -
    -
    Num. Transf. -
    Meaning=Numerical Transform? -
    NL=Num. Transf. -
    -
    Field of View -
    Meaning=Horizontal Angle of view -
    ET=vaateväli -
    NL=beeldhoek -
    -
    flatfield -
    Meaning=An astronomical technique, using a photo taken with the lens covered or of an even white surface to calibrate normal photos -
    NL=flatfield (astrofoto jargon, ook in NL gebruikt) -
    -
    flatfile -
    Meaning=? -
    NL=? -
    -
    Aligning versus Finding control points -
    Problem= they appear to be similar or the same, can they be interchanged? -
    -
    Vertical or Horizontal guide -
    Meaning=Horizontal or Vertical "control points" -
    NL=h/v hulp (suggestie: ijklijnen)? -
    -
    Estimate (position, FoV, etc.) -
    Meaning=? in my book, estimate means an educated guess. I get the impression that a more exact term is intended for hugin. Where can this term be replaced with "calculate" or "determine"? -
    ET=määratlema -
    NL=bepalen (eng:determine), bereken (eng:calculate) alternative suggestion: Schatten (eng:estimate) -
    -
    Camera response (C. r. curve) -
    Meaning=it corresponds with photo-electrical transfer function, and I am not sure can I translate it to "opto-electic curve of camera" in my language, because stright tranlation of "camera response" statement sounds trivial and not clear. -
    PL=krzywa optoelektryczna aparatu? -
    -


    -

    -

    Do not translate:

    -
    • Nona (program name) -
    • Enblend (program name) -
    • Autopano (program name) -
    • Autopano-SIFT (program name) -
    • PTStitcher (program name) -
    • Deflate (zip method) -
    • JPEG (file type) -
    • EXR (HDR file type) -
    -

    Technical translation issues

    -

    Some strings don't appear to be translated, they are apparently generated by the GUI toolkit or the operating system. Most likely they will be in the same language as hugin, because very few people, other than translators, start a program with a specific language other than that of the environment. -

    If you find a source term that isn't correct, spelling or meaning, probably best to bring it up with Pablo d'Angelo or on the hugin mailinglist: [1] -

    -

    List of source string problems

    -
    • approximation of values beetwen source pixels -
    -
    between -
    -
    • calculate highest sensible width. (uses every image pixel) -
    -
    I can translate this literally, but is this even helpful in English? (this is a tooltip for the size calc button in the Stitcher tab) -
    -

    Tips and Tricks

    -

    Running hugin in a specific language

    -

    If you want to run hugin in another language than the default, use the following command (Linux with UTF8): -

    -
    $ LANG=nl_NL.utf8 hugin
    -
    -

    This will start hugin in dutch. Other languages have different names of course, try looking in /usr/share/i18n/locales/. -

    -

    Getting Started on translations

    -

    In general, you need the latest *.po files (or at least the one for the language you want to modify), these are either in the SVN repository or here. -

    To edit the *.po files, use poedit or kbabel, poedit is a cross-platform PO files editor which runs on Mac OS X, Unix and Windows, kbabel runs on any KDE platform. PO files use the ISO 639-1 naming convention. Use that list to name new language versions or ask the developers list for assistance. -

    Submit your edited translation via hugin's patches tracker on sourceforge. -

    NB: When using poedit, editing comments directly in the right pane doesn't work, the text isn't saved into the .po file. To edit comments, use the "edit comment" dialogue from the menu. -

    Here are some basic instructions for different platforms to get started: -

    -

    Linux

    -

    First of all, you need to get the sources, best to get the latest SVN version. See [link to getting hugin from svn] -

    The translation source is in hugin/src/translations and they are files with extension .po. These files can be opened and edited using poedit or kbabel. If poedit is not installed, try installing poedit using your favourite/available package manager or get poedit from sourceforge. -

    After making changes, the new translation must be activated. Either you can copy the *.mo file that poedit created when you saved the file to /usr/local/share/locale/nl/LC_MESSAGES/hugin.mo (substitute your language abbreviation for nl) or hugin source must be rebuilt and installed to see the effect. Rebuilding hugin doesn't have to be a heavy job when you only changed the .po file, the process only updates that part. -

    See above on how to start hugin in a specific language. -

    -

    Mac OS X

    -

    Windows

    -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Interpolation.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Interpolation.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Interpolation.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Interpolation.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,77 +0,0 @@ - - - - - - - - - - Interpolazione - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Interpolazione

    -
    - -
    - -


    -

    - -

    Definizione

    -

    Per creare un panorama, le immagini devono essere modificate nella geometria e quindi devono essere rimappate. Dato che il contenuto dell'immagine è suddiviso in pixel, -questo deve essere spostato in altri pixel. Nella maggior parte dei casi un pixel di destinazione non coincide con quello di partenza, ma ricadrà probabilmente in un -punto intermedio. Il processo attraverso il quale si ottiene il contenuto migliore per l'immagine utilizzando dei punti intermedi, prende il nome di interpolazione. -

    -

    Tipologie

    -

    I Panotools utilizzano differenti tipologie di interpolazione, dalle più veloci ma con scarsa qualità a quelle lente ma precise. Helmut Dersch ha effettuate una prova -comparativa tra le diverse tipologie: [1] Jim Watters ha poi esteso queste prove utilizzando alcuni interpolatori che furono introdotti in seguito e ha aggiunto -alcune informazioni cronometriche: [2] -

    -

    Problemi

    -

    Aliasing

    -

    Se il contenuto dell'immagine viene significativamente ridotto in modo tale che il dettagli originali siano più piccoli della grandezza di un pixel, nell'immagine finale -saranno presenti degli artefatti denominati aliasing. I processori di immagini migliori utilizzano un filtro denominato di "anti aliasing" per scongiurare questo problema. -I Panotools precedenti alla versione 2.7.0.11 non si avvalevano di un tale filtro e quindi non ne era consigliato l'utilizzo per il rimpicciolimento delle immagini. -Le nuove versioni hanno invece dei filtri anti-aliasing; quelli più vecchi creano ancora però dell'aliasing. Consultare l'articolo sull'aliasing per maggiori dettagli. -

    -

    Echi

    -

    Anche se gli interpolatori sinc a grande nucleo (sinc256 e sinc1024) sono nettamente superiori se si hanno dei piccoli dettagli regolari che molto probabilmente -causeranno effetti di moiré, con gli interpolatori meno sofisticati esistono delle limitazioni se si hanno degli spigoli ben definiti. Essi causano degli echi dello spigolo -in ogni direzione. Le immagini di esempio riportate di seguito (ingrandite al 400%) sono state interpolate solo due volte: una rotazione di 5 gradi a sinistra e una -rotazione di 5 gradi a destra. -

    -
    Original
    Originale
    -Poly 3 interpolator -
    Interpolatore "Poly 3"
    -Sinc 256 interpolator -
    Interpolatore "Sinc 256"
    -


    ---Erik Krause 05:59, 6 Luglio 2005 (EDT) -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/JPEG.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/JPEG.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/JPEG.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/JPEG.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - - - - - - JPEG - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    JPEG

    -
    - -
    - -


    -JPEG è un formato per file di immagini che permette di immagazzinarle e distribuirle, ed è prevalentemente utilizzato per le fotografie. -Per una panoramica tecnica dettagliata, si consiglia di consultare la pagina di WikiPedia sul formato JPEG. -

    I file JPEG hanno generalmente un'estensione .jpg. -Se sul proprio sistema non è mostrata l'estensione dei file, si consiglia di attivare la visualizzazione delle estensioni dato che, altrimenti, si avranno delle difficoltà -a modificare e manipolare i file di immagini. -

    Le fotocamere digitali sono impostate, nella maggior parte dei casi, per salvare le fotografie automaticamente in formato JPEG poiché fornisce un buon -compromesso tra qualità e dimensione del file per la maggior parte degli utilizzi comuni. -Il formato JPEG è anche adatto all'invio delle immagini per posta elettronica o alla loro pubblicazione su internet. -

    - -

    Considerazioni relative alla compressione

    -

    Il formato JPEG è con perdita; questo significa che molte informazioni, impercettibili all'occhio umano, vengono scartate. Convertendo l'immagine jpeg in un -altro formato, queste informazioni non verranno recuperate. -

    Sfortunatamente la degradazione può divenire percettibile se un'immagine è manipolata successivamente, quindi, se si intendono produrre immagini in alta qualità, -sarà meglio impostare la fotocamera in modo da salvare le fotografie in un altro formato senza perdita quale TIFF, -RAW o DNG. -

    Esistono poche operazioni con il formato JPEG che possono essere eseguite senza che ne consegua una perdita di qualità: ritaglio, rotazione (ad angoli multipli di -90°), specchiatura e rimozione degli artefatti del CCD quali pixel errati (vedere Jpegpixi). -

    -

    Considerazioni relative ai dati EXIF

    -

    Le fotocamere moderne salvano una grande quantità di informazioni (data e ora, informazioni sull'obiettivo e sull'esposizione, ecc...) direttamente all'interno del file -JPEG sotto forma di dati EXIF. Se si verificano dei problemi, la colpa può essere attribuita a una delle seguenti cause: -

    -
    • la rotazione di una fotografia potrebbe semplicemente cambiare un tag EXIF da -paesaggio a ritratto senza che l'immagine venga modificata. -L'immagine che ne risulta può o non può essere ruotata a seconda del programma utilizzato per la visualizzazione; -
    -
    • la rotazione di una foto può effettivamente ruotare l'immagine senza però cambiarne i dati EXIF in modo adeguato; questo può -causare dei problemi quando uno strumento a interfaccia grafica legge il campo inquadrato dal file. -Per scongiurare questo problema, si consiglia di utilizzare uno strumento come photomolo per effettuare delle rotazioni senza perdite di qualità, permettendo al programma di -modificare i tag EXIF in modo appropriato; -
    -
    • aprire e chiudere una fotografia comporta la perdita di tutti i dati EXIF; in questa eventualità si consiglia di passare a un -programma per immagini diverso. -
    -

    Considerazioni sui colori

    -

    Il file JPEG non sono in formato RGB (cioè non vengono salvati separatamente i canali di rosso, verde e blu). Un'immagine JPEG è generalmente -monocromatica con due canali di colore a bassa risoluzione. -

    Questo comporta che le applicazioni per le quali è rilevante l'integrità del colore, come la correzione dell'aberrazione cromatica, non sono adatte all'utilizzo del formato JPEG. -

    -

    Altre limitazioni del formato JPEG

    -

    Il formato JPEG non supporta i livelli multipli, i canali alfa o -high dynamic range; questo significa che non è molto molto utilizzato come formato per l'elaborazione -intermedia. In questo è meglio utilizzare dei formati di file senza perdita quali PNG, -TIFF, PSD o XCF. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/JPEG"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Landscape.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Landscape.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Landscape.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Landscape.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - - - - - - Paesaggio - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Paesaggio

    -
    - -
    - -

    Orientazione dell'immagine con il lato lungo nella direzione orizzontale generalmente utilizzato per la fotografia di paesaggi (da qui il nome). -

    La maggior parte dei sensori di immagine e delle pellicole, hanno un lato lungo e uno corto. Fotografare un paesaggio, fornisce un -campo inquadrato maggiore in orizzontale e minore in verticale, per ogni singolo scatto. -Per un panorama cilindrico sono necessari meno scatti per un assegnato campo inquadrato se si fotografa un paesaggio; di contro si ottiene una risoluzione inferiore. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Landscape"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Lens_correction_model.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Lens_correction_model.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Lens_correction_model.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Lens_correction_model.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,216 +0,0 @@ - - - - - - - - - - Modello di correzione dell'obiettivo - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Modello di correzione dell'obiettivo

    -
    - -
    - -


    -

    - -

    Modello di correzione dell'obiettivo

    -

    I panorama tools forniscono un modello molto flessibile per correggere gli errori geometrici più diffusi delle lenti. Per di più, sono anche spesso in grado di stimare -i parametri di correzione direttamente dalle immagini del panorama. -

    In totale, i parametri che permettono di correggere un obiettivo, sono 6: -

    -
    • il primo tra tutti è il campo inquadrato (FoV); non si tratta esattamente di un errore, ma di un parametro -che determina la distorsione della prospettiva dell'immagine; -
    • gli effettivi parametri di correzione a, b e c che sono utilizzati per correggere la distorsione a barilotto, la distorsione a cuscinetto e anche la -distorsione ondulata; -
    • i parametri di spostamento dell'obiettivo d ed e che permettono di correggere il decentramento dell'asse ottico dell'obiettivo rispetto al centro -dell'immagine. -
    -

    Due ulteriore parametri, intervengono sugli errori d'immagine che non sono causati da un obiettivo ma, per esempio, da uno scanner o da una fotocamera a scansione: -si tratta dei i parametri di deformazione f e g. -

    -

    campo inquadrato

    -

    La lunghezza focale è una proprietà fisica delle lenti. Insieme alla dimensione effettiva della pellicola (o del -sensore) e alla distanza focale, è possibile ricavare il valore approssimativo del campo inquadrato dell'immagine -(esistono anche altri fattori che lo influenzano). ATTENZIONE: ritagliando un'immagine, se ne varia anche il campo inquadrato. Se si rende necessario ritagliare -le immagini di partenza per la creazione di un panorama, lo si faccia con la stessa dimensione per tutte! -

    Il campo inquadrato insieme alla proiezione dell'obiettivo (rettilineare, -fisheye o cilindrica -per le fotocamere con obiettivi "swing") determinano la distorsione della prospettiva; quest'ultima -diminuisce al diminuire del campo inquadrato. Consultare la pagina [1] di Helmut Dersch per informazioni sulle prospettive in funzione di diversi grandangoli. -

    -

    Parametri a, b e c di distorsione dell'obiettivo

    -

    Per un'ottica della fotocamera perfettamente rettilineare, sarebbe necessario conoscere -esclusivamente il campo inquadrato. Risultati così perfetti possono essere raggiunti semplicemente mappando i pixel dell'immagine sul piano tangente. Gli obiettivi reali -deviano da questa proiezione perfetta sul piano tangente. Le deviazioni spostano i punti fissi nella scena in una posizione diversa rispetto a dove dovrebbero ricadere. -Fortunatamente, invece di essere casuali, le distorsioni si manifestano radialmente rispetto a un centro comune e la loro ampiezza è pressoché identica fissato il valore -della distanza rispetto al centro stesso. Quindi, un modello che corregge questa deviazione in funzione del raggio, fornisce dei buoni risultati. -

    I parametri di distorsione dell'obiettivo a, b e c sono associato a una funzione -polinomiale di terzo grado che descrive la distorsione radiale dell'obiettivo: -

    -
    
r_{src} = ({a}r_{dest}^3+{b}r_{dest}^2+{c}r_{dest}+d)r_{dest}
-
    -

    dove rdest e rsrc -indicano la distanza normalizzata dal centro di un pixel dell'immagine. Il punto centrale da cui è calcolata questa distanza è quello in cui l'asse ottico incontra il -piano dell'immagine: generalmente il centro dell'immagine. Normalizzato significa semplicemente che il cerchio più grande inscritto nell'immagine, ha un raggio pari -all'unità (in altre parole, raggio=1,0 è la metà del lato più corto dell'immagine). Un obiettivo perfetto fornirebbe a=b=c=0,0 e d=1,0 -che equivale a rsrc = rdest. -

    A volte la formula precedente è scritta come -

    -
    
r_{src} = {a}r_{dest}^4+{b}r_{dest}^3+{c}r_{dest}^2+d{r_{dest}}
-
    -

    che è equivalente. -

    Valori tipici per a, b e c sono inferiori a 1,0; nella maggior parte dei casi inferiori a 0,01. Valori troppo elevati indicano che è stato -scelto un tipo errato di obiettivo, per esempio fisheye fisheye invece di rettilineare o viceversa. Naturalmente ci si sta riferendo ai valori assoluti dato che -a, b e c possono essere positivi o negativi (per esempio sia 4,5 che -4,5 sono considerati valori troppo elevati). -

    Il quarto parametro (d) è disponibile solamente nel filtro di correzione dello spostamento radiale del plugin dei Panorama Tools. Questo parametro controlla -la dimensione dell'immagine risultante ed è calcolato implicitamente da pano12 (utilizzato da PTOptimizer, PTStitcher e dalle -interfacce grafiche) al fine di mantenere le stesse dimensioni d'immagine: -

    -
    d = 1 − (a + b + c) -
    -

    Questo parametro non è quindi disponibile nelle diverse interfacce grafiche (è possibile trovarlo nello script creato da PTOptimizer). -

    Sfortunatamente esiste un altro parametro, denominato anch'esso d, che si riferisce allo spostamento dell'immagine negli script di PTStitcher, PTOptimizer -e nelle interfacce grafiche. Questo causa a volte confusione (vedere l'approfondimento nel seguito). -

    L'approccio polinomiale così come è stato descritto, non è mai esatto ma fornisce una buona approssimazione del reale comportamento di uno specifico obiettivo. -Se si necessita di correzioni più precise, si consiglia l'utilizzo di una matrice di distorsione, come quella utilizzata da Distortion Remove (vedere il collegamento -più sotto). -

    -

    Distorsione dell'obiettivo e proiezione fisheye

    -

    A differenza degli obiettivi rettilineari, quelli fisheye non seguono la geometria del piano tangente; presentano invece delle distorsioni incorporate e progettate -per raggiungere degli ampi campi inquadrati. I parametri di distorsione radiale dell'obiettivo, sono utilizzati allo stesso modo sia per le lenti fisheye, sia per quelle -rettilineari, ma non dovrebbero mai essere utilizzati interscambiabilmente (cioè per mappare un'immagine rettilineare in una fisheye e viceversa). -Questo avviene selezionando la proiezione di partenza e quella di destinazione in modo appropriato. La geometria della proiezione fisheye, segue una funzione trigonometrica -che varia rapidamente e che può essere essere approssimata con difficoltà da un polinomio di terzo grado. -

    Per le proiezioni fisheye, i parametri di correzione dell'obiettivo intervengono sulla deviazione tra una lente reale e la geometria ideale della proiezione fisheye. -

    -

    Parametri di decentramento d ed e dell'obiettivo o dell'immagine

    -

    A volte, può accadere che obiettivo e sensore non siano centrati l'uno rispetto all'altro. In questa eventualità, l'asse ottico non ricade nel centro dell'immagine. -Questo è particolarmente frequente per le immagini acquisite con uno scanner e per le quali non è dato di sapere se la carta è centrata o meno nell'apparecchio. -

    Se il precedente algoritmo di correzione è utilizzato per immagini di quest'ultimo tipo, sia la correzione dell'obiettivo, sia la correzione della prospettiva, -agiscono sul centro sbagliato. I parametri di decentramento d (spostamento orizzontale) ed e (spostamento verticale) compensano il problema; essi rappresentano -il valore, espresso in pixel, che indica lo spostamento del centro di correzione rispetto al centro geometrico dell'immagine. -

    -

    Parametri di deformazione g e t

    -

    La deformazione dell'immagine non è una distorsione dell'obiettivo ma fa comunque parte del modello di -correzione dell'obiettivo fornito dai panotools: agisce sulla distorsione indotta da scanner o da fotocamere a scansione che causa la deformazione a parallelogramma (un -lato dell'immagine è spostato parallelamente a quello opposto) un'immagine rettangolare. -

    -

    Calcolo della correzione dell'obiettivo

    -

    Le grandezze a, b, c e FoV rappresentano delle proprietà fisiche di un obiettivo o di una combinazione di fotocamera e obiettivo -a una specifica distanza di messa a fuoco. Se si scatta sempre con le stesse impostazioni della messa a fuoco, per esempio a infinito o alla -distanza iperfocale, allora è possibile riutilizzare tranquillamente i parametri. -A diverse impostazioni della messa a fuoco, il FoV varia notevolmente, ma in genere è comunque possibile riutilizzare i parametri a, b e c. -

    Esistono diversi metodi per determinare i parametri a, b, c e il fov per una particolare combinazione di -obiettivo e fotocamera: -

    -
    • scattando una foto singola di un oggetto che possiede delle linee rette, definendo poi una o più coppie di punti di controllo su linea retta (tipo t3, t4, ecc...), e ottimizzando solamente i parametri a, b e c. -È necessario impostare il formato di output in proiezione rettilineare perché questa tecnica -funzioni. Tale metodo è utilizzato dall'autore di PTLens; -
    - - -
    • utilizzando uno strumento come PTLens o clens per leggere i dati EXIF dal file JPEG -e correggere automaticamente l'immagine recuperando i valori associati all'obiettivo in un database esistente. -
    -

    Ottimizzare la correzione dell'obiettivo

    -

    Se si ottimizzano dei parametri al fine di calibrare un obiettivo, occorre avere bene in mente le seguenti considerazioni: -

    dato che i parametri per la correzione dell'obiettivo sono determinati stimando la distorsione per diversi valori del raggio, è necessario fornire un -numero sufficiente di punti di controllo a una distanza piuttosto elevata rispetto al centro dell'immagine. -

    -
    • Se si utilizza un elemento rettangolare o delle linee rette per questo scopo, assicurarsi di aver individuato i punti di controlli a diverse distanze dal centro. -
    • Se si utilizzano due o più immagini, assicurarsi di sovrapporre le regioni che sembrano avere la maggiore distorsione (per esempio gli angoli) -con le regioni che sembrano avere la minore distorsione (per esempio il centro). Una semplice sovrapposizione in orizzontale dovrebbe essere sufficiente, ma si consiglia di -prevedere almeno il 50% di sovrapposizione in modo che la parte centrale di un'immagine corrisponda al bordo di quella adiacente. -
    -

    I parametri a, b e c influenzano il campo inquadrato, in particolar modo per le immagini -nell'orientamento in stile paesaggio. Questo accade anche se il calcolo implicito del quarto parametro del polinomio tenta di conservare le stesse dimensioni dell'immagine -dato che è possibile solamente per il raggio r_src = 1,0. -

    Al di fuori di questo raggio, specialmente agli angoli dell'immagine, la dimensione, e quindi il campo inquadrato, può essere diversa. Dato che sono -correlate in questo modo, si dovrebbe sempre ottimizzare anche il FoV, quando si ottimizzano a, b e c con più di una immagine (non è possibile ottimizzare -il FoV con una sola immagine). Come già detto in precedenza, è necessario un panorama completo a 360° per ottenere una misura accurata del campo inquadrato. -

    I parametri a e c controllano delle forme più complesse di distorsione. Nella maggioranza dei casi è sufficiente ottimizzare solamente il parametro -b, che è utile alla correzione della distorsione a barilotto e a cuscinetto. -

    Se si desidera conoscere come sia influenzata la correzione della distorsione dalla variazione dei parametri, si consiglia di recarsi a questo indirizzo internet -http://www.4pi.org/downloads/ e di scaricare il file abc.xls; le macro all'apertura del documento non devono essere disattivate. -

    Consultare anche la pagina sulla distorsione a barilotto di Helmut Dersch. -

    Esiste un'ottima guida su come ottimizzare creata da John Houghton: [2] -

    -

    Strumenti per correggere la distorsione a barilotto e a cuscinetto

    -
    • PTStitcher può essere programmato per elaborare in serie le immagini con dei parametri a, b e c noti. -Può anche essere utilizzato con una delle varie interfacce grafiche. -
    - -
    • Il plugin per Gimp o Photoshop del filtro di correzione dello spostamento radiale dei Panorama Tools utilizza gli stessi parametri a, b e c di -PTStitcher. Si noti che non riconosce i parametri d ed e di spostamento e che utilizza invece "d" come un fattore di scala -globale, che dovrebbe essere d = 1-(a+b+c) per mantenere l'immagine approssimativamente nella stessa scala. Se è necessario spostare il centro di correzione come per i -parametri d ed e, è necessario combinarlo con il valore del decentramento Verticale e/o orizzontale. -
    -
    • PTLens è un plugin di Photoshop e uno strumento indipendente per Windows che utilizza gli stessi parametri a, b e c e comprende un database degli obiettivi più diffusi. -
    -
    • Clens è una versione a linea di comando di PTLens. -
    - -
    • PTShift determina diversi parametri a, b e c per ognuno dei tre canali di colore in modo da correggere l'aberrazione cromatica con il filtro di correzione dello spostamento radiale. -
    -
    • Il plugin di Gimp "wideangle" utilizza una formula completamente diversa per correggere la distorsione. -
    -
    • Il plugin di Gimp "phfluuh" è un altro strumento che corregge la distorsione di un obiettivo utilizzando un'altra formula ancora. -
    -
    • CamChecker è uno strumento che permette di determinare la distorsione dell'obiettivo e di creare un gruppo diverso di parametri da qualsiasi altra cosa. -
    -
    • zhang_undistort è uno strumento distribuito con hugin che utilizza i parametri di CamChecker per correggere la distorsione. -
    -
    • Distortion Remove utilizza un approccio completamente differente avvalendosi di una matrice di distorsione. Pagina con testo solo in -tedesco: http://www.stoske.de/digicam/Artikel/verzeichnung.html -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Lens_distortion.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Lens_distortion.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Lens_distortion.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Lens_distortion.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - - - - - Distorsioni dell'obiettivo - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Distorsioni dell'obiettivo

    -
    - -
    - -


    -Le lenti reali non non proiettano in modo geometricamente esatto una scena su una pellicola su un sensore; nella maggior parte dei casi l'immagine è distorta in un modo -o nell'altro. Esistono tre tipi comuni di distorsione: -

    -
    • distorsione a barilotto la quale causa la piegatura verso l'esterno delle linee rette al di fuori -del centro dell'immagine (come un barile); -
    • distorsione a cuscinetto che causa la piegatura verso l'interno delle linee rette al -di fuori del centro dell'immagine (come un cuscino); -
    • distorsione ondulata, che è una combinazione delle due precedenti; è principalmente il risultato -di una correzione ottica incompleta di una delle precedenti distorsioni. Ne esistono due sotto tipi: -
      • con distorsione a barilotto nel centro dell'immagine e a cuscinetto nelle zone esterne ("distorsione a bolla"); -
      • con distorsione a cuscinetto nel centro dell'immagine e a barilotto nelle zone esterne. -
      -
    -

    Il modello di correzione dell'obiettivo dei panotools è in grado di correggerli tutti. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/license.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/license.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/license.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/license.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,484 +0,0 @@ - - - - -GNU General Public License v2 - GNU Project - Free Software Foundation (FSF) - - - -

    GNU GENERAL PUBLIC LICENSE

    -

    -Version 2, June 1991 -

    - -
    -Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
    -51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
    -
    -Everyone is permitted to copy and distribute verbatim copies
    -of this license document, but changing it is not allowed.
    -
    - -

    Preamble

    - -

    - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. -

    - -

    - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. -

    - -

    - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. -

    - -

    - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. -

    - -

    - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. -

    - -

    - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. -

    - -

    - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. -

    - -

    - The precise terms and conditions for copying, distribution and -modification follow. -

    - - -

    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

    - - -

    -0. - This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". -

    - -

    -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. -

    - -

    -1. - You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. -

    - -

    -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. -

    - -

    -2. - You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: -

    - -
    -
    -
    - a) - You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. -
    -
    -
    - b) - You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. -
    -
    -
    - c) - If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) -
    -
    - -

    -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. -

    - -

    -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. -

    - -

    -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. -

    - -

    -3. - You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: -

    - - - - -
    -
    -
    - a) - Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, -
    -
    -
    - b) - Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, -
    -
    -
    - c) - Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) -
    -
    - -

    -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. -

    - -

    -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. -

    - -

    -4. - You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. -

    - -

    -5. - You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. -

    - -

    -6. - Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. -

    - -

    -7. - If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. -

    - -

    -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. -

    - -

    -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. -

    - -

    -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. -

    - -

    -8. - If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. -

    - -

    -9. - The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. -

    - -

    -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. -

    - -

    -10. - If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. -

    - -

    NO WARRANTY

    - -

    -11. - BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. -

    - -

    -12. - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. -

    - -

    END OF TERMS AND CONDITIONS

    - -

    How to Apply These Terms to Your New Programs

    - -

    - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. -

    - -

    - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. -

    - -
    -one line to give the program's name and an idea of what it does.
    -Copyright (C) yyyy  name of author
    -
    -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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    -
    - -

    -Also add information on how to contact you by electronic and paper mail. -

    - -

    -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: -

    - -
    -Gnomovision version 69, Copyright (C) year name of author
    -Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
    -type `show w'.  This is free software, and you are welcome
    -to redistribute it under certain conditions; type `show c' 
    -for details.
    -
    - -

    -The hypothetical commands `show w' and `show c' should show -the appropriate parts of the General Public License. Of course, the -commands you use may be called something other than `show w' and -`show c'; they could even be mouse-clicks or menu items--whatever -suits your program. -

    - -

    -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: -

    - - -
    -Yoyodyne, Inc., hereby disclaims all copyright
    -interest in the program `Gnomovision'
    -(which makes passes at compilers) written 
    -by James Hacker.
    -
    -signature of Ty Coon, 1 April 1989
    -Ty Coon, President of Vice
    -
    - -

    -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the -GNU Lesser General Public License -instead of this License. -

    - diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/MatchPoint.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/MatchPoint.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/MatchPoint.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/MatchPoint.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,136 +0,0 @@ - - - - - - - - - - MatchPoint - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    MatchPoint

    -
    - -
    - - -

    Introduzione

    -

    MatchPoint è un individuatore di punti di controllo di nuova generazione: è il risultato del GSoC2007. Attualmente permette l'individuazione dei soli punti chiave ma -non della corrispondenza (questa faceva parte del progetto GSoC 07 ma non è stata sviluppata) e può essere utilizzato solamente come sostituto per le chiavi generate da -autopano-sift o autopano-sift-C. -

    La versione corrente di Matchpoint può essere reperita attraverso il progetto hugin. -

    Lo scopo di MatchPoint è quello di creare una serie completa di applicativi per i punti di controllo che verrà poi utilizzata da -hugin come sostituto (o almeno come alternativa) dell'applicativo utilizzato attualmente e cioè autopano. -

    Se si desidera utilizzare fin d'ora MatchPoint nel processo di creazione delle immagini panoramiche (anche se tutte le funzioni non sono ancora state implementate) -sarà necessario utilizzare anche autopano-sift. -

    Utilizzo:
    -// estrarre gli elementi dalla prima immagine e salvarli nel file image1.key:
    -MatchPoint imamagine1.jpg immagine1.key -

    // per la seconda immagine:
    -MatchPoint immagine2.jpg immagine2.key -

    // fare ricercare da autopano le corrispondenze tra i due file appena generati:
    -autopano project.pto immagine1.key immagine2.key -

    // aprire poi il file di progetto in hugin:
    -hugin project.pto -

    -

    Utilizzo da linea di comando

    -

    Utilizzo:
    -

    -
    MatchPoint [opzioni] immagine1.jpg output.key

    -
    -

    Parametri: -

    -
    -v
    output prolisso -
    -t
    genera i file dei punti chiave (keypoint) per la suite di test di matlab (il nome del file è generato in questo modo: immagine1.jpg.key) -
    -

    Argomenti: -

    -
    immagine1.jpg
    percorso dell'immagine da analizzare. -
    output.key
    file dei punti chiave di output. -
    -

    Descrizione dell'algoritmo

    -

    Integrali delle immagini

    -

    Prima del processo di identificazione delle corrispondenze, le immagini vengono integrate. Ogni elemento pixel (x,y) dell'immagine integrata, rappresenta la somma dei -pixel da (0,0) a (x,y) dell'immagine di partenza. Questo processo rende più veloce il calcolo della somma di una regione. Inoltre, la convoluzione a qualsiasi scala -ha la stessa complessità temporale. Questa parte è necessaria solamente quando si utilizzano dei riquadri come filtri per l'individuazione delle corrispondenze. -

    -

    Individuazione degli elementi

    -

    I punti vengono identificati avvalendosi dell'Hessian Detector e utilizzando dei filtri a riquadro. Di seguito è riportata una descrizione cronologica del processo di -individuazione delle corrispondenze. Probabilmente non è completamente identica al processo effettuato dal codice di calcolo dato che alcune parti avvengono simultaneamente -(per esempio i primi due passi). -

    Convoluzione dei pixel
    -La convoluzione di un pixel a una certa scala è effettuata tramite l'approssimazione della funzione Gaussiana bidimensionale; questo processo prende il nome di individuazione -con filtro a riquadro (box filter detection). Ogni nucleo ha 4 filtri di convoluzione (3 di essi sono unici - i filtri xy e yx sono gli stessi). Il valore risultante è poi -determinante per la matrice Hessiana in cui gli elementi rappresentano i valori dei 4 filtri. -

    Le dimensioni del nucleo per la convoluzione sono:
    -9,15,21,27, (1^ ottava)
    -15,27,39,51, (2^ ottava)
    -21,45,69,93 (3^ ottava)
    -

    MatchPoint è in grado di effettuare la convoluzione in due modi: -

    -
    • box filter: più veloce ed è il metodo preferibile -
    • sliding window (implementata perché conveniente ma necessita di prove): più lenta, più accurata ma più sensibile al rumore -
    -

    Ricerca del massimo
    -Per ottenere l'invarianza di scala, l'individuazione deve trovare il massimo del determinante dell' Hessiana tra le varie scale. Per farlo, sono state introdotte le ottave. -Le ottave sono interpolazioni di determinanti a varie scale (generalmente due). MatchPoint offre l'individuazione con un massimo di 3 ottave (impostando un parametro). -Per esempio, la prima ottava può essere individuata alla scala 1,6 (=((9+15/2)*1,2)/9 dove 1,2 è la scala iniziale e 9 è la dimensione iniziale del nucleo) o -3,2 (=((21+27/2)*1,2)/9. La scala principale dei punti chiave è poi selezionata in accordo al valore maggiore del determinante dell'Hessiana. -

    Selezione dei punti
    -

    Il passo successivo consiste nel selezionare i punti con elevati valori del determinante (senza tener conto della scala con cui i punti sono stati individuati) -che rappresentano i punti chiave invarianti e che saranno utilizzati per le successive elaborazioni. Questo si ottiene utilizzando una soglia fissa che dovrebbe essere -impostata bassa (diversamente potrebbe capitare che non venga individuato alcun punto). -

    Poi viene applicata la soppressione dei non massimi (sono selezionati solo i punti con un massimo locale dei determinanti). -

    A questo punto si è ottenuta una lista di punti di lunghezza variabile, dato che la soglia del passo precedente è fissata nel codice. In questo modo si possono -avere anche più di 200.000 punti, per le immagini più grandi, che sono chiaramente troppi (indipendentemente dalla dimensione dell'immagine, è necessario lo stesso numero -di punti di controllo per tutte le immagini; almeno 3 punti di controllo per ogni sovrapposizione), quindi la lista deve essere ridotta al di sotto di 10.000 punti -(questo numero è scelto intuitivamente ed è basato sul tempo impiegato). (Nota: si tratta ancora di un progetto in lavorazione). -

    -

    Descrizione dell'elemento

    -

    Assegnazione dell'orientamento
    -L'invarianza di scala è ottenuta assegnando assegnando l'orientamento principale del punto di interesse utilizzando un algoritmo speciale proposto da Herbert Bay. L'efficienza -di questo algoritmo non è ancora stata testata, quindi l'eseguibile di MatchPoint non utilizza alcuna assegnazione dell'orientamento. -

    Shape Context descriptors
    -Un descrittore a 36 elementi è assegnato a ogni punto di interesse. Gli elementi di questi descrittori sono organizzati in accordo al "Shape Context descriptor" proposto da -S. Belongie, J. Malik and J. Puzicha e adattato da K. Mikolajczyk allo scopo dell'individuazione dei punti di controllo. -

    Passi nella creazione dei descrittori: -

    -
    1. individuazione degli spigoli nell'intorno del punto di interesse (la dimensione della regione dipende dalla scala a cui il punto è stato individuato). MatchPoint -utilizza le API di vigra (individuazione degli spigoli Canny) per questo scopo; -
    2. sulla base delle posizioni relative degli elementi di spigolo viene creato un istogramma con 36 valori. Usare i valori log-polar. Il contributo del punto -di spigolo all'istogramma è basato sulla sua magnitudine e orientamento. -
    -

    Consultare gli articoli di riferimento per maggiori dettagli. -

    -

    Riferimenti

    -
    • Speeded Up Robust Features - SURF -
    • Matlab suite per le prove, articoli per l'individuazione, descrizione e valutazione di K. Mikolajczyk -
    • Shape Context descriptors -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/MatchPoint"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nadir.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nadir.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nadir.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nadir.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,63 +0,0 @@ - - - - - - - - - - Nadir - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Nadir

    -
    - -
    - -

    Il nadir è -il punto direttamente sotto all'osservatore o alla fotocamera (impostare un valore di inclinazione pari a -90° nei PanoTools). -Il punto opposto (al di sopra) prende il nome di zenit e a esso è associato un valore -dell'inclinazione pari a +90°. L'orizzonte o equatore è fra questi due punti e ha un'inclinazione di 0°. -

    Il nadir è ridotto a una linea nella proiezione equirettangolare, rendendone -difficile la modifica. Comunque, può essere estratta una vista rettilineare per modificarlo più -semplicemente. -

    Il nadir crea generalmente più problemi rispetto allo zenit, perché o è presente un cavalletto o vi sono degli errori di -parallasse da rimuovere. Gli oggetti al nadir tendono a essere più vicini all'obiettivo e quindi gli errori -saranno più visibili in questa porzione della foto. Un metodo per risolvere questi problemi consiste nell'utilizzare tripod caps. -

    -

    Articoli correlati

    -
    • Assemblare le foto del nadir -
    • Aggiungere un nadir cap (sfera a specchio) -
    • Aggiungere un logo con testo al nadir -
    • Come utilizzare enblend per correggere le foto di zenit e nadir -
    • Modificare zenit e nadir con PTGui -
    • Modificare zenit e nadir con il filtro Adjust -
    • Panoramica sulla modifcia di zenith e nadir -
    • Utilizzare enblend per riempire il "buco nel pavimento" -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Nadir"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nodal_Point.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nodal_Point.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nodal_Point.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nodal_Point.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - - - - - - Punto nodale - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Punto nodale

    -
    - -
    - -


    -

    -
    1. Reindirizzato a punto a parallasse nulla -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Nodal_Point"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nona_gui.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nona_gui.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nona_gui.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nona_gui.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,47 +0,0 @@ - - - - - - - - - - Nona gui - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Nona gui

    -
    - -
    - -

    nona_gui è una versione dell'assemblatore nona con un'interfaccia grafica. Presenta gli stessi -pulsanti, le stesse finestre e le stesse barre di progressione presenti nella versione per Windows di PTStitcher; -quindi, in linea di principio, può essere utilizzato come sostituto per PTStitcher quando si utilizza -PTGui, PTAssembler o una delle altre interfacce grafiche per Windows. -

    nona_gui è distribuito con hugin. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Nona_gui"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nona.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nona.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nona.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Nona.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ - - - - - - - - - - Nona - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Nona

    -
    - -
    - -

    nona è un sostituto di PTStitcher ed è parte di Hugin. -Ne esiste una versione, denominata nona_gui, che fornisce le stesse finestre di dialogo presenti nella versione per Windows -e Mac di PTStitcher. -

    -

    Vantaggi

    -
    • A differenza di PTStitcher, nona rende completamente disponibile il proprio codice sorgente, questo -significa che può essere utilizzato su varie piattaforme quali OS X, Linux x86_64, linux powerpc, Solaris e IRIX. -
    • Quando si imposta l'output a TIFF ritagliato, nona non esegue dei calcoli di trasformazioni -impegnativi per le aree inutilizzate dell'immagine finale. Per i panorami costituiti da molte fotografie questa opzione può accelerare sensibilmente le operazioni. -
    • nona implementa la correzione di vignettatura, bilanciamento del bianco, luminosità e -curva di risposta della fotocamera al momento dell'assemblatura. -
    • nona è in grado di utilizzare la tecnologia multi-thread che permette di sfruttare tutti i processori disponibili. -
    • nona supporta le immagini HDR sia per l'input che per l'output. -
    • nona può unire immagini low dynamic range a 8bit scattate a forcella in un output HDR. -
    -

    Svantaggi

    -

    (Nota: questa è la situazione a Maggio 2007, correggere questa pagina se la situazione è cambiata) -

    -
    • il morph per l'adattamento dei punti di controllo non è supportato; -
    • non supporta, per ora, l'opzione di trasformazione rapida aggiunta a pano12 da Fulvio Senore; -
    • non supporta i filtri adattivi anti-aliasing aggiunti a pano12-2.7.0.11. -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Nona"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/No-parallax_point.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/No-parallax_point.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/No-parallax_point.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/No-parallax_point.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - - - - - - Punto a parallasse nulla - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Punto a parallasse nulla

    -
    - -
    - -


    -Se la fotocamera viene ruotata rispetto a un punto qualsiasi, le immagini catturate potrebbero mostrare degli errori di parallasse -ed essere difficili da assemblare. -

    Per la maggior parte degli obiettivi, esiste un punto particolare attorno al quale è possibile ruotare la propria fotocamera evitando gli errori di parallasse. -Questo particolare "punto a parallasse nulla" è il centro della pupilla di ingresso dell'obiettivo, un'apertura virtuale all'interno dell'obiettivo. -Nel mondo della fotografia panoramica, questo particolare punto è spesso chiamato "punto nodale", ma non ha in effetti alcuna relazione con i veri punti nodali -dell'obiettivo.1,2 I veri punti nodali sono altri punti sul -percorso ottico, che non hanno alcun significato particolare per la maggior parte delle applicazioni fotografiche. Il punto a parallasse nulla rappresenta anche il "centro -della prospettiva", ma questa definizione non è utilizzata comunemente e non descrive il perché il punto a parallasse nulla è così importante. -

    La pupilla di ingresso è l'immagine dell'apertura limite del diaframma, vista attraverso la parte anteriore dell'obiettivo. -L'immagine può apparire ingrandita dall'effetto degli elementi ottici dell'obiettivo che ha di fronte e può essere spostata rispetto all'effettiva posizione dell'apertura. -È proprio rispetto al centro di questa immagine che la fotocamera dovrebbe essere ruotata per eliminare gli errori di parallasse. La pupilla di ingresso -è importante per un altro motivo: il numero "f" di un obiettivo rappresenta il rapporto tra la lunghezza focale e il diametro della pupilla di ingresso -(e non il diametro fisico dell'apertura all'interno della fotocamera). -

    Alla luce di queste considerazioni, il miglior termine per descrivere il punto a parallasse nulla è proprio "punto a parallasse nulla"!. "Pupilla di ingresso" è -corretto, anche se impreciso per un purista della geometria; è un termine utile da ricercare nella letteratura ed è preferito nella scrittura formale. Il "punto nodale" è -comunemente utilizzato, ma non è corretto e può indurre confusione. Dovrebbe essere evitato nella scrittura e interpretato con cautela nella lettura dei testi. -

    Indipendentemente da come lo si chiami, il punto a parallasse nulla può essere trovato semplicemente per tentativi: occorre solamente correggere il punto di rotazione -in modo che i punti in primo piano e sullo sfondo rimangano allineati. -

    Alcuni obiettivi, in particolare quelli fisheye, non hanno un singolo punto a parallasse nulla; posseggono invece un gruppo di quelli che potremmo chiamare -"punti a parallasse minima" che dipendono dall'angolo a cui si trovano rispetto all'asse dell'obiettivo. Questi obiettivi sono facilmente riconoscibili: è sufficiente -guardare attraverso l'obiettivo dalla parte anteriore e osservare che la posizione della pupilla di ingresso si sposta avanti e indietro ruotando l'obiettivo. -Con questo tipo di obiettivo, è consigliabile scegliere un angolo a cui si desidera assemblare le foto e ruotare la fotocamera attorno a un punto che fornisce un errore di -parallasse nullo per quello stesso angolo. -

    Per facilitare l'individuazione del punto a parallasse nulla a favore degli altri utilizzatori, è possibile inserire le misure utilizzate per la propria combinazione -di fotocamera, obiettivo e lunghezza focale nel database delle pupille di ingresso. -

    -

    Vedere anche

    -
    • Adattatori per punto nodale -
    • Database delle pupille di ingresso -
    -

    Riferimenti

    -
    1. Kerr, Douglas A. "The Proper Pivot Point for Panoramic Photography" The Pumpkin (2005). Accessed 2007-01-14. -
    2. van Walree, Paul "Misconceptions in photographic optics", Item #6. Accessed 2007-01-14. -
    -

    Collegamenti

    -
    • Rik Littlefield, teoria del punto "a parallasse nulla" nella fotografia panoramica -
    • Esempio pratico di panorama di Big Ben: determinare il punto nodale di un obiettivo. -
    • Kaidan, come trovare il punto nodale della propria fotocamera. -
    • Alain Hamblenne, The Grid -
    • Michel Thoby, posizione particolare del punto nodale per l'obiettivo SIGMA 8mm f:4, che descrive un approccio interessante che si avvale di un puntatore laser. -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/NPP.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/NPP.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/NPP.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/NPP.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - - - - - - Punto a parallasse nulla - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Punto a parallasse nulla

    -
    - -
    (Reindirizzato da NPP)
    - -


    -Se la fotocamera viene ruotata rispetto a un punto qualsiasi, le immagini catturate potrebbero mostrare degli errori di parallasse -ed essere difficili da assemblare. -

    Per la maggior parte degli obiettivi, esiste un punto particolare attorno al quale è possibile ruotare la propria fotocamera evitando gli errori di parallasse. -Questo particolare "punto a parallasse nulla" è il centro della pupilla di ingresso dell'obiettivo, un'apertura virtuale all'interno dell'obiettivo. -Nel mondo della fotografia panoramica, questo particolare punto è spesso chiamato "punto nodale", ma non ha in effetti alcuna relazione con i veri punti nodali -dell'obiettivo.1,2 I veri punti nodali sono altri punti sul -percorso ottico, che non hanno alcun significato particolare per la maggior parte delle applicazioni fotografiche. Il punto a parallasse nulla rappresenta anche il "centro -della prospettiva", ma questa definizione non è utilizzata comunemente e non descrive il perché il punto a parallasse nulla è così importante. -

    La pupilla di ingresso è l'immagine dell'apertura limite del diaframma, vista attraverso la parte anteriore dell'obiettivo. -L'immagine può apparire ingrandita dall'effetto degli elementi ottici dell'obiettivo che ha di fronte e può essere spostata rispetto all'effettiva posizione dell'apertura. -È proprio rispetto al centro di questa immagine che la fotocamera dovrebbe essere ruotata per eliminare gli errori di parallasse. La pupilla di ingresso -è importante per un altro motivo: il numero "f" di un obiettivo rappresenta il rapporto tra la lunghezza focale e il diametro della pupilla di ingresso -(e non il diametro fisico dell'apertura all'interno della fotocamera). -

    Alla luce di queste considerazioni, il miglior termine per descrivere il punto a parallasse nulla è proprio "punto a parallasse nulla"!. "Pupilla di ingresso" è -corretto, anche se impreciso per un purista della geometria; è un termine utile da ricercare nella letteratura ed è preferito nella scrittura formale. Il "punto nodale" è -comunemente utilizzato, ma non è corretto e può indurre confusione. Dovrebbe essere evitato nella scrittura e interpretato con cautela nella lettura dei testi. -

    Indipendentemente da come lo si chiami, il punto a parallasse nulla può essere trovato semplicemente per tentativi: occorre solamente correggere il punto di rotazione -in modo che i punti in primo piano e sullo sfondo rimangano allineati. -

    Alcuni obiettivi, in particolare quelli fisheye, non hanno un singolo punto a parallasse nulla; posseggono invece un gruppo di quelli che potremmo chiamare -"punti a parallasse minima" che dipendono dall'angolo a cui si trovano rispetto all'asse dell'obiettivo. Questi obiettivi sono facilmente riconoscibili: è sufficiente -guardare attraverso l'obiettivo dalla parte anteriore e osservare che la posizione della pupilla di ingresso si sposta avanti e indietro ruotando l'obiettivo. -Con questo tipo di obiettivo, è consigliabile scegliere un angolo a cui si desidera assemblare le foto e ruotare la fotocamera attorno a un punto che fornisce un errore di -parallasse nullo per quello stesso angolo. -

    Per facilitare l'individuazione del punto a parallasse nulla a favore degli altri utilizzatori, è possibile inserire le misure utilizzate per la propria combinazione -di fotocamera, obiettivo e lunghezza focale nel database delle pupille di ingresso. -

    -

    Vedere anche

    -
    • Adattatori per punto nodale -
    • Database delle pupille di ingresso -
    -

    Riferimenti

    -
    1. Kerr, Douglas A. "The Proper Pivot Point for Panoramic Photography" The Pumpkin (2005). Accessed 2007-01-14. -
    2. van Walree, Paul "Misconceptions in photographic optics", Item #6. Accessed 2007-01-14. -
    -

    Collegamenti

    -
    • Rik Littlefield, teoria del punto "a parallasse nulla" nella fotografia panoramica -
    • Esempio pratico di panorama di Big Ben: determinare il punto nodale di un obiettivo. -
    • Kaidan, come trovare il punto nodale della propria fotocamera. -
    • Alain Hamblenne, The Grid -
    • Michel Thoby, posizione particolare del punto nodale per l'obiettivo SIGMA 8mm f:4, che descrive un approccio interessante che si avvale di un puntatore laser. -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/OpenEXR.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/OpenEXR.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/OpenEXR.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/OpenEXR.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ - - - - - - - - - - OpenEXR - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    OpenEXR

    -
    - -
    - -

    OpenEXR è un formato per le immagini high dynamic range(HDR), nato come standard aperto insieme a un -pacchetto di programmi creati dalla Industrial Light and Magic, e rilasciato con una licenza di software libero simile a quella BSD. -

    -

    Collegamenti esterni

    -
    • OpenEXR.com -
    • OpenEXR su Wikipedia -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/OpenEXR"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Optimization.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Optimization.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Optimization.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Optimization.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,108 +0,0 @@ - - - - - - - - - - Ottimizzazione - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Ottimizzazione

    -
    - -
    - - -

    Definizione

    -

    L'ottimizzazione è il processo attraverso il quale viene determinata la distorsione da applicare a una coppia di immagini per ottenere l'allineamento della coppia fornita -di punti di controllo. -

    -

    Varianti di ottimizzazione

    -

    Il seguente articolo riguarda l'ottimizzatore interno di PTGui. L'originale PTOptimizer dei panotools come anche -l'ottimizzatore di hugin, lavorano in modo analogo ma hanno una serie di caratteristiche leggermente diverse e utilizzano -internamente diverse tattiche; il risultato può quindi essere leggermente diverso. -

    -

    Capire l'ottimizzazione

    -

    John Houghton ha scritto questa chiara spiegazione dell'ottimizzazione nella mailing list di ptgui. -

    Si ipotizzi per un momento che le proprie immagini siano state scattate con una fotocamera perfettamente posizionata (senza errore di parallasse) e con un obiettivo -perfetto (senza distorsioni). Ogni immagine è posizionata nella superficie sferica di assemblatura e deformata (trasformata) in modo che, vista dal centro della sfera -stessa, sia visualizzata in modo esattamente identico alla scena originale vista dalla posizione della fotocamera. Il campo inquadrato dall'obiettivo, determina -la dimensione delle immagini. -

    È poi possibile far semplicemente scorrere le immagini in modo che si allineino perfettamente nelle zone di sovrapposizione. Per permettere all'ottimizzatore di -eseguire questo allineamento, l'utente assegna dei punti di controllo a elementi corrispondenti nelle immagini (l'ottimizzatore non "vede" le immagini di per sè stesse). -Per allineare perfettamente le immagini, è sufficiente un minimo di due punti di controllo accuratamente posizionati per ogni zona di sovrapposizione, anche se un numero -maggiore non guasta. -

    Purtroppo, un obiettivo reale non è perfetto e normalmente è affetto da distorsione a -barilotto o a cuscinetto. -Se non corretti durante il processo di deformazione, sarà difficile allineare perfettamente le immagini nelle zone di sovrapposizione. Questo problema è corretto affrontato -dai parametri dell'obiettivo a,b e c, che insieme controllano la quantità di correzione della -distorsione applicata. -

    Quando attivato, l'ottimizzatore proverà diversi valori di questi parametri nel tentativo di allineare nel modo migliore tutti i -punti di controllo. Per far sì che l'ottimizzatore possa allineare accuratamente le immagini su tutta la zona di -sovrapposizione, sono necessari dei punti di controllo sparsi in modo uniforme sull'intera area (o almeno lungo la linea anticipata lungo la quale il programma di fusione -posizionerà la cucitura). Se si conoscono già i valori ottimali dei parametri a,b e c (per esempio da progetti realizzati in precedenza), questi possono essere inseriti -utilizzando il database degli obiettivi, con un modello o manualmente. Non devono essere inclusi nel processo di ottimizzazione e non è più fondamentale individuare molti -punti di controllo sparsi. -

    Due ulteriori fattori che causano problemi all'ottimizzazione sono gli oggetti mobili e l'errore di parallasse: -

    i

    punti di controllo non dovrebbero essere assegnati a elementi che potrebbero essersi mossi tra gli scatti. -L'oggetto mobile apparirà in diverse posizioni relativamente allo sfondo in scatti successivi. Naturalmente, l'ottimizzatore non sarà in grado di allineare contemporaneamente -l'oggetto che si è spostato e lo sfondo che invece è rimasto immobile; l'allineamento dell'oggetto mobile comprometterà l'allineamento dello sfondo Per esempio i punti -di controllo individuati sulle nuvole potrebbero essere allineati perfettamente ma l'orizzonte potrebbe risultare disallineato o storto. Il generatore automatico di punti di -controllo non sarà in grado di distinguere gli oggetti mobili, quindi occorre controllare questi punti e cancellare quelli erroneamente individuati. -

    I problemi che insorgono a causa dell'errore di parallasse (causati dal non ruotare la fotocamera rispetto alla pupilla -di ingresso dell'obiettivo) sono simili. Gli oggetti vicino sembrano muoversi relativamente allo sfondo in scatti successivi e quindi di dovrebbe evitare di assegnare a -questi dei punti di controllo. Uno sfondo distante sarà pressoché esente da errore di parallasse e dovrebbe essere allineato correttamente dall'ottimizzatore. Nel caso di -obiettivi fisheye, gli effetti dell'errore di parallassex non possono generalmente essere evitati del tutto: la posizione della -pupilla di ingresso varia in funzione dell'angolo rispetto all'asse dell'obiettivo con cui i raggi entrano -nell'obiettivo stesso, quindi non esiste un unico punto. -

    Quando l'ottimizzatore fornisce dei pessimi risultati, con la rilevazione di distanze elevate, controllare il posizionamento dei punti di controllo peggiori. È -necessario capire per quale motivo le distanze tra i punti di controllo siano così elevate. Se un punto non è assegnato correttamente allo stesso elemento nelle due -immagini, correggerlo in modo che lo sia. Se è già correttamente posizionato, si deve controllare che l'oggetto non si sia mosso tra gli scatti o che non sia affetto -dall'errore di parallasse. Se così fosse, cancellare il punto; in caso contrario cercare un'altra spiegazione: i parametri dell'obiettivo potrebbero essere inesatti oppure -potrebbero essere stati esclusi dall'ottimizzazione quando invece avrebbero dovuto. I parametri di spostamento d ed e dovrebbero essere ottimizzati nel caso di obiettivi fisheye, ma occorre essere attenti ai valori strani -che si potrebbero ottenere. In questi frangenti l'esperienza la fa da padrona. È comunque possibile azzerare in ogni momenti i parametri dell'obiettivo e riprovare -l'ottimizzazione. -

    Nella migliore delle ipotesi si sarà in grado di ottenere un'ottimizzazione in cui le distanze dei punti di controllo sono molto basse (meno di 2 per esempio) -con dei punti di controllo ben disposti, nel qual caso il risultato dell'assemblatura sarà molto buono. I disallineamenti causati da errore di parallasse e oggetti in -movimento potranno essere corretti in post processing; anche Smartblend può essere utile nel distinguere questi errori, posizionando le cuciture intorno agli oggetti -durante la fusione. -

    L'ottimizzatore non cambierà mai la posizione dei punti nelle immagini. Questi dovrebbero essere assegnati a elementi corrispondenti, ma l'ottimizzatore non -accede alle immagini e quindi non ha modo di sapere se questi sono assegnati correttamente o no. -

    L'ottimizzatore dispone le immagini in modo da rendere minima la separazione tra i punti di controllo, -riducendola idealmente a 0 quando tutti i punti sono perfettamente allineati (se questo è possibile). Se sono presenti molti punti posizionati in modo sbagliato -e si corregge la posizione di uno solo di essi, l'ottimizzatore varierà la posizione delle immagine per tenerne conto. Nel farlo, alcuni punti potrebbero avvicinarsi mentre -altri allontanarsi, ma comunque la distanza media dovrebbe ridursi. Elevate distanze tra i punti di controllo sono causate dal posizionamento errato dei punti di controllo -ma possono anche derivare da altre cause quali degli errati parametri dell'obiettivo, l'errore di parallasse e gli oggetti in movimento come è stato spiegato in precedenza. -

    -

    Collegamenti esterni

    -
    • Guida all'ottimizzazione: http://www.johnhpanos.com/optitute.htm -
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Pano12.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Pano12.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Pano12.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Pano12.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,69 +0,0 @@ - - - - - - - - - - Pano12 - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Pano12

    -
    - -
    - -

    La libreria pano12 fu originariamente creata da Helmut Dersch come "cuore" dei Panorama Tools. La licenza è GNU General Public License (GPL) -e l'intero codice sorgente è disponibile dal sito sourceforge dei panotools. -

    Pano12 è attualmente utilizzata da una serie di programmi con interfaccia grafica o da linea di comando. Il file di per sè può chiamarsi pano12.dll, -libpano12.so, libpano12.dylib o pano12.lib in funzione del sistema operativo su cui è installato. -

    A causa di problemi con i brevetti degli obiettivi fisheye, alcune versioni della libreria -(compresa quella disponibile in sourceforge) presentano una limitazione artificiale di 160° sul valore massimo del -campo inquadrato delle immagini iniziali. -

    -

    Altri strumenti presenti nel codice sorgente di pano12

    -

    Se si compila la libreria pano12 partendo dal codice sorgente, verranno compilate contemporaneamente altre utili applicazioni: -

    -
    • PTOptimizer: ottimizza la posizione e la dimensione delle immagini utilizzando i dati sui -punti di controllo; -
    • panoinfo: visualizza una serie di in formazioni sulla versione installata di pano12; -
    • PTmender: un sostituto di PTStitcher; -
    • PTblender: implementa solamente la correzione di luminosità e colore di -PTmender; -
    • PTtiff2psd: converte una serie di file in formato TIFF nel formato -PSD; è simile all'azione di assemblatura di Erik Krause. -
    -

    Scaricare le versioni precompilate

    -

    La libreria originale pano12 per Linux, Mac classic e Windows può essere scaricata da uno dei mirror, anche se probabilmente si desidererà scaricare la -versione più aggiornata che contiene molte correzioni di bug e miglioramenti della velocità: -

    Per Linux e gli altri sistemi unix, riferirsi alla pagina di download di hugin. Attualmente sono disponibili i pacchetti per -le distribuzioni debian, fedora, gentoo, mandrake e probabilmente altre; -

    Per OS X, è fornita una versione con hugin o PTMac; -

    Per Windows si dovrà scaricare pano12.dll da Photocreations o sourceforge; è anche possibile trovarla allegata a PTAssembler e PTGui. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Pano12"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panoglview.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panoglview.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panoglview.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panoglview.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ - - - - - - - - - - Panoglview - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Panoglview

    -
    - -
    - -
    panoglview on Linux
    -
    panoglview su piattaforma Linux
    -
    panoglview è un visualizzatore immersivo accelerato via hardware in OpenGL per le immagini - equirettangolari, creato originariamente da -

    Fabian Wenzel e attualmente mantenuto sul sito sourceforge di hugin. -

    La licenza di panoglview è la GNU General Public License (GPL). -

    È possibile scaricare le versioni pre compilate di panoglview come parte del file di installazione di hugin per OS X -e Windows. panoglview è disponibile anche per le distribuzioni linux attraverso gli usuali canali. -


    -

    -

    Compilare panoglview

    -

    Requisiti... -

    -

    Utilizzare panoglview

    -

    Panoglview è stato creato per visualizzare i panorami completi a 180°x360° (equirettangolari) proiettandoli su una sfera che può essere ruotata utilizzando il mouse. -

    Per visualizzare dei panorami parziali, si utilizzano i file di progetto. Nella distribuzione non sono presenti degli esempi, ma possono essere creati aprendo -un'immagine equirettangolare e salvandola come "progetto" .paf. -

    Si tratta di semplici file di testo il cui contenuto si spiega da solo, ma la caratteristica più importante è che questi file .paf contengono dei valori quali -il campo inquadrato, lo spostamento, l'inclinazione, i confini e ora anche le impostazioni per i panorami parziali. -

    Comunque c'è del potenziale con tutto queste caratteristiche: -

    -
    • creare un progetto .paf da un progetto parziale equirettangolare in formato .pto. -
    • Impostare la vista e utilizzarla come punto di vista iniziale per un file QTVR/flash. -
    • Impostare un punto di vista, salvare il progetto e utilizzare nona per estrarre delle versioni ad alta risoluzione della vista. -
    • Questa vista estratta può essere modificata in un programma tipo Gimp e reinserita nel panorama: fondamentalmente si tratta della funzionalità del vecchio -strumento pteditor. -
    -

    -- Simon Oosthoek 25 Luglio 2008 (parte del testo è tratta da Bruno Postle) -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Panoglview"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panoinfo.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panoinfo.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panoinfo.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panoinfo.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,90 +0,0 @@ - - - - - - - - - - Panoinfo - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Panoinfo

    -
    - -
    - -

    Panoinfo è un semplice programma contenuto nella libreria pano12 che visualizza una lista di informazioni -relative alla versione correntemente installata di pano12. È particolarmente utile per la risoluzione dei problemi, specialmente sui sistemi Windows, dove risulta a volte -complesso capire quale file DLL è utilizzato fra tanti con lo stesso nome. -

    Di seguito è riportato un tipico esempio di output; in questo caso la versione della libreria è la 2.7.0.10, il massimo -campo inquadrato fisheye è stato artificialmente limitato a 160 gradi per impedire l'utilizzo -degli obiettivi fisheye e questa versione della libreria è stata compilata con il supporto al linguaggio -Java (queste opzioni sono configurabili se si compila la libreria pano12 dal codice sorgente): -

    -
    libpano12 properties and features:
    -Pano12 file version:    2.7.0.10
    -Comment:        Fastest
    -Copyright:      Copyright (c) 1999, 2000, 2001 Helmut Dersch
    -
    -Optimizer Error:        dist sphere
    -Max FoV:                160.000000
    -
    -Feature List:
    -
    -  CPErrorIsDistSphere: 1
    -  NumLensTypes: 5
    -  CanCropOutside: 1
    -  CanHaveNegativeCP: 1
    -  MaxFFOV: 160
    -  FileVersion: 2.7.0.10
    -  LongVersion: 2.7.0.10 , Copyright (c) 1998-2001, H. Dersch, der@fh-furtwangen.de
    -  LegalCopyright: Copyright (c) 1999, 2000, 2001 Helmut Dersch
    -  Comments: Fastest
    -  LensType0: Normal (rectilinear)
    -  LensType1: Cylindrical
    -  LensType2: Circular
    -  LensType3: Full Frame
    -  LensType4: Equirectangular
    -  LensMask0: R
    -  LensMask1: R
    -  LensMask2: C
    -  LensMask3: R
    -  LensMask4: R
    -  Patch200504a: Douglas Wilkins, Java support enabled
    -  Patch200502a: Joost Nieuwenhuijse, Crop outside of image, http://www.ptgui.com
    -  Patch200410a: Jim Watters, JPEG optimization, http://photocreations.ca/panotools
    -  FastTransform01: Fulvio Senore, Fast transform, http://www.fsoft.it/panorama/pano12.htm
    -  Patch200407a: Rik Littlefield, Kevin Kratzke, & Jim Watters, Fix multiple bugs - PSD, 16bit
    -  MaskFromFocus_001: Rik Littlefield, added mask-from-focus, http://www.janrik.ptools
    -  Patch200405a: Rik Littlefield, Improved optimizer, http://www.janrik.ptools
    -  Patch200403a: Kevin Kratzke, Radial Shift fix, http://www.kekus.com
    -  Patch200312a: Jim Watters, Updated PSD format, http://photocreations.ca/panotools
    -  Patch200309a: Jim Watters, Allowed linking of y, p, & r values, http://photocreations.ca/panotools
    -  Patch200308a: Jim Watters, Improved Radial Luminance, http://photocreations.ca/panotools
    -
    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Panoinfo"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panomatic.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panomatic.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panomatic.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panomatic.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ - - - - - - - - - - Panomatic - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Panomatic

    -
    - -
    - -

    Panomatic, di Anael Orlinski, è uno strumento per la creazione automatica dei punti di controllo -per dei gruppi di foto che si sovrappongono. -

    Pan-o-matic ha uno scopo molto simile ad autopano-sift o ad -autopano-sift-C e può essere utilizzato all'interno di hugin -(e potenzialmente con altre interfacce grafiche) come un generatore di punti di controllo alternativo. -

    Pan-o-matic è un programma a codice aperto e si avvale dell'algoritmo SURF. -

    -

    Collegamenti esterni

    -
    • Sito ufficiale di Panomatic per il download, i pacchetti binari e la FAQ -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Panomatic"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panorama_formats.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panorama_formats.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panorama_formats.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panorama_formats.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,121 +0,0 @@ - - - - - - - - - - Formati panoramici - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Formati panoramici

    -
    - -
    - -

    Il formato di un panorama è definito, in termini generali, dalla proiezione utilizzata per mappare -la scena tridimensionale, completa o parziale, in una stampa o in una schermata bidimensionale. -Esistono diversi tipi di proiezioni: -

    - -

    Formato sferico completo

    -

    Esistono due principali tipi di formati sferici: equirettangolare e -cubico. Entrambi sono in grado di visualizzare completamente la sfera ideale che circonda l'osservatore: -360° sull'orizzontale, 90° verso l'alto e 90° verso il basso. Sono necessari dei visualizzatori specializzati per poter vedere dei panoramici sferici. -

    -
    equirectangular panorama format
    -
    panorama in formato equirettangolare
    -

    Equirettangolare

    -

    Il formato equirettangolare è utilizzato da un paio di visualizzatori di panorami quali, per esempio, PTViewer e SPi-V. Consiste di una singola immagine - con una rapporto di aspetto pari a 2:1 (in pratica la larghezza deve essere il doppio dell'altezza). -
    -

    -
    cubic panorama format
    panorama in formato cubico
    -

    Cubico

    -

    Il formato cubico utilizza le 6 facce di un cubo per visualizzare la sfera completa che circonda l'osservatore. -L'immagine è rimappata sulle facce del cubo e si adatta senza cuciture. -

    Un formato cubico ampiamente utilizzato è il QuickTime VR; questo consta di un file contenente le 6 facce del cubo in formato -JPEG compresso con in più una intestazione che contiene le informazioni indispensabili su come visualizzare il panorama. -

    Un altro formato cubico è utilizzato da SPi-V; si tratta di 6 facce del cubo distribuite su una singola riga o colonna. SPi-V considera ogni immagine con un -rapporto di aspetto di 6:1, come un panorama in formato cubico. -
    -

    -
    Little planet remapping example © Erik Krause
    -
    esempio di rimappatura a piccolo pianeta -("Little planet") © Erik Krause
    -

    "Piccolo pianeta"

    -

    Questo è un formato inusuale che rimappa una sfera completa in modo che il terreno sembri un piccolo pianeta. Consultare le mappature inusuali per maggiori informazioni. -
    -

    -

    Formati parziali

    -

    Esistono tutta una serie di possibilità adatte a visualizzare i panorami parziali; questi sono panorami che non comprendono l'intera sfera visibile in una o più direzioni. -I panorami parziali possono essere visualizzati direttamente se non coprono un angolo superiore ai 120° lungo il lato più corto (cioè possono coprire un angolo di 360° -lungo una direzione ma devono avere un angolo inferiore ai 120° nell'altra). I formati più utilizzati sono il cilindrico e il rettilineare, ma è possibile trovare anche dei -panorami sferici parziali. -

    -
    cylindrical panorama format
    -
    formato panoramico cilindrico
    -

    Cilindrico

    -

    I panorami in proiezione cilindrica, possono visualizzare un cerchio completo lungo l'orizzonte -o parte di esso. Sono molto utilizzati per i panorami di paesaggi. Se utilizzato per soggetti architettonici, può essere fastidioso dato che le linee orizzontali -(ad eccezione dell'orizzonte) risultano piegate. -
    -

    -
    Arc formed panorama example © Erik Krause
    -
    Esempio di panorama arquato © Erik Krause
    -

    Arquato

    -

    Un particolare tipo di proiezione cilindrica in cui il panorama è inarcato come -nelle comuni schede di orientazione. Vedere i dettagli nella mappature inusuali.
    -

    -
    rectilinear panorama format
    -
    panorama in formato rettilineare
    -

    Rettilineare

    -

    I panorami rettilineari mostrano il soggetto come un obiettivo ordinario (non fisheye) farebbe. -Gli angoli di inquadratura orizzontale e verticale sono limitati a circa 120°. Le linee rette si mantengono tali, quindi, questa proiezione, è ottima per -i soggetti architettonici. Se però il campo inquadrato è troppo ampio, l'immagine potrebbe soffrire di deformazioni innaturali agli angoli. -
    -

    -
    cutted equirectangular panorama format
    -
    panorama ritagliato in formato equirettangolare
    -
    -

    Sferico parziale

    -

    I panorami sferici parziali funzionano allo stesso modo di quelli sferici completi (vedere più in alto).Nella maggior parte dei casi sono utilizzati per -escludere dall'immagine lo zenit e/o il nadir. Il campo inquadrato verticale deve -essere ridotto in questo caso per evitare che l'osservatore interpreti male le immagini di partenza. -
    -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panorama.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panorama.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panorama.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panorama.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,76 +0,0 @@ - - - - - - - - - - Panorama - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Panorami

    -
    - -
    - -


    -

    - -

    Panorami

    -

    I panorami rappresentano un'entusiasmante e creativa applicazione della fotografia e, recentemente, dell'informatica. I panorami offrono all'osservatore una prospettiva -unica e immersiva. Per il fotografo, invece, rappresentano una affascinante sfida tecnica e artistica, entrambe a partire dallo scatto delle immagini iniziali, passando -per l'elaborazione fino alla produzione del panorama finale. -

    -

    Definizioni

    -

    Esistono tipologie di panorami per tutti i gusti e utilizzi. Il dizionario definisce un panorama come «una fotografia (o una serie di fotografie) che rappresenta -una scena in modo continuo». Questa ripresa continua può provenire direttamente da una particolare fotocamera o può essere assemblata partendo da più immagini -utilizzando dei programmi adatti allo scopo quali i panorama tools. -

    Tecnicamente si distinguono due tipi principali di panorami: -

    -

    Panorami parziali

    -

    Se un panorama parziale non proviene da una speciale fotocamera panoramica, è generalmente creato dall'unione di due o più immagini ottenendo così un più ampio -campo inquadrato. -

    I panorami parziali sono creati utilizzando esattamente la stessa tecnica valida per i panorami immersivi, ma mostrano solamente una frazione della sfera -visibile (meno di 360° di longitudine lungo l'orizzonte, e/o meno di 180° di latitudine). Gli esempi di panorami parziali comprendono l'immagine GigaPixel di Max Lyon, -creata utilizzando 196 immagini di partenza! -I panorami parziali sono normalmente visualizzati come le immagini tradizionali: su stampa o in forma digitale. -

    -

    Panorami immersivi

    -

    I panorami immersivi o a sfera completa vengono visualizzati tramite l'ausilio di particolari programmi che permettono all'utente di "guardarsi tutto intorno". -Anche i panorami parziali possono essere visualizzati in questo modo, sfocandone le differenze. In particolare, i panorami parziali che coprono un angolo orizzontale -(longitudine) di 360°, ma minore di 180° in verticale (latitudine), vengono spesso considerati anch'essi panorami immersivi e visualizzati con gli stessi programmi -di questi ultimi. Esempi di panorami immersivi sono raggiungibili nel sito del World-Wide Panorama e in una serie di altri indirizzi. -


    -

    -

    Proiezioni

    -

    Un concetto fondamentale nella produzione e visualizzazione sia dei panorami parziali che di quelli immersivi, è il tipo di proiezione utilizzata per le immagini -di partenza e per il risultato finale. Consultare la sezione sulle proiezioni per maggiori informazioni. -Sono la proiezione delle immagini fotografiche e i risultanti panorami che spiegano il motivo per cui il semplice allineamento delle singole immagini non può -produrre delle immagini panoramiche senza cuciture (anche se questo può avere comunque il suo fascino). -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Panorama"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panorama_tools.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panorama_tools.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panorama_tools.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panorama_tools.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,108 +0,0 @@ - - - - - - - - - - Panorama tools - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Panorama tools

    -
    - -
    - -

    Cosa sono i panorama tools

    -

    I Panorama Tools, conosciuti anche come i PanoTools, costituiscono un pacchetto gratuito di programmi e librerie scritti originariamente dal professore di fisica -e matematica tedesco Helmut Dersch. I PanoTools forniscono una potente infrastruttura per la riproiezione e la fusione di diverse immagini di partenza al fine di ottenere -un'immagine panoramica immersiva di diversi tipi. -Una versione aggiornata della libreria dei PanoTools costituisce la base di diverse interfacce grafiche di programmi per l'elaborazione dei panorami. -

    Helmut iniziò lo sviluppo dei PanoTools nel 1998, producendo alcuni dei programmi più professionali e versatili disponibili, a tutt'oggi, per la creazioni -di panorami e non solo; lo sviluppo fu interrotto nel 2001 a causa di una persecuzione legale relativa a un ipotetica violazione dei brevetti avanzata da una -società chiamata IPIX. Nel 2003 furono rilasciate alcune modifiche relative al visualizzatore di panorami online, basato su Java, PTViewer. -Uno conteneva un eseguibile indipendente mentre un altra versione poteva visualizzare i panorami HDR (high dynamic range). Il rilascio più recente di Helmut è relativo a PTViewerME, un visualizzatore di panorami per PDA e dispositivi mobili. -La pagina principale di Helmut non contiene collegamenti ai suoi lavori passati relativi ai PanoTools, ma alcuni membri della lista riuscirono a copiare il suo vecchio sito -prima della chiusura. -Vedere i mirror per alcuni collegamenti a queste pagine e a ulteriori informazioni. -

    Dopo che Helmut arrestò lo sviluppo dei Panorama Tools, i membri della sua mailing-list ne presero il posto e iniziarono a migliorare -il pacchetto di programmi. Da allora fu aperta una pagina di sourceforge, furono corretti alcuni bug e sviluppate nuove funzionalità. -

    -

    Programmi inclusi nei panorama tools

    -

    Citazione tratta dalla pagina originale di Helmut: -

    PanoTools è una collezione di strumenti gratuiti per la creazione di panorami e oggetti tridimensionali; essi comprendono: -

    - - - - - - - - - - - - - - - - - - - - - - - - -
    PTEditor Editor di panorami interattivo in linguaggio Java. -
    PTPicker Interfaccia Java dell'assemblatore di panorami e di altri strumenti. Fornisce un'interfaccia grafica per la selezione dei punti di controllo -e per l'ottimizzazione della posizione. -
    PTCrypt Strumento Java per elaborare le immagini il cui scopo è di essere visualizzate online con ptviewer. -
    PTStitcher Strumento di assemblatura dei panorami che rimappa, corregge e combina una serie di -immagini in una vista panoramica. -
    PTOptimizer Ottimizza le posizioni e le dimensioni delle immagini utilizzando i dati sui punti di -controllo. -
    PTStereo Crea oggetti tridimensionali da due immagini stereoscopiche o da più fotografie. -
    PTInterpolate Interpolatore di viste fisicamente valido. Date due immagine della stessa scena scattate da due posizioni diverse, questo strumento -è in grado di creare una vista da qualsiasi posizione intermedia. -
    PTMorpher Strumento di morphing. -
    PTAverage Media le immagini per ridurre il rumore e aumentare la densità. -
    PTStripe Combina le immagini in strisce di filmati adatte a essere visualizzate in visualizzatori di oggetti (estensione PTMovie di PTViewer). -
    Panorama Tools Plugin Photoshop, GraphicConverter e Gimp plug-in per la correzione delle immagini e per la rimappatura. Compatibile anche con altri -programmi in grado di utilizzare i plugin di Photoshop. -
    Libreria pano12 La libreria panoramica di base, attualmente utilizzata da varie interfacce grafiche e -programmi da riga di comando. Può assumere il nome di pano12.dll, libpano12.so, libpano12.dylib o pano12.lib in funzione del sistema operativo in cui è installata. -
    -

    Per rendere più semplice l'utilizzo dei panorama tools e per aggiungere delle funzionalità, sono stati scritti delle ottime interfacce grafiche, alcune gratuite e altre -commerciali, che, nella maggior parte dei casi, rendono non necessaria l'interazione diretta con il programma originale contenuto tra gli strumenti dei PanoTools. -Consultare la pagina del software per saperne di più. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panotools.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panotools.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panotools.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Panotools.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,107 +0,0 @@ - - - - - - - - - - Panorama tools - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Panorama tools

    -
    - -
    (Reindirizzato da Panotools)
    - -

    Cosa sono i panorama tools

    -

    I Panorama Tools, conosciuti anche come i PanoTools, costituiscono un pacchetto gratuito di programmi e librerie scritti originariamente dal professore di fisica -e matematica tedesco Helmut Dersch. I PanoTools forniscono una potente infrastruttura per la riproiezione e la fusione di diverse immagini di partenza al fine di ottenere -un'immagine panoramica immersiva di diversi tipi. -Una versione aggiornata della libreria dei PanoTools costituisce la base di diverse interfacce grafiche di programmi per l'elaborazione dei panorami. -

    Helmut iniziò lo sviluppo dei PanoTools nel 1998, producendo alcuni dei programmi più professionali e versatili disponibili, a tutt'oggi, per la creazioni -di panorami e non solo; lo sviluppo fu interrotto nel 2001 a causa di una persecuzione legale relativa a un ipotetica violazione dei brevetti avanzata da una -società chiamata IPIX. Nel 2003 furono rilasciate alcune modifiche relative al visualizzatore di panorami online, basato su Java, PTViewer. -Uno conteneva un eseguibile indipendente mentre un altra versione poteva visualizzare i panorami HDR (high dynamic range). Il rilascio più recente di Helmut è relativo a PTViewerME, un visualizzatore di panorami per PDA e dispositivi mobili. -La pagina principale di Helmut non contiene collegamenti ai suoi lavori passati relativi ai PanoTools, ma alcuni membri della lista riuscirono a copiare il suo vecchio sito -prima della chiusura. -Vedere i mirror per alcuni collegamenti a queste pagine e a ulteriori informazioni. -

    Dopo che Helmut arrestò lo sviluppo dei Panorama Tools, i membri della sua mailing-list ne presero il posto e iniziarono a migliorare -il pacchetto di programmi. Da allora fu aperta una pagina di sourceforge, furono corretti alcuni bug e sviluppate nuove funzionalità. -

    -

    Programmi inclusi nei panorama tools

    -

    Citazione tratta dalla pagina originale di Helmut: -

    PanoTools è una collezione di strumenti gratuiti per la creazione di panorami e oggetti tridimensionali; essi comprendono: -

    - - - - - - - - - - - - - - - - - - - - - - - - -
    PTEditor Editor di panorami interattivo in linguaggio Java. -
    PTPicker Interfaccia Java dell'assemblatore di panorami e di altri strumenti. Fornisce un'interfaccia grafica per la selezione dei punti di controllo -e per l'ottimizzazione della posizione. -
    PTCrypt Strumento Java per elaborare le immagini il cui scopo è di essere visualizzate online con ptviewer. -
    PTStitcher Strumento di assemblatura dei panorami che rimappa, corregge e combina una serie di -immagini in una vista panoramica. -
    PTOptimizer Ottimizza le posizioni e le dimensioni delle immagini utilizzando i dati sui punti di -controllo. -
    PTStereo Crea oggetti tridimensionali da due immagini stereoscopiche o da più fotografie. -
    PTInterpolate Interpolatore di viste fisicamente valido. Date due immagine della stessa scena scattate da due posizioni diverse, questo strumento -è in grado di creare una vista da qualsiasi posizione intermedia. -
    PTMorpher Strumento di morphing. -
    PTAverage Media le immagini per ridurre il rumore e aumentare la densità. -
    PTStripe Combina le immagini in strisce di filmati adatte a essere visualizzate in visualizzatori di oggetti (estensione PTMovie di PTViewer). -
    Panorama Tools Plugin Photoshop, GraphicConverter e Gimp plug-in per la correzione delle immagini e per la rimappatura. Compatibile anche con altri -programmi in grado di utilizzare i plugin di Photoshop. -
    Libreria pano12 La libreria panoramica di base, attualmente utilizzata da varie interfacce grafiche e -programmi da riga di comando. Può assumere il nome di pano12.dll, libpano12.so, libpano12.dylib o pano12.lib in funzione del sistema operativo in cui è installata. -
    -

    Per rendere più semplice l'utilizzo dei panorama tools e per aggiungere delle funzionalità, sono stati scritti delle ottime interfacce grafiche, alcune gratuite e altre -commerciali, che, nella maggior parte dei casi, rendono non necessaria l'interazione diretta con il programma originale contenuto tra gli strumenti dei PanoTools. -Consultare la pagina del software per saperne di più. -

    - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Parallax.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Parallax.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Parallax.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Parallax.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,141 +0,0 @@ - - - - - - - - - - Parallasse - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Parallasse

    -
    - -
    - -


    -

    - -

    Introduzione

    -
    Parallax demo © Bernhard Vogl (GIF animation must be turned on)
    Esempio di parallasse © Bernhard Vogl -(GIF l'animazione deve essere abilitata)
    -

    Se si scatta la stessa scena da un punto anche lievemente diverso, gli oggetti sullo sfondo risulteranno traslati in relazione a quelli in primo piano, come accade -nell'immagine di esempio riportata. -

    L'errore di parallasse si verifica nelle fotografie panoramiche se la fotocamera e l'obiettivo non vengono ruotati attorno alla pupilla di ingresso dell'obiettivo. Una differenza causata dall'errore di parallasse sarà visibile nella zona di sovrapposizione fra due immagini -adiacenti. -

    Gli errori di parallasse possono essere molto complessi da rimuovere, dato che i dettagli dello sfondo possono essere oscurati da elementi in primo piano. -Un metodo utile per correggere questo tipo di errori consiste nell'"inventare" gli oggetti sullo sfondo. -

    -

    Calcolo

    -

    L'errore di parallasse è in funzione della distanza dell'oggetto d\,, della posizione del punto -nodale r\, e della metà dell'angolo di rotazione fra i due scatti successivi, denominato -\alpha\,. Quindi, metà angolo di parallasse \beta\, sarà: \beta = atan\frac {r*sin(\alpha)} {d - r*cos(\alpha)} -

    Dato che generalmente d\, è sensibilmente più grande di r\,, la formula precedente può anche scriversi come \beta = atan\frac {r*sin(\alpha)} 
-{d} -

    \beta\, si applica, in direzione opposta, a entrambe le immagini che si sovrappongono, -quindi il valore deve essere raddoppiato per ottenere l'effettivo errore di parallasse. A questo punto è possibile stimare l'errore massimo in pixel -che affliggerà il panorama (di larghezza pari a Panorama Width) che si intende creare: per un panorama a 360° (e \beta\, espresso in gradi) -questo è semplicemente PixelError=\frac{2*\beta*PanoramaWidth}{360} -

    -

    Esempi

    -

    Se si scattano 4 foto nelle 4 direzioni ortogonali, \alpha\, risulta essere pari a 45°. -Se si considera un oggetto posto a 1m di distanza dall'obiettivo, l'errore massimo di parallasse (relativo all'infinito) sarà, per uno spostamento -r\, del punto a parallasse nulla: -

    - - - - - - - - - - - -
    r\, -8000px larghezza -12000px larghezza -
    1mm -1,8px -2,7px -
    5mm -9px -14px -
    10mm -18px -27px -
    20mm -37px -55px -
    -

    Se si scattano invece 6 foto che coprono 360°, \alpha\, sarà pari a 30°. Se si considera poi un -oggetto posto a 2m dall'obiettivo, il massimo errore di parallasse (relativo a infinito), si avrà per uno spostamento r\, del punto a parallasse nulla: -

    - - - - - - - - - - - -
    r\, -8000px larghezza -12000px larghezza -
    1mm -0,6px -1px -
    5mm -3,2px -4,8px -
    10mm -6,4px -9,6px -
    20mm -13px -19px -
    -

    Vedere anche

    -
    • Punto a parallasse nulla -
    • Riparare agli errori di parallasse con lo strumento "inclina" -
    • Database delle pupille di entrata -
    • Teste panoramiche -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Parallax"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Perspective_correction.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Perspective_correction.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Perspective_correction.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Perspective_correction.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,229 +0,0 @@ - - - - - - - - - - Correzione della prospettiva - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Correzione della prospettiva

    -
    - -
    - - -

    Intro

    -

    Questa guida non ha alcun legame con la creazione dei panorami; comunque, la correzione della prospettiva, è un problema in qualche modo relativo alla produzione -dei panorami, se le immagini di partenza sono state scattate inclinando la fotocamera verso l'alto o verso il basso. Si noti però che non è necessario -correggere le immagini prima dell'assemblatura: ilprocesso avviene parallelamente ad allineamento e assemblatura. -

    Le linee pendenti possono essere fastidiose non solo nella fotografia architettonica. Anni fa i fotografi utilizzavano degli obiettivi con lenti spostabili -(a volte definiti come obiettivi per la correzione della prospettiva) per correggere questo effetto. Questi obiettivi sono piuttosto costosi, non sono disponibili -per tutte le lunghezze focali necessarie e sono limitati a una certa entità della correzione. -

    I Panotools sono in grado di simulare una lente spostabile in termini di geometria (ovviamente non possono simularla in termini di -profondità di campo). Esistono alcune tecniche semplici e immediate per ottenere una correzione della -prospettiva in funzione della direzione in cui è stata inclinata la fotocamera. -

    -

    Prerequisiti

    -

    Questo esempio utilizza PTGui, ma è possibile ottenere gli stessi risultati con qualsiasi altra interfaccia grafica. L'utilizzo di questi programmi è pressoché identico -anche se i nomi a volte possono essere differenti e alcuni campi sono in posizioni diverse. Per hugin, si consultino gli esempi sulla simulazione delle proiezioni -architettoniche e sulla correzione della prospettiva. -

    In tutti i casi si avvia un progetto e si aggiungono le immagini che si desidera correggere premendo il pulsante aggiungi. -

    Andare nella linguetta dei parametri obiettivo e scegliere il tipo (presumibilmente normale (rettilineare)). Inserire il valore approssimativo del -campo inquadrato se non è già stata letto automaticamente dai dati EXIF (non è necessario il valore esatto). Se si è già -in possesso dei parametri di correzione dell'obiettivo, è possibile inserirli nei campi a, b e c oppure immettere 0,0 per ognuno. -

    Nella linguetta delle impostazioni panorama , si scelga rettilinear ("piatta") come output. -

    Le nuove versioni di PTGui manifestano alcuni comportamenti strani quando si utilizza l'ottimizzatore interno. Le opzioni nella linguetta dell'ottimizzatore -possono venire occasionalmente disabilitate quando si effettuano delle correzioni di prospettiva. Utilizzare l'ottimizzatore dei Panorama Tools se si riscontrassero -dei problemi. -

    -

    Fotocamera inclinata verso l'alto o verso il basso

    -

    Utilizzando una lente spostabile questo scatto sarebbe avvenuto con la fotocamera livellata e la lente spostata verso l'alto o il basso. -Il relativo parametro per la simulazione di questo effetto con i panotools, è l'inclinazione. -

    -

    Fotocamera livellata con l'orizzonte

    - - -
    Falling lines example © Daniela Dürbeck
    Esempio di linee cadenti © Daniela -Dürbeck
    -
    corrected image in Panorama Editor
    -
    Immagine corretta in Panorama Editor
    -
    -

    Se la fotocamera era livellata con l'orizzonte, sono sufficienti un paio di punti di -controllo verticali per correggere le linee cadenti. Andare sulla linguetta dei punti di controllo, selezionare un punto sulla sommità di un oggetto verticale -nell'immagine nel riquadro di sinistra, e un punto all'estremità inferiore della stessa struttura verticale sull'immagine di destra. Questa struttura verticale - non deve attraversare o passare vicina al centro dell'immagine. Assicurarsi infine di aver selezionato linea verticale come tipologia di punti di controllo. -

    Nella linguetta dell'ottimizzatore, abilitare interfaccia: avanzate. Abilitare inclinazione e usa punti di controllo di: per -immagine 0. Tutti gli altri campi non sono abilitati. -Premere poi avvia ottimizzatore e confermare il dialogo seguente. -

    Una volta terminato, procedere come descritto in correzione dell'output. -

    Nell'immagine di esempio è stato impostato un punto nella luce centrale sulla cima della torre, un altro all'incirca nel mezzo il più in basso possibile. -Cliccare sull'immagine per ingrandirla. -
    -

    -

    Fotocamera inclinata e ruotata

    - - - - -
    Falling lines example 2 © Erik Krause
    -
    Secondo esempio di linee cadenti © Erik -Krause
    -
    Image in Control Point Editor
    -
    L'immagine nell'editor dei punti di controllo
    -
    Corrected image in Panorama Editor
    -
    Immagine corretta in Panorama Editor
    -
    -

    Se la fotocamera è stata ruotata, sono necessari almeno due coppie di punti di controllo verticali per altrettante linee. Andare nella linguetta dei punti di -controllo e individuare due coppie di punti su delle strutture verticali distanti fra loro. Per ognuna di essa si imposti un punto in basso in un riquadro, -e in alto nell'altro riquadro relativamente alla stessa struttura verticale. -Assicurarsi di aver impostato il tipo di punti a linea verticale. -

    Se non fosse presente una seconda linea verticale, è possibile utilizzarne una orizzontale con una coppia di -punti di controllo orizzontali. -

    Per poter correggere la prospettiva e la rotazione dell'immagine, è necessario ottimizzare l'inclinazione e il rollio. -

    Nella linguetta dell'ottimizzatore selezionare interfaccia: avanzata, abilitare inclinazione, rollio e usa punti di -controllo di: per l'immagine 0. Tutti gli altri campi sono disabilitati. Premere poi avvia ottimizzatore e confermare il dialogo che apparirà. -

    Una volta terminato, procedere come descritto in correzione dell'output. -

    Nell'immagine di esempio è stata scelta una coppia di punti in alto e in basso rispetto allo spigolo più spostato a sinistra dell'altare -e una allo spigolo più a destra. -Premere le immagini per ingrandirle. -
    -

    -

    Fotocamera decentrata

    - - -
    Panned camera example © Tom! Striewisch
    -
    Esempio di fotocamera decentrata © Tom! -Striewisch
    -
    corrected image
    -
    Immagine corretta
    -
    -

    Utilizzando un obiettivo spostabile questo scatto sarebbe avvenuto con la pellicola o il sensore parallelo al soggetto e la lente spostata verso destra o verso sinistra. -Il relativo parametro che simula questo comportamento nei panotools è l'imbardata. -

    Non è sempre necessario correggere un'immagine scattata da una fotocamera decentrata da che l'occhio abituato alla distorsione orizzontale della prospettiva. -Un utilizzo è quello, per esempio, di poter scattare una foto a uno specchio senza che la fotocamera venga ripresa. -

    Se la fotocamera era livellata con l'orizzonte, è sufficiente una coppia di punti di controllo orizzontali per correggere la distorsione orizzontale della prospettiva. Selezionare la linguetta dei punti di controllo -e individuare un punto alla sinistra di una linea orizzontale nsull'immagine presente nel riquadro di sinistra e un punto sulla destra della stessa linea orizzontale nel -riquadro di destra. Questo oggetto orizzontale non deve attraversare o avvicinarsi al centro dell'immagine. -Assicurarsi di aver selezionato linea orizzontale come tipologia dei punti di controllo. -

    Nella linguetta dell'ottimizzatore selezionare interfaccia: avanzata. Abilitare imbardata e usa punti di controllo di: per l'immagine -0. Tutti gli altri campi sono disabilitati. -Premere poi avvia ottimizzatore e confermare il dialogo seguente. -

    Una volta terminato, procedere come descritto in correzione dell'output. -

    In questo esempio è stata scelta una coppia di punti sul bordo superiore dello specchio rispettivamente all'estremità destra e sinistra. Cliccare sulle -immagini per ingrandirle. -

    -

    Fotocamera decentrata e ruotata

    -

    Se la fotocamera è stat ruotata durante lo scatto, saranno necessari almeno due coppie di punti di controllo orizzontali o una coppia orizzontale e una verticale. -Procedere in modo analogo all'esempio di fotocamera inclinata verso l'alto -
    -

    -

    Fotocamera decentrata, inclinata e ruotata

    - - -
    Tight spaces example © Bruno Postle
    -
    Esempio di fotografia in spazi stretti © Bruno -Postle
    -
    corrected image
    -
    Immagine corretta
    -
    -

    Utilizzando un obiettivo spostabile (nell'ipotesi di trovarne una con una lunghezza focale sufficientemente corta) questo scatto sarebbe stato effettuato con la -fotocamera livellata, la pellicola o il sensore paralleli al soggetto e la lente spostata diagonalmente. I rispettivi parametri per simulare questo comportamento -con i panotools sono imbardata, inclinazione e rollio. -

    A volte si rende necessario scattare una foto in spazi angusti ma si vorrebbe poi mostrarla in vista frontale. -

    In questo caso sono necessarie due coppie verticali e due coppie orizzontali di punti di controllo. Selezionare la linguetta dei punti di controllo e individuare -due coppie di punti a sinistra e a destra di un elemento orizzontale nell'immagine. Assicurarsi di selezionare linea orizzontale come tipologia di punti di controllo -per questi due e di individuare le linee il più distante possibile fra loro. -

    Selezionare due coppie di punti in alto e in basso di una struttura verticale nell'immagine. Assicurarsi di impostare la tipologia di punti di controllo a -linea verticale per queste due coppie. Le due linee dovrebbero essere, anch'esse, il più distante possibile fra loro. Non ci sono problemi se le linee orizzontali e -verticali si incrociano. -

    Nella linguetta dell'ottimizzatore abilitare interfaccia: avanzata. Marcare imbardata, inclinazione, rollio ed eventualmente il campo inquadrato, e -usa punti di controllo di: per l'immagine 0. In questo caso sarà probabilmente necessario ottimizzare anche il campo inquadrato, dato che l'ottimizzatore non -troverà una soluzione valida se questo è sbagliato. Tutti gli altri campi sono disabilitati. Premere poi avvia ottimizzatore e confermare il dialogo seguente. -

    Una volta terminato, procedere come descritto in correzione dell'output. -

    Nell'immagine di esempio sono state scelte le linee verticali e orizzontali corrispondenti ai bordi delle lastre. Cliccare sulle immagini per ingrandirle. -È disponibile un ottimo esempio guidato su come correggere questa immagine con hugin: [1] -
    -

    -

    Ricapitolando

    -

    Sono necessari solo pochi punti di controllo per effettuare la correzione della distorsione della prospettiva. -

    -
    • Fotocamera livellata. Correzione di: -
      • linee cadenti (distorsione verticale della prospettiva) - impostare una coppia su una struttura verticale fuori dal centro. Ottimizzare solamente l'inclinazione; -
      • distorsione orizzontale della prospettiva - impostare una coppia su una struttura orizzontale fuori dal centro. Ottimizzare solamente l'imbardata. -
      -
    • Fotocamera ruotata. Correzione di: -
      • linee cadenti (distorsione verticale della prospettiva) - impostare almeno una coppia di punti di controllo verticali su una struttura verticale più o -un ulteriore coppia verticale distante dall'altra, o una coppia orizzontale su una struttura orizzontale. Ottimizzare solamente l'inclinazione e il rollio; -
      • distorsione orizzontale della prospettiva - impostare almeno una coppia di punti di controllo orizzontali su una struttura orizzontale più o una ulteriore -coppia orizzontale distante dalla precedente, o una coppia verticale su una struttura verticale. Ottimizzare solamente l'imbardata e il rollio. -
      -
    • Fotocamera inclinata, decentrata e ruotata - impostare due coppie su due diverse strutture verticali lontane fra loro, e altre due coppie su due distinte - linee orizzontali distanti reciprocamente. Ottimizzare imbardata, inclinazione, rollio e infine il campo inquadrato. -
    -

    Correzione dell'output

    -

    In ogni caso si dovrebbe ottenere una distanza media dei punti di controllo pari a circa 0,0 e, in ogni caso, l'immagine verrà spostata in qualche direzione; quindi -l'immagine finale sarà più grande. La larghezza e l'altezza dell'immagine di output possono essere modificate, ma non è possibile ritagliare separatamente ogni lato in PTGui. -

    Aprire Panorama Editor (Ctrl+E) e premere il pulsante adatta panorama (Ctrl+F o dal menu: Modifica -> adatta panorama). In questo modo verrà -automaticamente individuata l'area di output che contiene l'immagine corretta. -

    L'immagine dovrebbe essere spostata lungo una direzione con lo spazio vuoto riempito di nero. L'altezza e la larghezza della cornice possono essere modificate -utilizzando le barre di scorrimento in fondo e a destra della finestra (in pratica si corregge il campo -inquadrato dell'immagine finale). Il rimanente spazio riempito in nero può essere ritagliato con un programma di foto ritocco. -

    -

    Salvare

    -

    In ultimo, spostarsi sulla linguetta crea panorama e premere il pulsante imposta dimensioni ottimali. Scegliere il formato TIFF, JPG (e la qualità) o PNG come output e inserire il nome del file. -Dovrebbe esserci un segno di spunta alla voce includi immagini. Premere quindi crea panorama. -

    -

    Elaborazione in serie

    -

    Se si desidera elaborare in serie (batch) alcune immagini aventi le stesse dimensioni con gli stessi valori di correzione (possibile solamente se tutte le foto -sono state scattate con l'ausilio di un treppiede e senza muovere la fotocamera), è sufficiente aggiungerle al progetto dalla linguetta delle immagini di partenza. -

    Per correggerle tutte con gli stessi valori di inclinazione e rollio (linee cadenti) è sufficiente abilitare l'opzione collegamento -nella linguetta dell'ottimizzatore per entrambi i parametri. -

    Se si desidera corregerle tutte anche per l'imbardata, selezionare il campo imbardata nella linguetta dei parametri immagine e premere due -volte la combinazione di tasti «Ctrl+C». Tenere poi premuto il tasto «shift» e utilizzare la freccia verso il basso fino a quando tutti i campi dell'imbardata -sono stati selezionati. Premere «Ctrl+V» due volte per incollare il valore in tutti i campi dell'imbardata (lo stesso procedimento è valido anche per -inclinazione e rollio) -

    Nella linguetta crea panorama selezionare TIFF multi immagine come output. Il file verrà salvato con il nome assegnata a cui verranno aggiunte - 4 cifre nella parte finale. -


    ---Erik Krause 18:38, 23 Luglio 2005 (EDT) -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Perspective_distortion.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Perspective_distortion.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Perspective_distortion.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Perspective_distortion.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ - - - - - - - - - - Distorsione prospettica - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Distorsione prospettica

    -
    - -
    - -

    Distorsione dell'immagine causata dal fatto che il mondo tridimensionale è mappato in un'immagine bidimensionale. - Per maggiori dettagli consultare la pagina sulla correzione della prospettiva -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Pincushion_distortion.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Pincushion_distortion.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Pincushion_distortion.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Pincushion_distortion.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ - - - - - - - - - - Distorsione a cuscinetto - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Distorsione a cuscinetto

    -
    - -
    - -

    Una distorsione dell'obiettivo che causa la piegatura verso l'interno delle linee rette al di fuori - del centro dell'immagine (come un cuscino). La distorsione a cuscinetto è l'opposto della distorsione a barilotto. -

    È una comune forma di distorsione dell'obiettivo che può essere corretta dal -modello di correzione dell'obiettivo dei panotools. -

    -
    A photograph showing exaggerated pincushion distortion
    Questa foto mostra una distorsione a cuscinetto esagerata
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Pitch.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Pitch.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Pitch.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Pitch.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ - - - - - - - - - - Inclinazione (o beccheggio) - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Inclinazione (o beccheggio)

    -
    - -
    - -

    Angolo di inclinazione rispetto all'orizzontale (sopra o sotto l'orizzonte). Vedere anche il rollio e - l'imbardata. -L'inclinazione (o beccheggio) rappresenta la deviazione angolare rispetto alla direzione di scatto livellata (orizzontale). -

    Se si intende scattare un panorama su più righe, sarà necessario inclinare la fotocamera versa l'alto o verso il basso. L'angolo con cui l'asse ottico -della fotocamera viene inclinato verso l'alto (valore positivo) o verso il basso (valore negativo), rappresenta l'inclinazione dell'immagine. -L'inclinazione di una immagine dello zenit (scattata rivolti verso l'alto in verticale) è pari a +90°. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Pitch"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PNG.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PNG.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PNG.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PNG.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ - - - - - - - - - - PNG - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    PNG

    -
    - -
    - -

    PNG è l'acronimo di "Portable Network Graphics" e rappresenta un formato d'immagine libero e diffuso, utilizzato per immagazzinare e scambiare -le immagini raster digitali di ogni tipo. Per informazioni generali consultare la pagina di Wikipedia dedicata al formato PNG. -

    Il formato PNG fu originariamente creato per compensare le mancanze e i limiti di utilizzo a causa dei brevetti associati all'utilizzo del formato, -largamente diffuso, GIF. Il PNG utilizza una compressione senza perdite e supporta differenti profondità di colore e la trasparenza -tramite il canale alfa. In genere comprime meglio del formato TIFF. -Non è però completamente supportato da Photoshop (è necessario un plugin per supportarne tutte le funzionalità: [1]). -

    Solo recentemente il supporto al formato PNG è stato aggiunto alla libreria pano12 dei Panorama tools. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/PNG"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Portrait.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Portrait.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Portrait.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Portrait.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - - - - - - Ritratto - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Ritratto

    -
    - -
    - -

    Orientamento dell'immagine con il lato lungo nella direzione verticale come generalmente utilizzato per la fotografia ritrattistica (da qui il nome). -

    La maggior parte dei sensori di immagine e delle pellicole fotografiche, hanno un lato lungo e uno corto. Scattare nella modalità ritratto, fornisce un -campo inquadrato maggiore lungo la verticale e minore lungo l'orizzontale in ogni singola immagine. -Per un panorama cilindrico, a parità di angolo orizzontale da coprire, sono necesari più scatti se si utilizza la posizione ritratto ma si ottiene una risoluzione maggiore. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Portrait"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PPI.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PPI.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PPI.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PPI.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,81 +0,0 @@ - - - - - - - - - - DPI - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    DPI

    -
    - -
    (reindirizzato da PPI)
    - -


    -

    - -

    I DPI/PPI sono importanti per i Panorami?

    -

    Risposta corta

    -

    No! -

    -

    Risposta lunga

    -

    Prima di procedere, conviene fornire le definizioni di alcuni termini. -

    Pixel - tutte le immagini digitali sono composte da pixel (dall'inglese "picture element" = elemento di immagine); sono l'unità di dettaglio più piccola contenuta -in una immagine. Per capire bene quanti dati di immagine sono contenuti in una immagine ci si deve riferire al numero di pixel. Per esempio, si può facilmente determinare -che un'immagine di dimensioni 3000x2400 pixel contiene più dati d'immagine rispetto a una di dimensione 640x480 pixel. Esprimere il numero di pixel, sia attraverso la -dimensione (3000x2400) o come conteggio assoluto (10 megapixel o 10 milioni di pixel), è l'unico modo corretto e sicuro per trattare le dimensioni di una immagine -digitale. -

    DPI = dots per inch (punti per pollice). È un termine comune per le stampanti e si riferisce al numero di "punti" che una stampante è in grado di stampare su una -lunghezza di un pollice. Il "punto" è l'unità più piccola di inchiostro che può essere trasferita sulla carta e non è equivalente al pixel. Un singolo pixel può generare -diversi punti (come, ad esempio, si ottiene se si stampa un'immagine a 300ppi con una stampante a 1440dpi). Il valore di DPI associati a una immagine sono essenzialmente -dei metadati: forniscono delle informazioni aggiuntive (dimensioni di stampa) ai dati di immagine ma non influenzano direttamente questi ultimi. -

    PPI = pixels per inch (pixel per pollice). Facilmente scambiabile con DPI, PPI rappresenta a sua volta una unità relativa che determina la grandezza fisica di un -pixel, quindi, conoscendo le dimensioni espresse in pixel (3000x2400) e i PPI (300ppi), è possibile definire la dimensione dell'output (in questo caso, 10x8 pollici). -

    Un'immagine digitale può essere vista come uil piano degli scacchi: si tratta di una griglia di 8x8 quadrati, quindi ha una dimensione assoluta in pixel di 8x8, o 64 -pixel. È intuitivo che anche se il piano è 8 pollici (1 pixel, o quadrato, per pollice) in entrambi i lati, o 80 piedi (1 pixel per piede), contiene comunque lo stesso -numero di dati cioè 64 pixel. -

    -

    Tornando alla domanda

    -

    WQuando si producono dei panorami, alle immagini di partenza viene assegnato un valore di ppi value dalla fotocamera o dal processore di file RAW. Questo valore, -generalmente pari a 72ppi o 300ppi, è totalmente arbitrario. Una volta che le immagini sono state elaborate con il programma di assemblatura, capita spesso che il valore dei -PPI sia cambiato: generalmente impostato al valore predefinito di 72ppi. Questo può essere fonte di preoccupazione da parte di chi lo nota, nel senso che si può pensare che -l'immagine contenga fondamentalmente meno dati rispetto al valore originale di 300ppi. In realtà, è stato variato solamente un valore dei metadati: i dati di immagine -sono rimasti esattamente gli stessi. -

    Allo scopo di pubblicare su internet le proprie immagini o di visualizzarle tramite altri supporti (DVD, CD-ROM, PDA, ecc...), il valore dei non viene nemmeno -considerato. Tutto quello che ha importanza per la visualizzazione digitale, è il numero assoluto di pixel. Gli utenti che perseguono questo scopo, non devono preoccuparsi -dei PPI dell'immagine. -

    Gli utenti che intendono invece stampare le proprie immagini, dovranno correggere il valore dei PPI, e possibilmente la dimensione dei pixel ("scalando") dell'immagine -utilizzando un programma di foto ritocco quale Photoshop o Gimp in modo da adattare la dimensione in PPI alla dimensione fisica di stampa. -

    -

    Quindi, in conclusione

    -

    I cambiamenti nel valore dei PPI durante l'assemblatura non intervengono sulla qualità dell'immagine. Se si sta lavorando per stampare il proprio lavoro, sarà necessario -cambiare il valore dei PPI al termine del processo di assemblatura. -

    - -
    -Tratto etradotto da "http://wiki.panotools.org/DPI"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Projections.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Projections.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Projections.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Projections.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,204 +0,0 @@ - - - - - - - - - - Proiezioni - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Proiezioni

    -
    - -
    - -


    -Rappresentare una vista sferica del mondo sullo schermo piatto di un computer o su un foglio di carta stampata, richiede un metodo di mappatura della scena sferica -tridimensionale, in cui la fotocamera e l'osservatore sono immersi, in un supporto bidimensionale di visualizzazione. Le tecniche utilizzate per questo processo -sono esattamente le stesse utilizzate dai produttori di cartine geografiche per proiettare l'intero pianeta, o una sua porzione, in una carta bidimensionale. -Non esiste una singola e unica proiezione per rappresentare le porzioni di una sfera; esistono invece varie proiezioni ognuna delle quali presenta vantaggi e -svantaggi. Sono state individuate diverse classi di proiezioni utilizzate per scopi differenti (vedere le pagine di Mathworld dedicate alle proiezioni), -ma solo alcune sono tradizionalmente utilizzate per le immagini panoramiche. -


    -Prima di tutto un'avvertenza: se si sta cercando una proiezione che permette di visualizzare un panorama sferico (anche parziale) su una superficie piatta -senza che le linee vengano curvate, si può ritenere terminata la ricerca dato che una tale proiezione non esiste! -

    Questo collegamento spiega perché è impossibile: http://www.progonos.com/furuti/MapProj/Normal/CartDef/MapDef/mapDef.html -

    Alcune delle proiezioni più diffuse nel mondo della fotografia panoramica sono: -

    - -

    Proiezioni cilindriche

    -

    Le proiezioni cilindriche assomigliano alle classiche mappe del mondo rettangolari. Il campo inquadrato -orizzontale può arrivare fino a 360°, la distanza orizzontale è proporzionale all'angolo di imbardata, la distanza verticale è relativa -all'angolo al di sopra o al di sotto dell'orizzonte. -

    -

    Proiezione cilindrica

    -
    Cylindrical Projection h360° v120°
    -
    proiezione cilindrica h360° v120°
    È la proiezione più comunemente utilizzata per la stampa dei panorami -con un ampio raggio di longitudine (>120°). La si può immaginare pensando di avvolgere un foglio di carta, tangente all'equatore, intorno alla sfera e proiettando una -luce dal centro della sfera stessa. In questo modo può essere rappresentato un ampio raggio di longitudine (fino a 360°) ma, in prossimità dei poli, l'immagine diviene -eccessivamente distorta; quindi la latitudine non può essere utilizzata interamente. Vedere la proiezione cilindrica per maggiori dettagli. -


    -

    -

    Proiezione di Mercatore

    -
    Mercator Projection h360° v140°
    -
    proiezione di Mercatore h360° v140°
    -

    La proiezione di Mercatore è una proiezione conforme; mostra delle distorsioni meno pronunciate rispetto a quella cilindrica o -equirettangolare ma comunque sembra molto simile. Consultare le pagine di -Mathworld per maggiori dettagli. -
    -

    -

    Miller

    -
    h360° v147°
    -
    h360° v147°
    -

    La proiezione di Miller è simile a quella di Mercatore ma con un po' meno compressione nella parte superiore e inferiore dell'immagine; questa distorsione -è meno pronunciata che nella proiezione equirettangolare rendendola adatta alla -stampa. -
    -

    -

    Proiezione equirettangolare

    - -

    Chiamata anche la "non proiezione", consiste in una rappresentazione della sfera che mappa la longitudine direttamente sulla coordinata orizzontale e la -latitudine sulla coordinata verticale. Questa proiezione è spesso utilizzata per le immagini di partenza da visualizzatori di panorami come PTViewer. -Vedere la definizione di proiezione equirettangolare per maggiori informazioni. -
    -

    -

    Cilindrica di Lambert ad area equivalente

    -
    h360° v180°
    -
    h360° v180°
    -

    Questa proiezione è ad "area equivalente"; questo la rende molto compatta e adatta agli scopi per cui non è rilevante la distorsione analogamente alla proiezione -sinusoidale. -
    -

    -

    Proiezioni azimutali

    -

    Le proiezioni azimutali hanno una simmetria rotazionale nel centro dell'immagine; queste sono il tipo di immagini prodotte da diversi tipi di obiettivi per fotocamere. -

    -

    Proiezione rettilineare

    -
    Rectilinear Projection h110° v110°
    -
    proiezione rettilineare h110° v110°
    -

    È una proiezione fondamentale e può essere pensata immaginando di porre un foglio piatto tangente alla sfera in un punto e di proiettare una luce dal centro della -stessa sfera. Naturalmente, solo una porzione di longitudine inferiore a 180° può essere rappresentata con questa proiezione (per visualizzare esattamente 180° sarebbe -necessaria un'immagine di larghezza infinita); in pratica è accettabile un angolo molto inferiore rispetto ai 180°. -

    Molte fotocamere non fisheye, producono un'immagine pressoché rettilineare per l'intero campo inquadrato (anche se con un livello variabile di -distorsione inevitabile). La proiezione rettilineare è spesso utilizzata nella stampa dei panorami che -che hanno uno sviluppo angolare inferiore ai 120° di longitudine; in questo modo vengono preservate le linee rette. Consultare la sezione dedicata alla -proiezione rettilineare per ricevere altre informazioni. -
    -

    -

    Proiezione stereografica

    -
    Stereographic Projection h180° v180°
    -
    proiezione stereografica h180° v180°
    -

    La proiezione stereografica è una tipologia conforme della -proiezione fisheye in cui la distanza dal centro NON è equivalente all'angolo nello spazio. -Ciò la rende più adatta alla stampa e alla visualizzazione. -

    Questa proiezione è limitata a un valore angolare massimo in orizzontale (e in verticale) di 360°; oltre i 330° l'immagine è gradevole, ma non utilizzabile. -
    -

    -

    Proiezione equisolida

    -
    h360° v360°
    -
    h360° v360°
    -

    È molto simile alla foto di una sfera riflettente (mirrorball). È caratterizzata dall'avere l'"area equivalente" che la rende adatta per le applicazioni in cui la -distorsione non è critica. Quella equisolida assomiglia molto alla proiezione "Lambert azimutale ad area equivalente" utilizzata nella cartografia. -
    -

    Proiezione ortografica

    -
    h180° v180°
    h180° v180°
    -

    Questa è la vista di una sfera, con un panorama mappato all'esterno, vista da lontano. -
    -

    -

    Altre proiezioni

    -

    Proiezione cubica

    -
    Cubic Projection h90° v90° per cubeface
    -
    Proiezione cubica h90° v90° per ogni faccia del cubo
    -

    Tecnicamente si tratta di un caso particolare della proiezione rettilineare; la proiezione -cubica è utilizzata come proiezione di partenza per i panorami sferici completi nella tecnologia Quicktime VR. Consultare la pagina della -proiezione cubica per maggiori dettagli. -
    -

    -

    Proiezione sinusoidale

    -
    Sinusoidal Projection h360° v180°
    -
    proiezione sinusoidale h360° v180°
    -

    La proiezione sinusoidale è del tipo ad area equivalente, caratteristica che la rende adatta alla trasmissione delle immagini sferiche -come supportate dal visualizzatore DevalVR. -
    -

    -

    Proiezione di Mercatore trasversa

    -
    Transverse Mercator Projection h147° v360°
    -
    proiezione di Mercatore trasversa h147° v360°
    -

    È una proiezione di Mercatore ruotata di 90°, utile per un'immagine a sviluppo verticale. -

    Questa tipologia è limitata a un angolo orizzontale massimo di 180°, anche se in pratica le immagini con un angolo superiore a 150° sono inutilizzabili. -
    -

    -

    Proiezione di Pannini

    -
    h180° v90°
    h180° v90°
    -

    Conosciuta anche con il nome di "retti-prospettiva" o "Panini", questa proiezione mantiene le linee verticali e quelle radiali rette. La distorsione lungo l'orizzonte è -identica a quella della proiezione stereografica mentre la distorsione verticale è simile a -quella della proiezione rettilineare. -
    -

    -

    Proiezione di Pannini equirettangolare

    -
    h180° v110°
    -
    h180° v110°
    -

    È simile alla proiezione di Pannini con la differenza che le linee radiali non sono rette; in alcune situazioni appare meno distorta. -
    -

    -

    Proiezione architetturale

    -
    h360° v152°
    -
    h360° v152°
    -

    È costituita da una proiezione di Miller al di sopra dell'orizzonte e da quella di Lambert ad area equivalente al di sotto dell'orizzonte. -È adatta alle scene in cui il terreno non è molto interessante. -
    -

    -

    Collegamenti esterni

    -
    • PROIEZIONI PER IMMAGINI PANORAMICHE: http://www.cambridgeincolour.com/tutorials/image-projections.htm -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Projections"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PSD.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PSD.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PSD.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PSD.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ - - - - - - - - - - PSD - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    PSD

    -
    - -
    - -

    Il formato Photoshop Document Format (formato di documento per Photoshop) è un formato d'immagine proprietario di Adobe Inc e utilizzato da Photoshop assieme ad altri prodotti di Adobe. -Immagazzina qualsiasi contenuto dell'immagine che Photoshop è in grado di elaborare. -

    Il formato PSD è limitato a 30.000 pixel in entrambi i lati. Dall'uscita di Photoshop versione 8 (CS), è disponibile un nuovo formato in grado di immagazzinare -fino a 300.000 pixel per ogni lato che prende il nome di Photoshop large document format (formato di documento capiente per Photoshop) e l'estensione PSB. -

    I Panotools sono in grado di salvare dei file PSD con 8 bit per canale, con vari livelli (a volte chiamati file a 24 bit) o con solo il -livello di sfondo con 16 bit per canale (a volte chiamati file a 48 bit). -

    Alcuni visualizzatori di immagini vantano di essere in grado di leggere i file PSD; in realtà, in ogni file PSD, è immagazzinata una versione appiattita -dell'immagine effettiva a più livelli e spesso è questa a essere visualizzata da tali programmi. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/PSD"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTblender.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTblender.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTblender.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTblender.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - - - - - PTblender - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    PTblender

    -
    - -
    - -

    PTblender è uno strumento da linea di comando che implementa esclusivamente le funzionalità di PTmender - relative alla correzione del colore e della luminosità (un sostituto di PTStitcher). È stato scritto da -Daniel M. German ed è interamente a codice aperto. Una versione multipiattaforma è ora inclusa nella libreria pano12 -disponibile sulle pagine di Sourceforge. -

    L'algoritmo è identico a quello presente in PTStitcher e descritto nell'articolo di Helmut Dersch riguardante -la correzione di colore e luminosità nei panorami. -

    L'utilizzo è il seguente: -

    -
     PTblender [opzioni] <tiffFiles>+
    - Opzioni:
    -       -o <prefisso>     Prefisso per il nome dei file di output
    -       -k <indice>      Indice dell'immagine da utilizzare come riferimento (basato sullo 0)
    -
    -

    L'output è costituito da file in formato TIFF adatti a essere successivamente elaborati con enblend o assemblati manualmente in un programma per la modifica delle immagini. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/PTblender"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTmender.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTmender.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTmender.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTmender.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ - - - - - - - - - - PTmender - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    PTmender

    -
    - -
    - -

    PTmender è un sostituto per il programma PTStitcher di Helmut Dersch; è completamente a codice aperto ed è stato scritto da Daniel -M. German. Una versione multipiattaforma è ora inclusa nella libreria pano12 disponibile su Sourceforge. -

    Le funzionalità più importanti di PTStitcher sono state già implementate, in particolare: -

    -
    • compatibilità con l'utilizzo degli script e dei comandi esistenti; -
    • correzione di colore e luminosità; -
    • output costituito da TIFF multipli; -
    • output in formato PSD con livelli per le maschere; -
    • output di TIFF, JPEG e PNG appiattiti. -
    -

    Esistono anche altre nuove e utili funzionalità non disponibili in PTStitcher: -

    - -

    Funzionalità non ancora implementate: -

    -
    • supporto per i formati VRML, PICT, QTVR, IVR; -
    • supporto per obiettivi non solo rettilineari, come per esempio, quelli -fisheye; -
    • probabilmente molto altro ancora... -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/PTmender"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTOptimizer.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTOptimizer.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTOptimizer.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTOptimizer.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,285 +0,0 @@ - - - - - - - - - - PTOptimizer - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    PTOptimizer

    -
    - -
    - -

    PTOptimizer è stato creato originariamente da Helmut Dersch come parte dei Panorama Tools; si tratta di un semplice programma di contorno delle routine di -ottimizzazione dei punti di controllo presenti nelle librerie pano12. -

    Il codice sorgente dell'originale PTOptimizer non è mai stato rilasciato, comunque la ricostruzione è stata piuttosto semplice e una versione multi -piattaforma è ora inclusa nella libreria pano12 disponibile su Sourceforge. -

    Qui sotto è riportato l'esempio originale aggiornato dello script di esempio commentato. È stato copiato dalla pagina di Jim Watters -

    -
    -#############           Esempio di script                  ##########################
    -#                       per utilizzare PTOptimizer
    -#
    -#
    -# Vengono elaborate solamente le righe che iniziano con "p", "v", "i", o "m".
    -# Utilizzando qualsiasi altro carattere all'inizio della riga, è possibile inserire
    -# dei commenti.
    -# Non iniziare una riga con !, dato che è utilizzato dagli script e dal plugin di aggiustamento.
    -# il carattere "*" (asterisco) indica la fine del file di script.
    -
    -# Lo script deve contenere:
    -# una riga "p" che descrive l'immagine di output (es: panorama)
    -# una riga "i" per ogni immagine di input
    -# una o più righe "v" che elencano le variabili da ottimizzare
    -# la riga "m" è opzionale e permette di specificare la modalità di ottimizzazione
    -# una riga "c" per ogni coppia di punti di controllo
    -
    -
    -# Opzioni della riga "p"
    -# w1000        larghezza in pixel
    -# h600         altezza in pixel (predefinita = larghezza/2)
    -# f0           formato della proiezione,
    -#                  0 - rettilineare (per la stampa e la visualizzazione)
    -#                  1 - cilindrica (per la stampa e per i file QTVR)
    -#                  2 - equirettangolare (per i panorami sferici): impostazione predefinita
    -#                  3 - fullframe fisheye
    -# v360         campo inquadrato orizzontale del panorama (predefinito: 360)
    -# nPICT        formato del file del panorama:
    -#                  PICT          file pict per Mac, file bmp per windows (predefinito)
    -#                  PSD           file di Photoshop a livello singolo; sono supportati i 48 bit
    -#                  PNG           formato png; sono supportati i 48 bit
    -#                  TIFF          formato tiff; sono supportati i 48 bit
    -#                  PSD_mask      file di Photoshop, un'immagine per livello
    -#                                  + maschera di forma e maschera di ritaglio frangiata al centro della sovrapposizione
    -#                  PSD_nomask    file di Photoshop, un'immagine per livello
    -#                  TIFF_mask     formato tiff, multi file, un'immagine per file; sono supportati i 48 bit
    -#                                  livello alfa con maschera di ritaglio frangiata al centro della sovrapposizione
    -#                  TIFF_m        formato tiff, multi file, un'immagine per file; sono supportati i 48 bit
    -#                                  livello alfa con maschera di ritaglio non frangiata al bordo dell'immagine
    -#                                  + maschera di forma e maschera di ritaglio non frangiata al bordo dell'immagine
    -#                  JPEG          immagine panoramica in formato jpeg. Utilizzare con l'opzione f1
    -#                                  per i panorami IBM Hotmedia.
    -#                  PAN           SmoothMove movie. Use only with f2.
    -#                  IVR           LivePicture IVR movie
    -#                                  cilindrico (formato f1) o sferico (formato f2)
    -#                  IVR_java      LivePicture Java Panorama,
    -#                                  cilindrico (formato f1) o sferico (formato f2)
    -#                  VRML          nodo di sfondo VRML, usare solamente con f2 per i panorami, o con oggetti
    -#                                  VRML-object per PTStereo
    -#                  QTVR          Apple QTVR-panomovie; da utilizzare esclusivamente con f1
    -#                  3DMF          3DMF-object (PTStereo).
    -#
    -# n"QTVR w400 h300 c1"           opzioni aggiuntive di visualizzazione in una stringa racchiusa da virgolette con formato
    -#              sono riconosciute le seguenti opzioni:
    -#                  w(larghezza) e h(altezza) della finestra di visualizzazione (solo per i QTVR su sistemi Mac)
    -#                  c(codec: 0-JPEG, 1-Cinepak, 2-Sorenson) (solo per i QTVR su Mac)
    -#                  q(qualità del codec):
    -#                     0-alta, 1-normale, 2-bassa    QTVR su Mac
    -#                     0-100(massima)           per gli altri formati jpeg (PAN, IVR, IVR_java, VRML)
    -#                  g  jpeg progressivo (0-no, 1-sì) (PAN, IVR, IVR_java, VRML)
    -#                     JPEG ottimizzato (0-attivato(predefinito), 2-disabilitato), (3-progressivo con ottimizzazione abilitata)
    -#                  p  angolo di pan iniziale ( QTVR su Mac, VRML, IVR)
    -#                  v  campo inquadrato (QTVR, VRML, IVR)
    -#                  Molte altre opzioni possono essere impostate modificando lo script per il visualizzatore
    -# -buf         sopprime i comandi di buffer nello script di assemblatura generato da PTOptimizer.
    -#                  (i comandi del buffer sono ora obsoleti; -buf e +buf nelle righe "i" sono ignorati al are
    -#                  momento dell'assemblatura). Questa opzione dovrebbe essere aggiunta se si intende modificare 
    -#                  l'immagine panoramica finale: ad esempio per i due formati PSD.
    -# a0.0 b1.0 c0.04  Opzione per creare immagini multiple in PTInterpolate e PTMorpher.
    -#                      a indica il valore iniziale,
    -#                      b valore finale
    -#                      c incremento. 0 è l'immagine di sinistra, 1 l'immagine di destra.
    -#                      Il comando interpola/morph due immagini e crea 25 immagini intermedie.
    -# u10          larghezza della frangia per assemblare tutte le immagini. default: 10
    -# k1           tenta di correggere colore e luminosità, utilizzando il numero dell'immagine come ancora
    -# b1           tenta di effettuare la correzione della luminosità senza alterare il colore, utilizzando il numero dell'immagine come ancora
    -# d1           tenta di effettuare la correzione del colore senza alterare la luminosità, utilizzando il numero dell'immagine come ancora
    -#                  Non utilizzare più di uno fra k, d, b; è un metodo nuovo di correzione.
    -
    -p w800 nPSD_mask -buf
    -
    -
    -# Le righe "i" descrivono le immagini di partenza. È necessaria una riga per ogni immagine
    -# I parametri non necessari per l'ottimizzazione ma richiesti per l'assemblatura, possono essere
    -# impostati da qui; l'ottimizzatore li aggiungerà automaticamente alle righe "o"
    -# ----------------
    -# f0           formato della proiezione:
    -#                  0 - rettilineare (lenti comuni)
    -#                  1 - panoramica (fotocamere a scansione come la Noblex)
    -#                  2 - fisheye circolare
    -#                  3 - fullframe fisheye
    -#                  4 - PSphere, equirettangolare
    -#                  8 - Ortografica. È permessa solamente in PTStereo e per la prima
    -#                                   immagine; indica una mappa o un piano del terreno.
    -# w600         larghezza in pixel
    -# h1000        altezza in pixel
    -# v82          campo inquadrato orizzontale dell'immagine (richiesto, ma ignorato per f8)
    -# y0           angolo di imbardata (necessario)
    -# p43          angolo di inclinazione (necessario)
    -# r0           angolo di rollio (necessario)
    -# a,b,c        coefficienti iniziali di correzione dell'obiettivo (predefiniti a0, b0, c0 opzionale)
    -#                  (consultare http://www.fh-furtwangen.de/~dersch/barrel/barrel.html)
    -# d,e          spostamento iniziale dell'obiettivo in pixel (default d0 e0, opzionale).
    -#                  utile per correggere gli spostamenti dal centro dell'immagine
    -#                  d - spostamento orizzontale
    -#                  e - spostamento verticale
    -# g,t          spostamento iniziale dell'obiettivo. Utile per rimuovere piccoli disallineamenti
    -#                  tra la linea di scansione in relazione al supporto
    -#                  g - spostamento orizzontale
    -#                  t - spostamento verticale
    -# u10          (obsoleto, utilizzato globalmente nella riga p) specifica la larghezza delle frange per l'assemblatura. default:10
    -# S100,600,100,800   Selezione (l, r, t, b). Solo i pixel all'interno del rettangolo verranno utilizzati per la conversione.
    -#                       La dimensione dell'immagine originale verrà utilizzata per calcolare tutti i parametri
    -#                       (es: il campo inquadrato si riferisce all'immagine originale).
    -# C100,600,100,800   Ritaglio (l ,r, t , b).  Solo i pixel all'interno del rettangolo verranno utilizzati per la conversione.
    -#                       La dimensione dell'immagine ritagliata verrà utilizzata per calcolare tutti i parametri
    -#                       (es: il campo inquadrato si riferisce alla porzione di immagine ritagliata).
    -# m20          (obsoleto, utilizzare S e C) ignora una cornice larga 20 pixel. default: 0
    -# mx100        (obsoleto, utilizzare S e C) ritaglia al rettangolo più luminoso con una dimensione di 100x200;
    -# my200        (obsoleto, utilizzare S e C) utilizzato solo per le immagini fisheye circolari (f2)
    -# s0           (obsoleto, ignorato, sempre sfumato) indica la posizione della cucitura tra il buffer e l'immagine:
    -#                  0- al centro della sovrapposizione ("sfumatura" ,default)
    -#                  1- al bordo dell'immagine ('paste').
    -# o            (lettera minuscola). Morph-to-fit utilizzando i punti di controllo.
    -# k0           (obsoleto, utilizza la correzione della riga "p" ancora utilizzata dal plugin)
    -#                  tenta di correggere colore e luminosità quando fonde l'immagine e il buffer, valori possibili:
    -#                  0 - nessuna correzione (default);
    -#                  1 - cambia immagine;
    -#                  2 - cambia buffer;
    -#                  3 - cambia entrambe
    -#                  questa caratteristica non funziona molto bene!
    -# X10          coordinate assolute della posizione della fotocamera, usato solo per PTStereo
    -# Y200         se la fotocamera è allineata (imbardata = inclinazione = rollio = 0,0),
    -# Z-13.5       X è la coordinata verso destra, Y quella verticale verso l'alto e
    -#              -Z è quella diretta come lo sguardo.
    -# nNome        nome dell'immagine (ignorato da PTOptimizer, utilizzato da PTStitcher)
    -#
    -#      I parametri di diverse immagini possono essere collegati utilizzando il carattere "="
    -#      seguito dal numero dell'immagine partendo da 0.
    -#      Per esempio "v=0" imposta il valore del campo inquadrato orizzontale pari a quello
    -#      dell'immagine con numero 0. Questa caratteristica si applica per le variabili
    -#      v, a, b, c, (r, p, y facendo attenzione) d, e, g e t
    -
    -
    -i f2 r0      p0    y0     v183    a0 b-0.1 c0  mx400 my400 
    -i f2 r-0.5   p1    y182   v=0     a0 b-0.1 c0  mx400 my400 
    -
    -
    -# Opzioni della riga "v":
    -# -----------------
    -# NOTA: la riga "v" deve venire dopo le righe "i".
    -# Le variabili di ottimizzazione sono elencate con il numero d'immagine partendo da 0.
    -# Sono consentite più righe "v".
    -#
    -# y0           Ottimizza l'imbardata dell'immagine 0
    -# p1           Ottimizza l'inclinazione dell'immagine 1
    -# r2           Ottimizza il rollio dell'immagine 2
    -# v0           Ottimizza il campo inquadrato dell'immagine 0
    -# a2           Ottimizza il parametro "a" di correzione dell'obiettivo per l'immagine 2
    -#                  anche "b" e "c" possono essere ottimizzati allo stesso modo.
    -# X1           Ottimizza la coordinata x dell'immagine 1, solo per PTStereo
    -# Y2           Ottimizza la coordinata y dell'immagine 2, solo per PTStereo
    -# Z6           Ottimizza la coordinata z dell'immagine 6, solo per PTStereo
    -#
    -#      Se un'immagine ha un parametro collegato a quello di un'altra immagine, è sufficiente ottimizzare
    -#        solamente la principale.
    -
    -v v0 r0 p0 r1 p1 y1
    -
    -#
    -# Opzioni della riga "m"
    -# ----------------
    -# Imposta la modalità di assemblatura, non richiesta (opzionale)
    -#
    -# g2.5         Imposta il valore della gamma per le computazioni interne (default 1,0)
    -#                  See <http://www.fh-furtwangen.de/~dersch/gamma/gamma.html>
    -# i2           impostazione dell'interpolatore; vedere <http://www.fh-furtwangen.de/~dersch/interpolator/interpolator.html>
    -#                scelte possibili:
    -#                   0 - poly3 (default)
    -#                   1 - spline16,
    -#                   2 - spline36,
    -#                   3 - sinc256,
    -#                   4 - spline64,
    -#                   5 - bilinear,
    -#                   6 - nearest neighbor,
    -#                   7 - sinc1024
    -#              \/ filtri antialiasing \/ vedere <http://www.pano2qtvr.com/dll_patch/>
    -#                   8 - Box
    -#                   9 - Bartlett/Triangle
    -#                   10 - Hermite
    -#                   11 - Hanning
    -#                   12 - Hamming
    -#                   13 - Blackmann
    -#                   14 - Gaussian 1/sqrt(2)
    -#                   15 - Gaussian 1/2
    -#                   16 - Quadardic
    -#                   17 - Cubic
    -#                   18 - Catmull-Rom
    -#                   19 - Mitchell
    -#                   20 - Lanczos2
    -#                   21 - Lanczos3
    -#                   22 - Blackman/Bessel
    -#                   23 - Blackman/sinc
    -#
    -# p0           Crea il panorama dopo l'ottimizzazione dei punti di controllo
    -#                  0 no(default), 1 sì
    -
    -m g1.5 i6
    -
    -
    -#
    -# righe "c" 
    -# ----------------
    -# Righe del punto di controllo
    -# Una riga per coppia di punti
    -# a relativo a una coppia di punti per immagine e per variabile da ottimizzare.
    -# Più sono le variabili da ottimizzare, maggiore è il numero di punti di controllo necessari.
    -#
    -# n0           prima immagine
    -# N1           seconda immagine
    -# x1066.5       posizione x del punto della prima immagine
    -# y844.333      posizione y del punto della prima immagine
    -# X239.52       posizione x del punto della seconda immagine
    -# Y804.64       posizione y del punto della seconda immagine
    -# t0           tipo di punto di controllo (opzionale)
    -#                  0 - normale (default)
    -#                  1 - ottimizza solo orizzontalmente
    -#                  2 - ottimizza solo verticalmente
    -#                  3+ (tutti gli altri numeri) - linea retta
    -
    -
    -
    -
    -*
    -Tutto quello che segue il simbolo "*" (asterisco) viene ignorato.
    -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/PTOptimizer"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTStitcher.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTStitcher.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTStitcher.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTStitcher.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,328 +0,0 @@ - - - - - - - - - - PTStitcher - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    PTStitcher

    -
    - -
    - -


    -

    - -

    Prefazione

    -

    PTStitcher è una delle applicazioni principali dei Panorama tools, assieme a PTOptimizer e ai plugin dei Panorama Tools. -

    Per assemblare un panorama probabilmente non si avrà a che fare spesso direttamente con PTStitcher, dato che l'operazione di creazione degli script è effettuata -quasi completamente dalle varie interfacce grafiche e da alcuni strumenti come PanoCube. -

    In ogni caso, si potrebbe presentare l'occasione in cui è necessario scrivere o almeno capire gli script, o avviare direttamente PTStitcher (per esempio per effettuare -delle elaborazioni in serie). -

    -

    Aggiornamenti

    -

    Il codice sorgente di PTStitcher non è mai stato reso pubblico, quindi non è possibile effettuare dei cambiamenti a certe funzioni. Ma, dato che la maggior parte -delle sue funzionalità, sono disponibili anche nella libreria pano12, PTStitcher beneficia di ogni aggiornamento di questa libreria -centrale. -

    PTStitcher è disponibile con ogni distribuzione dei panotools su uno dei mirror disponibili. Per poter utilizzare le nuove funzionalità, è necessaria una copia -recente della libreria pano12. Sono state rese disponibili le versioni binarie solamente per win32, i386 Linux e -mac classic, quindi non è possibile utilizzarlo su sistemi OS X o a 64bit. -

    Esiste un sostituto di PTStitcher a codice aperto denominato nona nel progetto hugin, -che fornisce la maggior parte (ma non tutte) le funzioni offerte da PTStitcher. Un'altra alternativa a codice aperto, è PTmender, che è parte del progetto pano12 su sourceforge. -

    -

    Introduzione

    -

    PTStitcher è comandato tramite script; questi sono scritti in puro formato testuale e sono modificabili con un qualsiasi editor di testo (es: notepad su Windows). -

    Vengono elaborati riga per riga; ogni riga inizia con un carattere speciale (sensibile alle differenza tra maiuscole e minuscole) che indica il significato del -contenuto del resto della linea. Tutti gli altri caratteri posti all'inizio di una riga, vengono ignorati e la linea è considerata come un semplice commento. -

    -

    Caratteristiche

    -

    La maggior parte delle caratteristiche offerte da PTStitcher sono facilmente accessibili dalle più diffuse interfacce grafiche (vedere più in alto), ma alcune no. -

    -

    Accessibile da interfaccia grafica

    -

    PTStitcher è in grado di assemblare: -

    - -

    Le applicazioni di PTStitcher vanno oltre la semplice unione di panorami; può anche essere utilizzato per: -

    -
    • rimappare le immagini tra due diverse proiezioni; -
    • estrarre o inserire le immagini rettilineari da un panorama sferico o cilindrico; -
    • rimappare un panorama sferico in modo che il nadir e lo zenit siano modificabili; -
    • per rimpicciolire o ingrandire delle immagini avvalendosi di interpolatori di alta qualità; -
    • per correggere la distorsione della prospettiva. -
    -

    Accessibile attraverso script o altri strumenti

    -

    PTStitcher può essere utilizzato da solo o in abbinamento ad altri strumenti (senza interfaccia grafica): -

    -
    • con uno strumento che separa i canali di colore (ImageMagick) permette di correggere l'aberrazione -cromatica. -
    • assemblando 6 facce del cubo in un'immagine panoramica equirettangolare; questo può essere fatto utilizzando un'interfaccia grafica, ma è più -comodo farlo utilizzando uno script, un file di elaborazione in serie o PanoCube Plus. -
    -

    Esempio di Script

    -

    Qui sotto è riportato l'esempio originale aggiornato dello script di esempio commentato. È stato copiato dalla pagina di Jim Watters -

    -
    -#############           Esempio di script                  ##########################
    -#                       per utilizzare PTStitcher
    -#
    -#
    -# Solo le righe che iniziano con le lettere "p", "o", "i", o "m" vengono elaborate, 
    -# quindi è possibile aggiungere al file dei commenti e delle informazioni personalizzate utilizzando 
    -# un qualsiasi altro carattere di inizio riga.  
    -# Il carattere "*" (asterisco) all'inizio di una riga, indica la fine del file di script.
    -
    -# Lo script di assemblatura deve contenere:
    -# una riga "p" che descrive l'immagine di output (es: panorama);
    -# una riga "o" per ogni immagine di input;
    -# una riga "i" opzionale per ogni immagine di input;
    -# una riga "m" opzionale che permette di specificare le modalità di ottimizzazione;
    -# la riga "C" opzionale che permette il morphing dei punti di controllo.
    -
    -

    Opzioni della riga "p"

    -
    -# Opzioni della riga "p"
    -# w1000        larghezza in pixel
    -# h600         altezza in pixel (predefinita = larghezza/2)
    -# f0           formato della proiezione,
    -#                  0 - rettilineare (per la stampa e la visualizzazione)
    -#                  1 - cilindrica (per la stampa e per i file QTVR)
    -#                  2 - equirettangolare (per i panorami sferici): impostazione predefinita
    -#                  3 - fullframe fisheye
    -# v360         campo inquadrato orizzontale del panorama (predefinito: 360)
    -# nPICT        formato del file del panorama:
    -#                  PICT          file pict per Mac, file bmp per Windows (predefinito)
    -#                  PSD           file di Photoshop a livello singolo; sono supportati i 48 bit
    -#                  PNG           formato png; sono supportati i 48 bit
    -#                  TIFF          formato tiff; sono supportati i 48 bit
    -#                  PSD_mask      file di Photoshop, un'immagine per livello
    -#                                  + maschera di forma e; maschera di ritaglio frangiata al centro della sovrapposizione
    -#                  PSD_nomask    file di Photoshop, un'immagine per livello
    -#                  TIFF_mask     formato tiff, multi file, un'immagine per file; sono supportati i 48 bit
    -#                                  livello alfa con maschera di ritaglio frangiata al centro della sovrapposizione
    -#                  TIFF_m        formato tiff, multi file, un'immagine per file; sono supportati i 48 bit
    -#                                  livello alfa con maschera di ritaglio non frangiata al bordo dell'immagine
    -#                                  + maschera di forma e; maschera di ritaglio non frangiata al bordo dell'immagine
    -#                  JPEG          immagine panoramica in formato jpeg. Utilizzare con l'opzione f1
    -#                                  per i panorami IBM Hotmedia.
    -#                  PAN           SmoothMove movie. Usare solamente con f2.
    -#                  IVR           LivePicture IVR movie
    -#                                  cilindrico (formato f1) o sferico (formato f2)
    -#                  IVR_java      LivePicture Java Panorama,
    -#                                  cilindrico (formato f1) o sferico (formato f2)
    -#                  VRML          nodo di sfondo VRML, usare solamente con f2 per i panorami, o con oggetti
    -#                                  VRML-object per PTStereo
    -#                  QTVR          Apple QTVR-panomovie; da utilizzare esclusivamente con f1
    -#                  3DMF          3DMF-object (PTStereo).
    -#
    -# n"QTVR w400 h300 c1"           opzioni aggiuntive di visualizzazione in una stringa racchiusa da virgolette con formato
    -#              sono riconosciute le seguenti opzioni:
    -#                  w(larghezza) e h(altezza) della finestra di visualizzazione (solo per i QTVR su sistemi Mac)
    -#                  c(codec: 0-JPEG, 1-Cinepak, 2-Sorenson) (solo per i QTVR su Mac)
    -#                  q(qualità del codec):
    -#                     0-alta, 1-normale, 2-bassa    QTVR su Mac
    -#                     0-100(massima)           per gli altri formati jpeg (PAN, IVR, IVR_java, VRML)
    -#                  g  jpeg progressivo (0-no, 1-sì) (PAN, IVR, IVR_java, VRML)
    -#                     JPEG ottimizzato (0-attivato(predefinito), 2-disabilitato), (3-progressivo con ottimizzazione abilitata)
    -#                  p  angolo di pan iniziale ( QTVR su Mac, VRML, IVR)
    -#                  v  campo inquadrato (QTVR, VRML, IVR)
    -#                  Molte altre opzioni possono essere impostate modificando lo script per il visualizzatore
    -# u10          larghezza della frangia per assemblare tutte le immagini. default: 10
    -# k1           tenta di correggere colore e luminosità, utilizzando il numero dell'immagine come ancora
    -# b1           tenta di effettuare la correzione della luminosità senza alterare il colore, utilizzando il numero dell'immagine come ancora
    -# d1           tenta di effettuare la correzione del colore senza alterare la luminosità, utilizzando il numero dell'immagine come ancora
    -#                  Non utilizzare più di uno fra k, d, b; è un metodo nuovo di correzione.
    -
    -p w800 nPSD_mask
    -
    -

    Opzioni della riga "i"

    -
    -# La riga "i" è opzionale e descrive le immagini di partenza
    -# nName        nome dell'immagine di input.
    -#                  opzione scavalcabile associando dei parametri da linea di comando a PTStitcher
    -
    -i n"photo1.jpg"
    -
    -

    Opzioni della riga "o"

    -
    -# Le righe "o" descrivono le immagini di input. È necessaria una linea per immagine.
    -# L'altezza e la larghezza dell'immagine vengono ottenute dall'immagine stessa
    -# f0           formato della proiezione:
    -#                  0 - rettilineare (lenti comuni)
    -#                  1 - panoramica (fotocamere a scansione come la Noblex)
    -#                  2 - fisheye circolare
    -#                  3 - fullframe fisheye
    -#                  4 - PSphere, equirettangolare
    -# v82          campo inquadrato orizzontale dell'immagine (necessario)
    -# y0           angolo di imbardata (necessario)
    -# p43          angolo di inclinazione (necessario)
    -# r0           angolo di rollio (necessario)
    -# a,b,c        coefficienti di correzione dell'obiettivo (opzionale)
    -#                  (consultare http://www.fh-furtwangen.de/~dersch/barrel/barrel.html)
    -# d,e          spostamento iniziale dell'obiettivo in pixel (default d0 e0, opzionale).
    -#                  utile per correggere gli spostamenti dal centro dell'immagine
    -#                  d - spostamento orizzontale
    -#                  e - spostamento verticale
    -# g,t          spostamento iniziale dell'obiettivo. Utile per rimuovere piccoli disallineamenti della
    -#                  linea di scansione relativamente al supporto (pellicola)
    -#                  g - spostamento orizzontale
    -#                  t - spostamento verticale
    -# +buf         (obsoleto, -buf e +buf vengono ignorati quando si assembla)
    -#                  carica e unisce le immagini con buffer
    -# -buf         (obsoleto, -buf e +buf sono vengono ignorati quando si assembla)
    -#                  salva i risultati nel buffer. La prima riga "o" dovrebbe contenere
    -#                  un comando "-buf", l'ultima riga un comando "+buf"
    -#                  e tutte le altre righe sia "+buf" che "-buf"
    -#                  Eccezione: rimuovere tutti i comandi "buf" quando si creano dei file di
    -#                  Photoshop per preservare le immagini originali.
    -# u10          (obsoleto, usato globalmente nelle righe "p") larghezza della frangia per l'assemblatura. default:10
    -# S100,600,100,800   Selezione (l, r, t, b). Solo i pixel all'interno del rettangolo verranno utilizzati per la conversione.
    -#                       La dimensione dell'immagine originale verrà utilizzata per calcolare tutti i parametri
    -#                       (es: il campo inquadrato si riferisce all'immagine originale).
    -#                       La selezione può essere al di fuori della dimensione dell'immagine.
    -# C100,600,100,800   Ritaglio (l ,r, t , b).  Solo i pixel all'interno del rettangolo verranno utilizzati per la conversione.
    -#                       La dimensione dell'immagine ritagliata verrà utilizzata per calcolare tutti i parametri
    -#                       (es: il campo inquadrato si riferisce alla porzione di immagine ritagliata).
    -# m20          (obsoleto, utilizzare S e; C) ignora una cornice larga 20 pixels. default: 0
    -# mx100        (obsoleto, utilizzare S e; C) ritaglia al rettangolo più luminoso con una dimensione di 100x200;
    -# my200        (obsoleto, utilizzare S e; C) utilizzato solo per le immagini fisheye circolari (f2)
    -# s0           (obsoleto, ignorato, sempre sfumato) indica la posizione della cucitura tra il buffer e l'immagine:
    -#                  0- al centro della sovrapposizione ("sfumatura" ,default)
    -#                  1- al bordo dell'immagine ('paste').
    -# o            (lettera minuscola). Morph-to-fit utilizzando i punti di controllo.
    -# k0           (obsoleto, utilizza la correzione della riga "p" ancora utilizzata dal plugin)
    -#                  tenta di correggere colore e luminosità quando fonde l'immagine e il buffer, valori possibili:
    -#                  0 - nessuna correzione (default);
    -#                  1 - cambia immagine;
    -#                  2 - cambia buffer;
    -#                  3 - cambia entrambe
    -#                  questa caratteristica non funziona molto bene!
    -
    -o f2 r0   p0    y0     v183    a0 b-0.1 c0  S100,600,100,800
    -o f2 r0   p0    y180   v183    a0 b-0.1 c0  S100,600,100,800
    -
    -

    Opzioni della riga "m"

    -
    -# Opzioni della riga "m"
    -# ----------------
    -# Imposta la modalità di assemblatura, non richiesto
    -#
    -# g2.5         imposta il valore della gamma per le operazioni interne (default 1,0)
    -#                  See <http://www.fh-furtwangen.de/~dersch/gamma/gamma.html>
    -# i2           Imposta l'interpolatore. Vedere <http://www.fh-furtwangen.de/~dersch/interpolator/interpolator.html>
    -#                uno tra:
    -#                   0 - poly3 (default)
    -#                   1 - spline16,
    -#                   2 - spline36,
    -#                   3 - sinc256,
    -#                   4 - spline64,
    -#                   5 - bilinear,
    -#                   6 - nearest neighbor,
    -#                   7 - sinc1024
    -#              \/ filtri antialiasing \/ vedere <http://www.pano2qtvr.com/dll_patch/>
    -#                   8 - Box
    -#                   9 - Bartlett/Triangle
    -#                   10 - Hermite
    -#                   11 - Hanning
    -#                   12 - Hamming
    -#                   13 - Blackmann
    -#                   14 - Gaussian 1/sqrt(2)
    -#                   15 - Gaussian 1/2
    -#                   16 - Quadardic
    -#                   17 - Cubic
    -#                   18 - Catmull-Rom
    -#                   19 - Mitchell
    -#                   20 - Lanczos2
    -#                   21 - Lanczos3
    -#                   22 - Blackman/Bessel
    -#                   23 - Blackman/sinc
    -#                   
    -# f0               Richiama la Faster Transformation, richiamata anche creando un file denominato "pano12_opt.txt" 
    -#                   nella stessa cartella del progetto con all'interno la riga FAST_TRANSFORM
    -
    -m g1.5 i6 f0
    -
    -

    Opzioni della riga "z"

    -
    -# Opzioni della riga "z"
    -# ----------------
    -# Profondità di campo estesa, non richiesta
    -#
    -# Determina automaticamente, per ogni punto in un'immagine, quale tra numerose immagini sovrapposte 
    -# ha la messa a fuoco migliore. Le maschere sono generate in modo da rivelare le parti con messo a 
    -# fuoco migliore, di ogni immagine. La creazione delle frange deve essere abilitata. Usato con il formato di file
    -# PSD_mask o TIFF_mask permette di modificare la maschera o con i formati di file appiattiti permette di ottenere
    -# un risultato finale appiattito. Non funziona se sono richiamate la correzione del colore o della luminosità.
    -#
    -# m2           tipo di maschera
    -#                m0 maschera a contorno definito, mutualmente esclusiva
    -#                m1 maschera a contorno definito, pila di maschere nidificate
    -#                m2 maschere fuse, pila di maschere nidificate (default e; fortemente raccomandato)
    -#                   (questa opzione include una computazione di levigatura che sembra aiutare molto)
    -# fN           dimensione della finestra di stima della messa a fuoco, N = metà larghezza della finestra.
    -#                Il valore raccomandato è pari a 0,5% della larghezza dell'immagine, per esempio 4 pixel per un'immagine a 800 pixel.
    -#                La quantità di calcoli per la stima della messa a fuoco aumenta proporzionalmente a N^2.  Default f4.
    -# sN           dimensione della finestra di levigatura, N = metà larghezza della finestra.
    -#                 Il valore raccomandato è pari a 0,5% della larghezza dell'immagine, per esempio 4 pixel per un'immagine a 800 pixel.
    -#                 La quantità di calcoli per la levigatura aumenta proporzionalmente a N^2.  Default f4.
    -
    -z m2 f4 s4
    -
    -

    Opzioni della riga "C"

    -
    -# righe "C"
    -# ----------------
    -# Righe di morphing del punto di controllo
    -# Una linea per punto
    -# Creta automaticamente dall'ottimizzatore
    -#
    -# i0           immagine
    -# x363.726     posizione x iniziale del punto
    -# y125.738     posizione y iniziale del punto
    -# X363.838     posizione x modificata del punto
    -# Y125.618     posizione y modificata del punto
    -
    -C i0  x363.726 y125.738 X363.838 Y125.618
    -
    -*
    -Tutto ciò che si trova dopo il carattere "*" (asterisco) è ignorato.
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/PTStitcher"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTtiff2psd.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTtiff2psd.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTtiff2psd.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/PTtiff2psd.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - - - - - PTtiff2psd - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    PTtiff2psd

    -
    - -
    - -

    PTtiff2psd è una utilità che permette di convertire un gruppo di immagini in formato TIFF, in file -multi-livello di formato PSD adatti a essere caricati in Photoshop o Gimp; questo programma è stato scritto da Daniel M German. -Una versione multipiattaforma è ora inclusa nella libreria pano12 disponibile nelle pagine di Sourceforge. -

    Le funzionalità sono simili a quelle delle azioni di assemblatura di Erik Krause per Photoshop, con la differenza che -PTtiff2psd è un programma indipendente e funziona da linea di comando. -

    Diversi strumenti quali PTStitcher, nona, PTGui, PTmender e PTblender generano diversi file in formato TIFF -che possono essere utilizzati come input per PTtiff2psd. -

    L'utilizzo pratico è il seguente: -

    -
     PTtiff2psd [opzioni] <tiffFiles>+
    - Opzioni:
    -         -o <nomefile>   Nome del file di uscita (default merged.psd)
    -         -m              Aggiungi maschera di assemblatura
    -         -r              Inverti i livelli
    -
    - -
    -Tratto e tradotto da "http://wiki.panotools.org/PTtiff2psd"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/QTVR.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/QTVR.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/QTVR.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/QTVR.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ - - - - - - - - - - QTVR - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    QTVR

    -
    - -
    - -

    QuickTime Virtual Reality (realtà virtuale di QuickTime) è una branca delle funzionalità del programma Apple Quicktime per il formato di file non lineare -per i filmati. Come i filmati lineari, hanno estensione .mov e necessitano del QuickTime player per essere visualizzati. I panorami in formato QTVR molto semplici, possono -essere anche visualizzati utilizzando PTViewer. -

    QTVR si riferisce all'abilità di visualizzare i panorami sferici in -proiezione cubica, cilindrica, -panoramica parziale, panorami multinodali e oggetti in un visualizzatore dove l'utente è in grado di guardarsi intorno o ruotare gli oggetti utilizzando mouse e tastiera. -I panorami possono essere collegati utilizzando gli "hotspot" permettendo così di muoversi da un panorama a un altro o di collegare diversi panorami in un file multinodale. -

    Anche se la concorrenza è costantemente in miglioramento (es: PTViewer o SPi-V), non ci sono più stati sviluppi significativi della tecnologia QTVR negli ultimi anni. -Vedere Quicktime per maggiori informazioni. -

    Con l'aiuto di "tag" quali <EMBED> e <OBJECT>, si è in grado di specificare i parametri direttamente nel codice HTML. -Consultare anche "campo inquadrato dinamico per i QTVR embedded". -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/QTVR"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/RAW.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/RAW.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/RAW.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/RAW.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ - - - - - - - - - - RAW - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    RAW

    -
    - -
    - -

    La sigla RAW si riferisce a un gruppo di alcune centinaia di formati d'immagine proprietari che contengono dei dati non elaborati provenienti da -convertitori analogico/digitale (A/D). Questi file devono essere elaborati (o almeno interpolati, dato che le informazioni sul colore per la maggior parte di essi, è -immagazzinata in pixel diversi) e convertiti in un formato d'immagine più comune per essere visualizzate o utilizzate. Potrebbero anche contenere delle informazioni -addizionali paragonabili ai dati di tipo EXIF. -

    -

    Convertitori RAW

    -

    Esistono molti convertitori per file RAW, ma solo pochi sono in grado di convertire la maggior parte dei formati RAW e sono perlopiù basati sulle dcraw scritte da -David J. Coffin. Molti offrono sofisticate modalità di controllo del bilanciamento del bianco, dell'ampiezza tonale, del contrasto, dei dettagli in ombra, -dell'esposizione ecc...; alcuni permettono addirittura la correzione dell'aberrazione cromatica -o del rumore. -

    È sempre possibile cercare e trovare come estrarre un maggior intervallo dinamico dai file RAW in questi -convertitori, ma per poter avere dei file di output a 16 bit per canale con un intervallo dinamico completo, seguire -la guida relativa all'estrazione dell'intervallo dinamico dai file RAW. -

    -

    Collegamenti esterni

    -
    • w:Camera raw su Wikipedia -
    • RAW, JPEG e TIFF di Bob Atkins su Photo.net -
    • Vantaggi e svantaggi del formato RAW e altre informazioni essenziali -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/RAW"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Rectilinear_Projection.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Rectilinear_Projection.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Rectilinear_Projection.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Rectilinear_Projection.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,58 +0,0 @@ - - - - - - - - - - Proiezione rettilineare - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Proiezione rettilineare

    -
    - -
    - -
    Rectilinear projection, with permission from Ben Kreunen
    -

    Quella rettilineare è un tipo di proiezione per mappare una porzione di superficie di una sfera -in una immagine piatta. Prende anche il nome di proiezione "gnomica", "gnomonica", o "del piano tangente" e la si può immaginare ipotizzando di posizionare un foglio di carta -tangente a una sfera in un singolo punto e illuminando la superficie della sfera dal suo centro. Le pagine di Mathworld contengono un esempio e descrivono i principi -matematici che stanno alla baso di questa proiezione.[1] -

    La proiezione rettilineare è una proiezione fondamentale nel mondo delle immagini panoramiche, dato che gli obiettivi più comuni (non fisheye) per le fotocamere, -produco un'immagine che è pressoché rettilineare sull'intero campo inquadrato. Le macchine fotografiche "pinhole", infatti, forniscono esattamente una proiezione su un -piano tangente della sfera nel loro piano diretto, e i sistemi d'immagine più semplici (le fotocamere "consumer" senza obiettivi fisheye, su tutte) approssimano -questo comportamento. Ecco perché la proiezione rettilineare rappresenta il tipo di proiezione più diffuso per le immagini di partenza necessarie alla creazione di -panorami parziali. -

    La proiezione rettilineare gode anche della fondamentale proprietà per cui le linee rette nello spazio reale vengono mappate come tali anche nell'immagine -proiettata. Questa proprietà rende le immagini rettilineari adatte alla stampa dei panorami che non coprono un intervallo troppo ampio di latitudine o longitudine -(per esempio <120°). Molti visualizzatori di panorami che mostrano solamente una porzione della scena alla volta, usano la proiezione rettilineare -(senza tener conto del tipo di proiezione utilizzata dall'immagine originale). -

    La proiezione cubica è un caso particolare della proiezione rettilineare, in cui vengono create delle -sotto-proiezioni rettilineari di 90° x 90° che coprono le 6 facce di un cubo. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/relink-images.pl hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/relink-images.pl --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/relink-images.pl 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/relink-images.pl 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; - -undef $/; - -for my $file (@ARGV) -{ - open FILE, "<$file"; - my $data = ; - close FILE; - - $data =~ s/]*) src="([^\/"]*)"/$file"; - print FILE $data; - close FILE; -} - diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/RGBE.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/RGBE.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/RGBE.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/RGBE.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - - - - - - RGBE - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    RGBE

    -
    - -
    - -

    Radiance RGBE -è un formato per immagini HDR inventato da Greg Ward Larson per il suo software di visualizzazione Radiance. -L'estensione del file è generalmente .hdr. Esso immagazzina i pixel come un byte per ogni valore RGB (rosso, verde e blu) con un ulteriore byte per l'esponente condiviso. -Quindi occupa quattro byte per ogni pixel e l'intervallo dinamico copre 80 "decades". -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/RGBE"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Roll.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Roll.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Roll.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Roll.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ - - - - - - - - - - Rollio - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Rollio

    -
    - -
    - -

    Il rollio è l'angolo di rotazione della fotocamera rispetto al suo asse ottico. -

    Se la fotocamera non è livellata, lo scompenso può essere in due direzioni: -

    -
    • l'immagine è ruotata verso l'alto o verso il basso, a cui corrisponde un valore dell'inclinazione (o beccheggio) diverso da 0,0; -
    • l'immagine è ruotata in modo tale che la linea dell'orizzonte non è orizzontale; in questa eventualità si ha un valore di rollio diverso da 0,0 -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Roll"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Spherical.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Spherical.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Spherical.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Spherical.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ - - - - - - - - - - Sferico - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Sferico

    -
    - -
    - -

    Un formato panoramico che contiene l'intera sfera che circonda l'osservatore. I formati sferici più diffusi sono le proiezioni - equirettangolare e - cubica. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Spherical"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Stereographic_Projection.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Stereographic_Projection.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Stereographic_Projection.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Stereographic_Projection.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ - - - - - - - - - - Proiezione stereografica - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Proiezione stereografica

    -
    - -
    - -
    Circular sterographic projection, based on Ben Kreunen equirectangular example
    Proiezione stereografica circolare, basata sull'esempio -equirettangolare di Ben Kreunen
    -

    Quella stereografica è una proiezione fisheye alternativa conforme, particolarmente adatta -alla stampa più di quanto non la sia la standard fisheye che restituisce immagini eccessivamente distorte ai bordi. -

    Tutte le versioni della libreria pano12 a partire dalla 2.8.1, forniscono il supporto a questa e ad altre -proiezioni più recenti. -Diverse interfacce grafiche, inclusi hugin e PTAssembler, la supportano direttamente. -

    -
    • Pagine di mathworld sulla proiezione stereografica -
    • wikipedia:Stereographic projection -
    -


    -

    -

    Confronto con il fisheye standard

    -
    Example of a standard fisheye, Medinet Habu first courtyard
    Esempio di fisheye standard, primo cortile di Medinet Habu
    -
    Example of a stereographic image, Medinet Habu first courtyard
    Esempio di immagine stereografica, primo cortile di Medinet Habu
    -

    Immagini stereografiche a "piccolo pianeta"

    -

    Le immagini a piccolo pianeta, forniscono un metodo interessante per rappresentare una scena sferica senza il bisogno di utilizzare un visualizzatore di panorami; -la proiezione stereografica è generalmente migliore per questo tipo di immagini rispetto alla proiezione -fisheye. -

    -
    standard fisheye little planet
    "piccolo pianeta" da standard fisheye
    -
    sterographic little planet
    "piccolo pianeta" da stereografica
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Straight_line_control_points.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Straight_line_control_points.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Straight_line_control_points.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Straight_line_control_points.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ - - - - - - - - - - Punti di controllo per linea retta - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Punti di controllo per linea retta

    -
    - -
    - -


    -L'ottimizzatore dei panorama tools è in grado di utilizzare diversi schemi per l'allineamento delle foto utilizzando i -punti di controllo: -i punti normali sono del tipo t0, i punti di controllo rizzontali sono t1 -e i punti di controllo verticali sono di tipo t2. -

    I punti di controllo per linee rette sono stati aggiunti successivamente e funzionano in modo simile a quelli orizzontali e verticali, -con la differenza ce la linea retta può essere identificata con qualsiasi angolazione. Questi punti hanno due utilizzi principali: -allineare elementi che non hanno dettagli identificabili, come gli spigoli di una stanza o i dei cavi sospesi, e calibrare la -distorsione di un obiettivo utilizzando una singola fotografia, di una griglia o di un edificio, in -proiezione rettilineare. -

    Anche se due soli punti sono sufficienti per identificare linee orizzontali o verticali, ne sono necessari di più per le linee rette arbitrariamente inclinate. -Dato che il formato del file di script supporta solamente le coppie di punti, una linea retta è generalmente definita da quattro, sei, otto, ecc... punti di controllo. -

    Alcune delle interfacce grafiche supportano l'inserimento dei punti di controllo per linee rette; consultare questa guida a proposito della correzione -della distorsione dell'obiettivo con ptgui. -

    Altrimenti, aprendo e modificando il file di script creato per PTOptimizer, è possibile inserire più di -un paio di punti esistenti identificandoli con il tipo t3; l'ottimizzatore poi cercherà di allinearli come una linea retta nell'immagine finale. -È possibile continuare in questo modo, con t4, t5 ecc... per ogni gruppo di punti che identifica una diversa linea retta. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/TIFF.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/TIFF.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/TIFF.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/TIFF.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,143 +0,0 @@ - - - - - - - - - - TIFF - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    TIFF

    -
    - -
    - -

    Il formato TIFF (acronimo del termine inglese Tagged Image File Format) è un formato di immagine largamente utilizzato e aperto che permtte di -immagazzinare e di scambiare le immagini digitali di ogni tipo. Per avere delle informazioni generali consultare la pagina di Wikipedia w:TIFF. -

    Il formato di file TIFF è un formato molto versatile con diverse sfacettature. I file TIFF hanno generalmente un'estensione .tif. -Se non si è in grado di visualizzare l'estensione dei file, si consiglia di abilitare l'opzione relativa nel proprio sistema operativo in modo da non incontrare -enormi difficoltà nel manipolare e nel modificare i file di immagine. -

    - -

    Considerazioni relative alla compressione

    -

    Il formato TIFF è in grado di contenere quasi tutti i dati di immagine. Comunque esistono alcune forme comuni di compressione dei dati d'immagine all'interno di un file -TIFF: -

    -
    • nessuna compressione: è la forma che garantisce la maggiore compatibilità a discapito della dimesnsione dei file; -
    • JPEG: semplicemente un file JPEG immagazzinato con un'etichetta TIFF; la compressione è con perdita; -
    • LZW: è una compressione molto diffusa e senza perdite che permette di ottenere un file a 8 bit più leggero. Lo schema LZW è stato brevettato -nella maggior parte dei paesi fino al 2004 e quindi non era disponibile nella maggior parte delle distribuzioni freeware. Questo metodo di compressione non è adatto -per i file TIFF a 16 bit; -
    • ZIP (Deflate): è anch'essa senza perdita ma non molto diffusa anche se spesso crea dei file più leggeri rispetto alla compressione LZW e non -è stata brevettata; -
    • PackBits: una compressione non molto comune e senza perdite difficilmente supportata dai programmi di foto ritocco. Photoshop, per esempio, -può aprire ma non salvare i TIFF compressi con PackBits; -
    • G3 e G4: compressioni utilizzate solamente per i documenti per FAX a 1bit. -
    -

    PTStitcher (e quindi tutte le interfacce grafiche che ne fanno uso) salva tutte le immagini in formato TIFF con la compressione PackBits. C'è un bug in Photoshop -precedente alla versione 9 (CS2) che impedisce il caricamento dei file compressi con lo schema PackBits che hanno una dimensione superiore a un certo valore. -Consultare la sezione su come aprire i file TIFF di grandi dimensioni con Photoshop per maggiori dettagli. -

    -

    Profondità dei bit

    -

    Il formato TIFF può contenere dati a diversa profondità di bit ma, per gli utilizzi fotografici, sono di interesse solamente i formati a 8-bit o 16-bit per canale. -Comunque, esiste una specifica che contiene dati a 32-bit per canale a virgola mobile per le immagini a elevato dynamic range. -

    Possono essere presenti un numero qualsiasi di canali. Esempi comuni sono: -

    -
    • un singolo canale identifica l'immagine in bianco e nero; -
    • tre canali identificano un'immagine a colori nello spazio RGB; -
    • quattro canali individuano un'immagine a colori nello spazio colore CMYK; -
    • qualsiasi numero aggiuntivo di canali (chiamati canali alfa) individuano maschere, selezioni, canali di colori aggiuntivi o qualsiasi altra cosa. -
    -

    Tutti i canali in un'immagine singola hanno la stessa profondità di bit, quindi un'immagine RGB a 16 bit per canale è spesso identificata come un'immagine a 48 bit -(=16x3), mentre a 8 bit per canale come un'immagine a 24 bit (=8x3). -

    Le applicazioni principali dei Panotools sono in grado di elaborare le immagini a 8 e 16 bit per canale. Per maggiori dettagli consultare la guida sul processo -di lavorazione a 16 bit. -

    -

    Canali alfa e maschere

    -

    I canali alfa sono utilizzati dai panotools per immagazzinare le maschere. Una maschera contiene le informazioni -relative alla porzione di immagine da utilizzare. A questo proposito il canale alfa contiene un'immagine in bianco e nero in cui il valore del pixel determina la trasparenza -del corrispondente pixel dell'immagine. -

    Un pixel bianco nel canale alfa significa che il corrispondente pixel dell'immagine deve essere visualizzato al 100%; un pixel nero nel canale alfa indica -un pixel dell'immagine completamente trasparente. Un pixel del canale alfa con un grigio al 50% indica un pixel dell'immagine con trasparenza pari al 50%. -

    Questa proprietà è particolarmente utile per la fusione delle immagini. PTStitcher, l'applicazione di assemblatura -principale dei Panorama Tools, è in grado di aprire e salvare i file di immagine TIFF mascherati nello spazio colore RGB. Una maschera nell'immagine di partenza -è trattata come il bordo dell'immagine stessa e rimappata conseguentemente nell'immagine finale. -

    -
    • Se viene utilizzata la tipologia "senza frangia" (TIFF_m), viene creata un'immagine che rispecchia i bordi dell'immagine di partenza rimappata. -
    • Per l'output "con frangia" (TIFF_mask), la maschera è calcolata in modo da creare una cucitura tra le due immagini adiacenti che ricade, più o meno, -nel mezzo della zona di sovrapposizione. Esiste un parametro "feather" (frangia) che permette di controllare l'ampiezza del gradiente della scala di grigi al fine di ottenere -una fusione uniforme tra le immagini. Consultare lo script di esempi di PTStitcher sulla pagina di Jim Watters per maggiori dettagli: [1] -
    -

    In ogni caso c'è un problema nell'utilizzare questi canali alfa per lo scopo voluto in Photoshop, dato che Photoshop non ne riconosce l'utilizzo. -Il canale alfa viene caricato ma non utilizzato per impostare la trasparenza. Questo può essere impostato manualmente caricando il canale come selezione e creando -una maschera con "rivela selezione". Erik Krause fornisce, sul suo sito, un gruppo di azioni di Photoshop che possono essere utilizzate per automatizzare questo processo -per tutte le immagini di un panorama: azioni di assemblatura (stitching actions). -

    -

    Livelli

    -

    I file TIFF standard non supportano i livelli. Se un documento di Photoshop con dei livelli viene salvato come TIFF, Photoshop creerà un file d'immagine TIFF piatto -(per maggiore compatibilità) e i dati sui livelli saranno inseriti in un'etichetta TIFF separata. Quest'ultima può essere compressa utilizzando lo schema RLE -(run length encoding) o ZIP. La compressione ZIP crea generalmente dei file più leggeri, anche più piccoli di quelli salvati con il formato PSD (per il quale non è possibile selezionare un formato di compressione). -

    Alcune applicazioni (come per esempio nona, il sostituto di PTStitcher -nel pacchetto hugin) può scrivere dei file singoli che contengono più immagini TIFF. Se questi file in formato TIFF vengono caricati -in Photoshop, solo la prima immagine sarà visibile. Possono però essere divisi in immagini singole con tiffsplit contenuto nel pacchetto TIFF tools o ImageMagick -(consultare la sezione dedicata agli strumenti). -

    L'attuale versione di Gimp è in grado di leggere questi file con immagini multiple, anche se poi vengono appiattiti in un unica immagine se si tenta di salvarli. -Una soluzione può essere quella di salvare i livelli come immagini separate utilizzando il plugin "save-layers-tiff". -

    nona e PTmender possono creare un output in formato -TIFF ritagliato in cui i dati d'immagine rappresentano solo una piccola area delle dimensioni dell'immagine finale. -Questo rappresenta un metodo utile per risparmiare delle risorse quando si assemblano più immagini in un unico panorama. L'input di TIFF ritagliati è supportato -solamente da enblend. -

    -

    Dati diversi da quelli di immagine

    -

    Dato che il formato TIFF è un formato con etichette, può contenere informazioni addizionali di carattere diverso dai semplici dati di immagine; questo caso è del tutto -comparabile ai dati EXIF contenuti nei file in formato JPEG e in altri. Photoshop, per esempio, -inserisce dei dati formattati in XML che causano la visualizzazione di messaggi di avviso in alcuni programmi basati sulle comuni librerie TIFF. -Almeno alcuni strumenti EXIF possono essere utilizzati per visualizzare e/o manipolare i dati corrispondenti nei file TIFF. -

    Il formato TIFF supporta l'immagazzinamento dei profili di colore. Sfortunatamente PTStitcher tralascia le -informazioni sul profilo quando salva i file in formato TIFF (l'assemblatore nona non ha questo problema). -Ne consegue che il profilo appropriato deve essere assegnato all'immagine salvata da PTStitcher, in un programma di modifica delle immagini che supporta questa funzionalità. -

    -

    Strumenti e fonti

    -

    Anche se i più noti programmi di fotoritocco e i visualizzatori supportano molto bene il formato TIFF, può, a volte, rendersi necessario l'utilizzo di altri -strumenti: per l'elaborazione in serie, per la conversione di formati TIFF non sufficientemente supportati o semplicemente per ottenere informazioni più dettagliate. -

    -
    • TIFF tools: un pacchetto gratuito disponibile dal sito libtiff.org: [2]; gli eseguibili per Windows sono disponibili sul sito del progetto Gnu Win32: [3]; -
    • ImageMagick: pacchetto di elaborazione delle immagini da linea di comando; -
    • librerie TIFF e specifiche da libtiff.org: [4]; -
    • Little CMS: fornisce uno strumento chiamato tifficc che permette di applicare -profilo di colore ICC a un file TIFF. -
    -

    BigTiff

    -

    Un metodo per superare l'attuale limitazione della dimensione del file è stato proposto adottando una nuova specifica per i file TIFF, chiamata BigTiff, adatta -alla libreria libera LibTIFF. Grazie all'appoggio di società come la Leica Geosystems, gli sviluppatori di programmi a codice aperto come i PanoTools possono -progettare l'utilizzo di LibTiff 4.0 dall'agosto del 2007. Maggiori informazioni sono disponibili da AWare Systems. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/TIFF"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Tone_mapping.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Tone_mapping.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Tone_mapping.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Tone_mapping.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ - - - - - - - - - - Tone mapping - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Tone mapping

    -
    - -
    - -

    Diverse scene che vengono fotografate, presentano un elevato contrasto o, per meglio dire, un elevato intervallo dinamico: -parte della scena è in ombra e parte è in luce diretta. Questo è praticamente sempre vero per una scena panoramica, e quindi gli argomenti riguardanti l'acquisizione e -e la riproduzione dell'intervallo dinamico sono molto importanti per un "panografo" (fotografo di panorami). -

    Il termine "tone mapping" ha a che fare con la riproduzione dell'intervallo dinamico catturato. Le fotocamere standard sono già in grado di catturare -all'incirca 10 stop di intervallo dinamico una volta che vengono tenuti in conto gli effetti di degrado quali il rumore. Questo valore corrisponde a un intervallo tonale -di circa 1.000:1: non sufficiente per catturare la maggior parte delle scene a elevato intervallo dinamico ma comunque ampiamente superiore al valore riproducibile -da stampanti e monitor (gli apparecchi di visualizzazione standard hanno un intervallo dinamico di circa 100:1). -

    La differenza tra l'intervallo dinamico catturato e quello del supporto di riproduzione diviene ancora maggiore quando vengono scattate diverse esposizioni e unite -in un'immagine HDR a 32 bit. In questi casi, l'intero intervallo dinamico della scena (es: 100.000:1 o anche più) deve essere riprodotto -su un supporto che ha un rapporto di contrasto inferiore a 100:1. -

    Per questo motivo si rende necessario l'utilizzo di tecniche particolari che scalano l'intervallo dinamico in modo da preservare l'aspetto visivo dell'immagine -catturata. Il tone mapping si riferisce proprio a queste tecniche, anche se comunemente vengono utilizzati anche altri termini. -

    La forma più comune di tone mapping è quella eseguita dalla fotocamera stessa o dai convertitori RAW in cui i dati a 12 bit catturati dal sensore, sono elaborati -in un'immagine corretta sul proprio monitor a 8-bit. Per elaborare le immagini HDR a 32 bit, sono utilizzati degli algoritmi di tone mapping molto più sofisticati, -come i metodi di "conversione HDR" di Photoshop CS2 o lo strumento "Tone Mapping" di Photomatix Pro, FDRTools, qtpfsgui o pfstmo. -

    Gli operatori di tone mapping sono suddivisi in due categorie principali: globali e locali. -

    -
    • Gli operatori globali sono semplici e veloci; mappano ogni pixel in funzione della sua intensità e delle caratteristiche globali dell'immagine, senza tenere conto -della posizione spaziale del pixel. Gli operatori globali sono buoni per mappare i dati a 12 bit dei sensori ma generalmente non producono buoni risultati con le immagini -HDR. Un esempio di operatore globale di tone mapping è una curva tonale. -
    -
    • Gli operatori locali tengono invece conto delle zone che circondano il pixel per mapparlo. Questo comporta che un pixel avente una data intensità verrà mappato -con un valore differente a seconda che si trovi in una zona luminosa o buia. Per questo motivo gli operatori locali sono più lenti (l'accesso alla memoria è il -vero collo di bottiglia dei computer attuali) ma tende a produrre dei risultati più piacevoli, dato che l'occhio reagisce localmente al contrasto. -
    -

    Altre possibilità

    -

    Esistono altre possibilità che comprendono i passi dell'unione in HDR e i relativi problemi e vanno direttamente dalle immagini scattate a -forcella all'immagine finale compressa. Queste possibilità sono generalmente indicate come fusione del contrasto -(Contrast Blending). L'idea di base consiste nel prendere la parte "buona" di ogni esposizione e di unirla direttamente in un'immagine a basso intervallo dinamico (LDR). -La tecnica più avanzata per eseguire la fusione del contrasto è attualmente implementata da enfuse. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Vertical_control_points.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Vertical_control_points.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Vertical_control_points.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Vertical_control_points.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,57 +0,0 @@ - - - - - - - - - - Punti di controllo verticali - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Punti di controllo verticali

    -
    - -
    - -


    -L'ottimizzatore dei panorama tools, è in grado di elaborare differenti schemi per allineare le foto utilizzando i -punti di controllo: -i punti normali sono del tipo t0, i punti di controllo orizzontali sono t1 e -quelli verticali sono del tipo t2. -

    L'utilizzo principale dei punti di controllo verticali, è quello di cambiare la prospettiva del panorama in modo che le strutture marcate come tali siano -verticali nella proiezione finale. In un panorama formato da più immagini, questo è possibile solamente se l'ottimizzazione di rollio e inclinazione è permessa per tutte -le immagini e lo è anche l'imbardata tranne che per l'immagine bloccata. -

    È importante identificare i punti di controllo verticali il più lontano possibile fra loro. -

    Si ricorda anche che tutte le linee verticali nel mondo reale rimangono tali solamente nelle proiezioni rettilineari, -cilindriche e equirettangolari; in quelle fisheye, -rimangono verticali esclusivamente le linee che passano per il centro dell'immagine. -

    Maggiori dettagli sulla correzione della prospettiva e nell'aiuto dei Panotools; -una guida pratica sull'utilizzo dei punti di controllo verticali: livellare un panorama completato. -

    - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Vignetting.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Vignetting.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Vignetting.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Vignetting.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ - - - - - - - - - - Vignettatura - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Vignettatura

    -
    - -
    - -

    Definizione

    -

    La luce decade agli angoli delle immagini a causa delle caratteristiche dell'obiettivo. Esistono principalmente due tipi di vignettatura: una causata dal corpo dell'obiettivo -(a volte chiamata anche "vignettatura artificiale") e una causata da ragioni ottiche (legge del coseno in quarta potenza) a volte chiamata anche "vignettatura naturale". -Solo quest'ultima può essere facilmente corretta dal filtro per la luminanza radiale fornito dai Panorama Tools. In teoria, il programma per la correzione della vignettatura di -Fulvio Senore, è in grado di correggere entrambi i tipi di vignettatura. -

    Anche se il filtro per la luminanza radiale presente nei Panorama Tools implementa la correzione della vignettatura, questa funzionalità non è mai stata -aggiunta a PTStitcher. In questo caso è necessario elaborare preventivamente le fotografie con il filtro o un altro -strumento. -

    Nona, l'assemblatore fornito con hugin, implementa ora la correzione della vignettatura -nella fase di assemblatura utilizzando o un'immagine "flatfield" o una funzione polinomiale. Fulla è un pre-processore di immagini che -si avvale della stessa tecnica per correggere la vignettatura assieme all'aberrazione cromatica e -alla distorsione dell'obiettivo. -

    hugin possiede ora uno strumento per identificare i parametri di correzione della vignettatura da un panorama assemblato. -Questo strumento compara la differenza di gradiente di luminosità tra aree diverse di due immagini che si sovrappongono, e calcola una funzione polinomiale -adatta alla correzione. PTGui implementa la stessa tecnica basata sullo studio di Pablo D'angelo. -

    -

    Consultare anche:

    -

    Documento sulla vignettatura di John Houghton. -

    Articolo di Pablo d'Angelo su esposizione, bilanciamento del bianco e correzione della vignettatura. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Vignetting"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Wavy_distortion.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Wavy_distortion.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Wavy_distortion.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Wavy_distortion.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ - - - - - - - - - - Distorsione ondulata - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Distorsione ondulata

    -
    - -
    - -

    La distorsione ondulata è una distorsione dell'immagine combinata e radiale introdotta dall'obiettivo in sé. -

    Spesso si manifesta sotto forma di distorsione a barilotto vicino al centro dell'immagine e di -distorsione a cuscinetto lungo i bordi. Questa tipologia forma un effetto bolla al centro -dell'immagine e quindi ci si riferisce ad essa con il termine distorsione a bolla. Esiste anche la variante opposta in cui si ha la -distorsione a cuscinetto al centro e la -distorsione a barilotto lungo i margini; si tratta però di una forma che si verifica raramente -negli obiettivi reali. -

    Qualsiasi variante della distorsione ondulata è un comune tipo di distorsione dell'obiettivo che può -essere corretta dal modello di correzione dell'obiettivo dei panotools. -

    -
    A photograph showing exaggerated wavy distortion 
-(of the bubble variant)
    -Questa foto mostra una distorsione ondulata esagerata (nella variante a "bolla")
    - - - -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Yaw.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Yaw.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Yaw.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Yaw.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,46 +0,0 @@ - - - - - - - - - - Imbardata - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Imbardata

    -
    - -
    - -

    L'imbardata rappresenta l'angolo di rotazione orizzontale della fotocamera. -

    Se si sta riprendendo un panorama, si dovrà ruotare la fotocamera orizzontalmente (attorno a un asse verticale). Un'immagine verrà impostata come blocco - e a questa sarà associata un'imbardata pari a 0. L'angolo cui cui è stata ruotata la fotocamera rispetto a questa immagine, è l'ampiezza dell'imbardata. -

    Per un panorama a 360°, la differenza di imbardata tra due immagini successive può essere valutata dividendo 360 per il numero di immagini. -

    - -
    -Tratto e tradotto da "http://wiki.panotools.org/Yaw"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Zenith.html hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Zenith.html --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Zenith.html 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/help_it_IT/Zenith.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ - - - - - - - - - - Zenit - PanoTools.org Wiki - - - - - - - - - - - - - - - - - -
    -
    -
    - -

    Zenit

    -
    - -
    - -

    Lo zenit è il punto direttamente al di sopra dell'osservatore o della fotocamera. Il punto opposto ( al di sotto) prende il nome di -nadir. -

    Lo zenit è stirato a una linea nella proiezione equirettangolare, rendendone -così difficile la modifica diretta. Comunque, può essere estratta una vista rettilineare -per la modifica. -

    -

    Articoli correlati

    -
    • Come utilizzare enblend per correggere le immagini dello zenit e del nadir. -
    • Modificare contemporaneamente zenit e nadir con PTGui. -
    • Modificare contemporaneamente zenit e nadir con il filtro Adjust. -
    • Panoramica sulla modifica di zenit e nadir. -
    - - -
    -Tratto e tradotto da "http://wiki.panotools.org/Zenith"
    -
    \ No newline at end of file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/intro.htm hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/intro.htm --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/data/intro.htm 2016-01-07 20:32:31.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/data/intro.htm 2017-04-22 17:03:05.000000000 +0000 @@ -1,6 +1,6 @@

    Hugin was originally developed by Pablo d'Angelo.
    -© 2004-2016 +© 2004-2017

    By setting his original software Free under the GPL, Pablo started what has become a thriving community and a project larger than any diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/lenscal_frame.xrc hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/lenscal_frame.xrc --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/lenscal_frame.xrc 2011-07-17 08:39:25.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/lenscal_frame.xrc 2017-05-25 08:44:57.000000000 +0000 @@ -450,6 +450,7 @@ Saves the images and lines as pto file for further tuning inside hugin. + Ctrl+shift+s diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/main_menu.xrc hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/main_menu.xrc --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/main_menu.xrc 2016-07-09 06:58:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/main_menu.xrc 2017-05-25 08:44:57.000000000 +0000 @@ -37,7 +37,7 @@ - Runs fine-tune on all control points. Useful for projects created with other tools, like PTGui or PTAssembler + Runs fine-tune on all control points. @@ -183,6 +183,7 @@ + Ctrl-Shift-s Save current project to a new file diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/optimize_panel.xrc hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/optimize_panel.xrc --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/optimize_panel.xrc 2015-08-01 11:37:26.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/optimize_panel.xrc 2017-04-22 17:03:06.000000000 +0000 @@ -27,7 +27,10 @@ - + + + wxEXPAND diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/optimize_photo_panel.xrc hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/optimize_photo_panel.xrc --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/optimize_photo_panel.xrc 2015-08-01 11:42:12.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/optimize_photo_panel.xrc 2017-04-22 17:03:06.000000000 +0000 @@ -26,7 +26,10 @@ - + + + wxEXPAND diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/pano_panel.xrc hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/pano_panel.xrc --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/pano_panel.xrc 2016-06-04 14:38:55.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/pano_panel.xrc 2017-04-29 16:05:50.000000000 +0000 @@ -97,6 +97,11 @@ + + + + + wxTOP|wxBOTTOM|wxEXPAND 6 @@ -139,6 +144,11 @@ + + + + + wxTOP|wxBOTTOM|wxEXPAND 6 @@ -441,6 +451,14 @@ 3,5 2,1 + + + + wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTRE + 6 + 5,1 + 1,4 + @@ -454,7 +472,7 @@ wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL|wxTOP 12 - 5,0 + 6,0 1,1 @@ -466,7 +484,7 @@ wxTOP 12 - 5,1 + 6,1 1,5 @@ -475,7 +493,7 @@ Images will be remapped, stacks exposure fused, then blended into a seamless panorama wxEXPAND - 6,1 + 7,1 1,5 @@ -484,7 +502,7 @@ Images will be remapped, blended into seamless layers, then layers exposure fused into a panorama wxEXPAND - 7,1 + 8,1 1,5 @@ -493,7 +511,7 @@ wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL - 8,1 + 9,1 1,1 @@ -506,7 +524,7 @@ 0 wxALIGN_CENTRE_VERTICAL|wxEXPAND - 8,2 + 9,2 1,1 @@ -514,7 +532,7 @@ wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL - 8,3 + 9,3 1,1 @@ -543,7 +561,7 @@ wxEXPAND - 8,4 + 9,4 1,2 @@ -555,7 +573,7 @@ wxEXPAND|wxTOP|wxBOTTOM wxTOP|wxBOTTOM 2 - 9,1 + 10,1 1,5 @@ -564,7 +582,7 @@ wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL - 10,1 + 11,1 1,1 @@ -576,7 +594,7 @@ 0 wxEXPAND - 10,2 + 11,2 1,1 @@ -584,7 +602,7 @@ wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL - 10,3 + 11,3 1,1 @@ -597,7 +615,7 @@ wxALIGN_CENTRE_VERTICAL - 10,4 + 11,4 1,2 @@ -662,7 +680,7 @@ wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL|wxTOP 6 - 14,0 + 15,0 1,1 @@ -673,7 +691,7 @@ wxEXPAND|wxTOP wxTOP 6 - 14,1 + 15,1 1,5 @@ -682,7 +700,7 @@ Output remapped, high dynamic range merged stacks from highly overlapping images wxEXPAND - 15,1 + 16,1 1,5 @@ -697,7 +715,7 @@ wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL|wxTOP|wxBOTTOM 6 - 16,0 + 17,0 1,1 @@ -708,7 +726,7 @@ wxEXPAND|wxTOP|wxBOTTOM wxTOP 6 - 16,1 + 17,1 1,5 @@ -723,7 +741,7 @@ wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL - 17,0 + 18,0 1,1 @@ -731,7 +749,7 @@ wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL - 17,1 + 18,1 1,1 @@ -742,7 +760,7 @@ 0 wxEXPAND - 17,2 + 18,2 1,1 @@ -750,7 +768,7 @@ wxEXPAND - 17,3 + 18,3 1,1 @@ -758,7 +776,7 @@ wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL - 18,1 + 19,1 1,1 @@ -769,7 +787,7 @@ 0 wxEXPAND - 18,2 + 19,2 1,1 @@ -777,7 +795,7 @@ wxALIGN_CENTRE_VERTICAL - 18,3 + 19,3 1,1 @@ -785,7 +803,7 @@ wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL - 19,1 + 20,1 1,1 @@ -796,7 +814,7 @@ 0 wxEXPAND - 19,2 + 20,2 1,1 @@ -804,7 +822,7 @@ wxEXPAND - 19,3 + 20,3 1,1 @@ -812,7 +830,7 @@ wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL - 20,1 + 21,1 1,1 @@ -823,7 +841,7 @@ 0 wxEXPAND - 20,2 + 21,2 1,1 @@ -831,7 +849,7 @@ wxEXPAND - 20,3 + 21,3 1,1 4 diff -Nru hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/pref_dialog.xrc hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/pref_dialog.xrc --- hugin-2016.2.0+dfsg/src/hugin1/hugin/xrc/pref_dialog.xrc 2016-05-20 18:46:17.000000000 +0000 +++ hugin-2017.0.0+dfsg/src/hugin1/hugin/xrc/pref_dialog.xrc 2017-04-29 16:05:50.000000000 +0000 @@ -227,7 +227,7 @@ -