Hi all,
New versions of the PixInsight core application and PCL packages are now available and can be downloaded:
http://pleiades-astrophoto.com/download/STD/This version includes interface improvements, bug fixes and some new tools.
_____________________________________________________________
New processes and tools
* CloneStamp
CloneStamp is our implementation of this well-known image editing tool. But as you probably may suspect, the clone stamp tool in PixInsight is much more sophisticated and precise than what clone stamps are elsewhere. CloneStamp is an interactive dynamic tool smoothly integrated in the PixInsight platform, just like DBE or DynamicCrop, for example. This means that you can create process icons and scripts with CloneStamp instances, exactly as you can do for any other processes, and apply them to any number of images without restrictions.
PixInsight's CloneStamp is not a simple procedure to copy pixels from one place to another; it is a vectorial tool that is able to adapt itself to the dimensions and format of any image. For example, if you define a CloneStamp instance for a 4000x4000 image and save it as a process icon, you can apply it to a 2000x8000 image without problems: all coordinates and brush sizes will automatically be rescaled to adapt clone stamp actions to the new working space.
Regarding the practical use of CloneStamp, it doesn't differ too much from what is customary for other applications. You open the CloneStamp interface from the Process Explorer window (Painting category) and click on an image to start a new session. That image will be the "clone stamp target", to which all clone stamp actions will write pixels. Then you Ctrl+click on any point of an open image (including the target image of course) to define a first "source point", click on the target image to define a first "target point", and start dragging with the mouse to perform cloning actions. You can start a new action by clicking again and dragging, and define a new source/target point pair with Ctrl+click / click at any moment.
The CloneStamp interface includes a local history that can be used to undo/redo/delete performed actions. The Ctrl+Z and Ctrl+Y keys can be used while the target image is active to undo/redo clone stamp actions. If you cancel the process (red cross icon on the interface's control bar), the initial state of the image is restored. If you apply the process (green check mark icon), all clone stamp actions (except those that have been undone) are applied, just as any other process.
CloneStamp is just the beginning of a series of powerful and sophisticated, interactive painting tools, including vectorial and bitmap-based tools, that will make up a complete image editing environment in PixInsight. However, most of those tools will be developed once the first commercial version is released, since they are time-consuming tasks and we cannot afford the necessary extra time now. Of course, all of those tools will be completely free for registered users, as every standard module that we will develop.
* SimplexNoise
SimplexNoise is our implementation of the simplex noise algorithm created by Ken Perlin. Simple noise is an enhanced version of the classical Perlin noise algorithm, which is a fundamental tool for generation of textures and realistic simulations. For example, in virtually any modern science-fiction film Perlin noise has been utilized to generate realistic surface renderizations. As implemented in PixInsight, SimplexNoise is a "deterministic noise generator". This may seem a counter-sense (and it is, in fact), but it is a powerful tool that can be used to generate creative textures that can be applied to build fantastic 2-D and 3-D renderizations.
An example of a very simple 3-D renderization is the Sphere.js JavaScript script that you'll find in the PCL/src/examples/js folder. This script projects any image (the currently active image to be more precise) on a spherical surface and generates the result as a new image. Combined with textures generated by the SimplexNoise and CurvesTransform tools, one can produce pseudo-planets like these:
http://pleiades-astrophoto.com/examples/SimplexNoise/sphere1.jpghttp://pleiades-astrophoto.com/examples/SimplexNoise/sphere2.jpghttp://pleiades-astrophoto.com/examples/SimplexNoise/sphere3.jpghttp://pleiades-astrophoto.com/examples/SimplexNoise/sphere4.jpgSimplexNoise is a first tool that we have developed to demonstrate that PixInsight can go far beyond astronomical imaging.
* NoiseGenerator
This is the final version of a fundamental tool that we had first presented a couple years ago, now rewritten completely from scratch. NoiseGenerator can generate noise as random (well, pseudo-random, as a purist would say) deviates from uniform, normal (aka Gaussian) and Poisson distributions. In addition, it can generate also impulsional noise (salt&pepper).
NoiseGenerator is based on the most advanced uniform noise generator algorithm available today: SIMD-Oriented Fast Mersenne Twister (SFMT), by Mutsuo Saito and Makoto Matsumoto, of Hiroshima University. I have chosen a variant of this algorithm with a period not less than 21439, so you can generate several zillions of zillions of noise images before attempting to try a statistical test that this tool could fail to pass.
_____________________________________________________________
Main bug fixes in the core application
* Fixed an obscure, thread-related problem with the Real-Time Preview interface that was detected by Luc Coiffier. This bug was causing a complete freezing of the GUI under rare circumstances. It is now fixed.
_____________________________________________________________
Main bug fixes in the PCL framework
* Histogram calculation routines were causing a severe crash for floating-point images with sample values outside the normalized [0,1] range. This wasn't happening until now, because all standard processes produce normalized images, but a new, experimental high dynamic range tool written by Carlos Milovic has shown the first problems. This has been fixed with an automatic adaptation routine that finds the existing range of sample values before attempting to generate the histogram. When the existing range lies within [0,1], the algorithm behaves normally. When the existing minimum and maximum values are < 0 or > 1, respectively, the X-axis of the calculated histogram is automatically rescaled to that range. The impact of this additional test on the performance of histogram calculation is negligible.
_____________________________________________________________
Additions to PCL classes and functions
* New member functions in the ImageWindow class:
void ImageWindow::RegenerateViewportRect( const Rect& r )
void ImageWindow::RegenerateViewportRect( int x0, int y0, int x1, int y1 );
void ImageWindow::RegenerateImageRect( const DRect& r )
void ImageWindow::RegenerateImageRect( double x0, double y0, double x1, double y1 );
These functions allow interfaces to modify images dynamically. They are fully documented in the HTML documentation that is included with the PCL distribution package.
_____________________________________________________________
Enjoy!
_____________________________________________________________
Juan Conejero, Pleiades Software
PixInsight Project Home Page:
http://pleiades-astrophoto.com/