As a general rule, comparisons of unscaled noise estimates are meaningless. To compare noise standard deviations, you must scale them with statistical scale (or dispersion) estimates. In this way you'll be comparing compatible statistical descriptors.
You can scale the noise estimates easily using console commands in PixInsight. However, to simplify these operations, here is a modified version of the NoiseEvaluation script (which we call ScaledNoiseEvaluation) that you should use to compare noise estimates calculated for different images:
/**
* Estimation of the standard deviation of the noise, assuming a Gaussian
* noise distribution.
*
* - Use MRS noise evaluation when the algorithm converges for 4 >= J >= 2
*
* - Use k-sigma noise evaluation when either MRS doesn't converge or the
* length of the noise pixels set is below a 1% of the image area.
*
* - Automatically iterate to find the highest layer where noise can be
* successfully evaluated, in the [1,3] range.
*
* Returned noise estimates are scaled by the Sn robust scale estimator of
* Rousseeuw and Croux.
*/
function ScaledNoiseEvaluation( image )
{
let scale = image.Sn();
if ( 1 + scale == 1 )
throw Error( "Zero or insignificant data." );
let a, n = 4, m = 0.01*image.selectedRect.area;
for ( ;; )
{
a = image.noiseMRS( n );
if ( a[1] >= m )
break;
if ( --n == 1 )
{
console.writeln( "<end><cbr>** Warning: No convergence in MRS noise evaluation routine - using k-sigma noise estimate." );
a = image.noiseKSigma();
break;
}
}
this.sigma = a[0]/scale; // estimated scaled stddev of Gaussian noise
this.count = a[1]; // number of pixels in the noisy pixels set
this.layers = n; // number of layers used for noise evaluation
}
function main()
{
let window = ImageWindow.activeWindow;
if ( window.isNull )
throw new Error( "No active image" );
console.show();
console.writeln( "<end><cbr><br><b>" + window.currentView.fullId + "</b>" );
console.writeln( "Calculating scaled noise standard deviation..." );
console.flush();
console.abortEnabled = true;
let image = window.currentView.image;
console.writeln( "<end><cbr><br>Ch | noise | count(%) | layers |" );
console.writeln( "---+-----------+-----------+--------+" );
for ( let c = 0; c < image.numberOfChannels; ++c )
{
console.flush();
image.selectedChannel = c;
let E = new ScaledNoiseEvaluation( image );
console.writeln( format( "%2d | <b>%.3e</b> | %6.2f | %d |", c, E.sigma, 100*E.count/image.selectedRect.area, E.layers ) );
console.flush();
}
console.writeln( "---+-----------+-----------+--------+" );
}
main();