Jump to content

Banner.jpg.b83b14cd4142fe10848741bb2a14c66b.jpg

GreatAttractor

Members
  • Posts

    521
  • Joined

  • Last visited

Blog Entries posted by GreatAttractor

  1. GreatAttractor
    imgalt – Image Alignment Tool
    author: GreatAttractor
    Written with solar animation frame alignment in mind. Uses the phase correlation method to detect translations of an image sequence, which can be widely varying, the images severely cropped – exactly what one gets after a few hour solar session with telescope buffeted by wind, drift due to imperfect polar alignment and lack of manual correction in time etc.
    The same method of image alignment is also included in ImPPG (starting with version 0.3).
    Discussion threads:
    http://stargazerslounge.com/topic/214609-solar-animation-automatic-alignment-tool/
    http://solarchat.natca.net/viewtopic.php?f=7&t=11283
    imgalt.zip: Windows program
    imgalt-src.zip: source code (requires Boost libraries; tested with GCC/G++ on Linux & Windows and with MS C++)
    Binaries and source code may be freely distributed and used for any purpose. See the README file for details on usage and building.
     
    QUICK START
    Imgalt is a "console application" (it has no graphical interface). Running
    from a console (a.k.a. "command prompt") is recommended, but not
    necessary. This method will work as well:
    Unzip the imgalt.zip, say, to folder "imgalt" on your Desktop. Copy all the files you want to align (in BMP or TIFF format) to the same "imgalt" folder. Run imgalt.exe; it will open a window which displays progress. After a few moments you will have new, aligned files (with names ending in "_aligned"), also in the same "imgalt" folder.  
    More information in the README file.
     
    Version 0.5 (2014/05/22)  
    New features:
    – sub-pixel alignment
    imgalt.zip
    imgalt-src.zip
     
     
    Version 0.4.1 (2014/05/05)
    New features:
    – support for TIFF files
    imgalt.zip
    imgalt-src.zip  
     
    Version 0.4 (2014/05/02)
    imgalt.zip
    imgalt-src.zip  
     
    Version 0.3 (2014/04/25)
    imgalt.zip
    imgalt-src.zip  
  2. GreatAttractor
    Yesterday I was bitten by kernel update (to 4.10.5) on my main computer (I use Fedora 25). The boot process would at some point just stop, with nothing suspicious in the last visible boot messages; the machine was responsive, though, and Ctrl-Alt-Del reboot was possible. Booting using the previous kernel was fine. After reviewing the boot log (where -1 means second-to-last boot, -0 would be the last (successful) boot etc.):
    journalctl -k -b -1 it turned out there was a problem uploading firmware blob to my Radeon R7 370 (I use the standard open-source driver):
    kernel: [drm] radeon: 2048M of VRAM memory ready kernel: [drm] radeon: 2048M of GTT memory ready. kernel: [drm] Loading pitcairn Microcode kernel: radeon 0000:01:00.0: Direct firmware load for radeon/si58_mc.bin failed with error -2 kernel: [drm] radeon/PITCAIRN_mc2.bin: 31100 bytes kernel: si_fw: mixing new and old firmware! kernel: [drm:si_init [radeon]] *ERROR* Failed to load firmware! kernel: radeon 0000:01:00.0: Fatal error during GPU init Indeed, for my particular Radeon model the newer kernel tries to upload si58_mc.bin, but the file was missing.
    The solution was to get the file from https://people.freedesktop.org/~agd5f/radeon_ucode/, put it in /usr/lib/firmware/radeon and regenerate initramfs images:
    dracut --regenerate-all --force  
  3. GreatAttractor
    Recently I’ve dusted off my old ray tracing code, done some OpenGL reading/refreshing, and implemented real-time ray (and path) tracing on GPU. It turns out the present-day GLSL (OpenGL shading language) is capable enough, and even an integrated Intel graphics has acceptable performance.
    Video: https://www.youtube.com/watch?v=2lAmO1Ghtn0

     
    The most important part is the ability to use the hierarchical scene graph (tree); thanks to this, ray tracing’s time complexity is only O(log n) w.r.t. the number of scene objects, as opposed to O(n) for hardware rasterisation (i.e. what today’s GPUs normally do). Even though GLSL doesn’t allow recursion, it’s simple to search the tree iteratively and even without simulating a stack (which would eat up precious GPU registers – I’ve tried that too).
    Now that I feel more confident with OpenGL, GPU acceleration for Stackistry will probably arrive in the not-too-distant future. The quality estimation and the shift-and-add phases should be easiest to port into GLSL. Even if we remain strongly IO-bound (due to all the shuffling of images between RAM and GPU memory), I think a performance boost by a factor of several is possible.
  4. GreatAttractor
    It turns out ImPPG's image alignment (via phase correlation) function comes in handy when trying to capture a video of passenger aircraft at cruising altitudes. My rig for the experiment was a SW Newtonian 114/500 (hence the coma visible in asymmetric highlights) on AZ4 + PGR Chameleon 3 mono (ICX445) camera:
     

     
    Raw video looked e.g. like this (scaled down):
     

     
    I cut out fragments with the plane constantly visible, converted to image sequences and run them through ImPPG.
     
    Airbus A321-211
     

     
    Boeing 737 (click)
     

  5. GreatAttractor
    ImPPG has moved to GitHub: http://greatattractor.github.io/imppg/
     

     
    ImPPG performs Lucy-Richardson deconvolution, unsharp masking, brightness normalization and tone curve adjustment. It can also apply previously specified processing settings to multiple images. All operations are performed using 32-bit floating-point arithmetic.
     
    Supported input formats: FITS, BMP, JPEG, PNG, TIFF (most of bit depths and compression methods), TGA and more. Images are processed in grayscale and can be saved as: BMP 8-bit; PNG 8-bit; TIFF 8-bit, 16-bit, 32-bit floating-point (no compression, LZW- or ZIP-compressed), FITS 8-bit, 16-bit, 32-bit floating-point.
     
    ImPPG can also align an image sequence, with possibly large and chaotic translations between images (aligned output images preserve number of channels and bit depth). This can be useful, for example, when preparing a solar time-lapse animation, where subsequent frames are offset due to inaccurate tracking of the telescope mount. Other possible applications are smoothing out of terrestrial landscape time-lapses or preparing raw frames (with serious image jitter) for stacking.
     
    ImPPG is free and open-source, licensed under GNU GPL v3 (or later). Building from source code (C++) requires Boost, wxWidgets and (optionally) FreeImage & CFITSIO libraries and is possible on multiple platforms. Windows executables (32- and 64-bit) can be downloaded using the links below. See the README file for details on usage and building.
     
    Screenshots:


     
    Sample results (processing and animation alignment):

     
    Image processing tutorial
     
    Solar processing tutorial by Michael H.F. Wilkinson
     
    Astrobin users can add ImPPG to their “Gear” list: imppg
     
    Files:
     
    imppg-src.zip: source code
    imppg-win32.zip: Windows program (32-bit)
    imppg-win64.zip: Windows program (64-bit)
     
    If you are not sure what you need: download the latest imppg-win32.zip, unpack it and run imppg.exe.
     

    Version 0.5 and newer: go to http://greatattractor.github.io/imppg/

    Version 0.4.1 (2015-08-30)
    Enhancements:
    – Numerical sliders use 1-pixel steps instead of hard-coded 100 steps
    – Output format selected in batch processing dialog is preserved
    – Unsharp masking not slowing down for large values of "sigma"
    – Increased the range of unsharp masking parameters
     

    Bug fixes:
    – Invalid output file name after alignment if there was more than one period in input name
    – Crash when a non-existing path is entered during manual editing
    – Program windows placed outside the screen when ImPPG was previously run on multi-monitor setup
    – Restored missing Polish translation strings
     
    imppg-src.zip
    imppg-win32.zip
    imppg-win64.zip
     
    Version 0.4 (2015-06-21)
    New features:
    – Image sequence alignment via solar limb stabilization
    – FITS files support (load/save)
    – Zooming in/out of the view
     

    Enhancements:
    – View scrolling by dragging with the middle mouse button
    – Logarithmic histogram setting is preserved
     
    Bug fixes:
    – Tone curve in gamma mode not applied during batch processing
     
    imppg-src.zip
    imppg-win32.zip
    imppg-win64.zip
     

    Version 0.3.1 (2015-03-22)
    New features:
    – Polish translation; added instructions for creating additional translations
     

    Version 0.3 (2015-03-19)
    New features:
    – Image sequence alignment via phase correlation
     

    Enhancements:
    – Limited the frequency of processing requests to improve responsiveness during changing of unsharp masking parameters and editing of tone curve
     
    Bug fixes:
    – Incorrect output file extension after batch processing when the selected output format differs from the input
     

    Version 0.2 (2015-02-28)
    New features:
    – Support for more image file formats via FreeImage. New output formats: PNG/8-bit, TIFF/8-bit LZW-compressed, TIFF/16-bit ZIP-compressed, TIFF/32 bit floating-point (no compression and ZIP-compressed).
     

    Enhancements:
    – Enabled the modern-look GUI controls on Windows
     
    Bug fixes:
    – Selection border not marked on platforms w/o logical raster ops support (e.g. GTK 3)
     
    Version 0.1.1 (2015-02-24)
    Bug fixes:
    – Blank output files after batch processing when L-R iterations count is 0
     


    Version 0.1 (2015-02-21)

  6. GreatAttractor
    NOTE: This program has been superseded by ImPPG, which includes all the below functionality in a full-fledged GUI.

    Image Post-Processor performs Lucy-Richardson deconvolution, histogram stretch, gamma correction and unsharp masking. Both a command-line tool and a graphical user interface (GUI) wrapper for processing of multiple files are available.
    Discussion threads:
    http://stargazerslounge.com/topic/230841-impp-%E2%80%93-batch-lucy-richardson-deconvolution-and-more-of-stacks/
    http://solarchat.natca.net/viewtopic.php?f=4&t=13927
    Building from source code (C++) requires Boost and wxWidgets (for the GUI) libraries and is possible on multiple platforms.
    Files:
    impp.zip: Windows command-line program, GUI and source code
    impp-src.zip: source code of the command-line tool
    impp-gui-src.zip: source code of the GUI
    If you are not sure what you need: download the latest impp.zip, unpack it and run impp-gui.exe.

    impp: version 0.3 (2014-11-30)
    New features:

    – better performance for large L-R "sigma" thanks to Young & van Vliet recursive convolution (Y&vV can be also forced by "--conv yvv")impp-gui: version 0.1.2 (2014-11-30)
    Bug fixes:

    - fixed output directory sometimes having the deepest sub-folder appearing twiceimpp.zip
    impp-src.zip
    impp-gui-src.zip

    impp: version 0.2 (2014-11-27)
    New features:

    – L-R deconvolution performance improved by 24%-40%, depending on L-R "sigma" and num. of threadsimpp.zip
    impp-src.zip

    impp: version 0.1.1 (2014-11-26)
    New features:
    – measuring time of L-R deconvolution
    – slightly improved performance
    – added MS C++ makefile
    Bug fixes:
    – fixed code that would crash with OpenMP with some compilers
    impp-gui: version 0.1.1 (2014-11-26)
    New features:
    – added MS C++ makefile
    Bug fixes:
    – fixed setting of output file name's extension
    impp.zip
    impp-src.zip
    impp-gui-src.zip

    Version 0.1 (2014-11-21)
    impp.zip
    impp-src.zip
    impp-gui-src.zip
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. By using this site, you agree to our Terms of Use.