public ColorImg getPowerPhaseSpectrumImg(){
		// calculate power spectrum
		this.recomputePowerChannel();
		// get upper bound (used for normalization)
		final double maxLogPow = Math.log(1+this.getMaxValue(CHANNEL_POWER));
		ColorImg powerphase = new ColorImg(this.getDimension(), false);
		// create phase image in L*a*b* color space
		powerphase.forEach(px->{
			// calculate phase (in [0..2pi])
			double phase = this.computePhase(px.getIndex());
			// get power
			double logPower = Math.log(1+this.getDataPower()[px.getIndex()]);
			// normalize power
			double normLogPow = logPower/maxLogPow;
			// get phase position on unit circle in a*b* plane
			double x = Math.cos(phase);
			double y = Math.sin(phase);
			// calc radius in a*b* plane (0.2 is ~max radius for which colors are still in RGB gammut at L*=0.74)
			double radius = 0.2*normLogPow;
			// set L* according to power (L*=0.74 has a*b* plane with maximum RGB gammut around center)
			px.setValue(0, 0.74*normLogPow);
			// set color according to phase (also scale by radius because RGB gammut gets smaller with decreasing L*)
			px.setValue(1, 0.5+radius*x);
			px.setValue(2, 0.5+radius*y);
		});
		powerphase.forEach(ColorSpaceTransformation.LAB_2_RGB);
		return powerphase;
	}
public ColorImg getPowerPhaseSpectrumImg ( ) { this . recomputePowerChannel ( ) ; final double maxLogPow = Math . log ( 1 + this . getMaxValue ( CHANNEL_POWER ) ) ; ColorImg powerphase = new ColorImg ( this . getDimension ( ) , false ) ; powerphase . forEach ( px -> { double phase = this . computePhase ( px . getIndex ( ) ) ; double logPower = Math . log ( 1 + this . getDataPower ( ) [ px . getIndex ( ) ] ) ; double normLogPow = logPower / maxLogPow ; double x = Math . cos ( phase ) ; double y = Math . sin ( phase ) ; double radius = 0.2 * normLogPow ; px . setValue ( 0 , 0.74 * normLogPow ) ; px . setValue ( 1 , 0.5 + radius * x ) ; px . setValue ( 2 , 0.5 + radius * y ) ; } ) ; powerphase . forEach ( ColorSpaceTransformation . LAB_2_RGB ) ; return powerphase ; }
Returns a combination of power and phase spectrum image for display.
This maps power (squared magnitude) to luminance and phase angle to color.
As in {@link #getPhaseSpectrumImg()} color is mapped to the a*b* plane of
CIE L*a*b* to ensure constant perceived luminance for constant power.

@return power phase spectrum image (combination of both spectra) for display

@see #getPowerSpectrumImg()
@see #getPhaseSpectrumImg()