Author Topic: New PCL version 1.0.96  (Read 4677 times)

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
New PCL version 1.0.96
« on: 2011 July 18 12:20:01 »
Hi all,

Yesterday we released a new version of PCL: 1.0.96.377. It is available for download here:

http://pixinsight.com/developer/pcl/download/PCL-01.00.96.0377-20110716.tar.gz

and now it is also available on our software distribution interface.

This new version fixes a number of bugs and introduces a few performance improvements. It also includes some new classes:

MoffatFilter
VariableShapeFilter
PArray<T,A>

There are also some new features and member functions added to existing classes. The most important ones are:

Convolution::DisableHighPassRescaling( bool disable=true )
Convolution::DisableRawHighPass( bool disable=true )
Convolution::EnableHighPassRescaling( bool enable=true )
Convolution::EnableRawHighPass( bool enable=true )
Convolution::IsHighPassFilter() const
Convolution::IsHighPassRescalingEnabled() const
Convolution::IsRawHighPassEnabled() const

SeparableConvolution::DisableHighPassRescaling( bool disable=true )
SeparableConvolution::DisableRawHighPass( bool disable=true )
SeparableConvolution::EnableHighPassRescaling( bool enable=true )
SeparableConvolution::EnableRawHighPass( bool enable=true )
SeparableConvolution::IsHighPassFilter() const
SeparableConvolution::IsHighPassRescalingEnabled() const
SeparableConvolution::IsRawHighPassEnabled() const

GenericVector<T>::MaxComponent() const
GenericVector<T>::MinComponent() const

GenericMatrix<T>::MaxElement() const
GenericMatrix<T>::Mean() const
GenericMatrix<T>::Median() const
GenericMatrix<T>::Median()
GenericMatrix<T>::MinElement() const

GenericPoint<T>::Round() const
GenericPoint<T>::Rounded() const
GenericPoint<T>::RoundedToInt() const
GenericPoint<T>::Truncate()
GenericPoint<T>::Truncated() const
GenericPoint<T>::TruncatedToInt() const

GenericRectangle<T>::DeflateBy( T1 dx, T1 dy )
GenericRectangle<T>::DeflatedBy(T1 dx, T1 dy ) const
GenericRectangle<T>::InflateBy( T1 dx, T1 dy )
GenericRectangle<T>::InflatedBy(T1 dx, T1 dy ) const
GenericRectangle<T>::Round() const
GenericRectangle<T>::Rounded() const
GenericRectangle<T>::RoundedToInt() const
GenericRectangle<T>::Truncate()
GenericRectangle<T>::Truncated() const
GenericRectangle<T>::TruncatedToInt() const

MetaEnumeration::ElementAliases() const

CompositionOp::Min
CompositionOp::Max
CompositionOp::Add
CompositionOp::Multiply
CompositionOp::Screen
CompositionOp::Overlay
CompositionOp::ColorDodge
CompositionOp::ColorBurn
CompositionOp::HardLight
CompositionOp::SoftLight
CompositionOp::Difference
CompositionOp::Exclusion

PCL 1.0.96 requires PixInsight Core 1.7.0.702 or higher.

Happy development!
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline Carlos Milovic

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2172
  • Join the dark side... we have cookies
    • http://www.astrophoto.cl
Re: New PCL version 1.0.96
« Reply #1 on: 2011 July 18 13:23:06 »
I suppose that current modules do not need to be compiled against this PCL to run in the latest PI Core... at least they run and were installed without problems :D
Regards,

Carlos Milovic F.
--------------------------------
PixInsight Project Developer
http://www.pixinsight.com

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Re: New PCL version 1.0.96
« Reply #2 on: 2011 July 18 16:12:15 »
That's correct; we provide backwards compatibility with existing modules. However, if you link against the new PCL you need PI Core 1.7.0.702.
Juan Conejero
PixInsight Development Team
http://pixinsight.com/

Offline Carlos Milovic

  • PTeam Member
  • PixInsight Jedi Master
  • ******
  • Posts: 2172
  • Join the dark side... we have cookies
    • http://www.astrophoto.cl
Re: New PCL version 1.0.96
« Reply #3 on: 2011 July 18 19:17:00 »
BTW, which is  the default state for the convolution objects? Do they perform "raw" calculations, or are truncated/rescaled?
Regards,

Carlos Milovic F.
--------------------------------
PixInsight Project Developer
http://www.pixinsight.com

Offline Juan Conejero

  • PTeam Member
  • PixInsight Jedi Grand Master
  • ********
  • Posts: 7111
    • http://pixinsight.com/
Re: New PCL version 1.0.96
« Reply #4 on: 2011 July 24 03:58:42 »
Hi Carlos,

By default Convolution and SeparableConvolution truncate the convolved result when a high-pass filter is applied.

Suppose you have a Convolution instance declared as follows:

const float sharpen = { 0, -1, 0, -1, 5, -1, 0, -1, 0 };
KernelFilter S( 3, sharpen );
Convolution C( S );


You have three possibilities:

- Truncate out-of-range values to [0,1]. This is the default behavior. To enable this behavior:

Image img;
...
C.DisableHighPassRescaling();
C >> img; // img convolved with high-pass filter - truncated result


- Rescale out-of-range values to [0,1]:

Image img;
...
C.EnableHighPassRescaling();
C >> img; // img convolved with high-pass filter - rescaled result


- Output raw high-pass convolved values:

Image img;
...
C.EnableRawHighPass();
C >> img; // img convolved with high-pass filter - raw result


Note that the third option (raw) will yield an unnormalized image that must be normalized prior to releasing it to the PixInsight Core GUI. Note also that raw high-pass results only make sense for convolution of floating point images; for integer images the result is always truncated or rescaled.

The same is applicable to the SeparableFilter and SeparableConvolution classes.
Juan Conejero
PixInsight Development Team
http://pixinsight.com/