# ----------------------------------------------------------------------------------------- 
# UTILITIES 
# ----------------------------------------------------------------------------------------- 

#@gui Blather: blather
#@gui : msg = note("Welcome to image blather.")
#@gui : sep = separator()
blather :
-verbose -
-repeat $!
-local[$>]
verb=0
-verbose 0
-echo[] "Statistics for image: "{$>}"."
-echo[] "Minimum intensity: "{im}"."
-echo[] "Average intensity: "{ia}"."
-echo[] "Maximum intensity: "{iM}"."
-echo[] "Range: "{iM-im}"."
-echo[] "Variance: "{iv}"."

# let's consider the image as cut into 5 slices of 20% each

--luminance[-1]  
avg=${-1,ia}
-echo[] "Average luminance: "{$avg}"." 

twentypct={int(${-1,whds}/5)} # was 10
-sort[-1] 

-repeat 5  
   -shared[-1] {$>*$twentypct},{($>+1)*$twentypct-1},0,0,0  # added -1 to the end to avoid abend in certain cases
   min={{-1,im}} 
   ave={{-1,ia}} 
   max={{-1,iM}} 
   -verbose +  
   -echo[] "Slice:"{$>}"."
   -echo[] " Minimum: "{$min}"."  
   -echo[] " Average: "{$ave}"." 
   -echo[] " Maximum: "{$max}"."  
   -verbose -  
   -rm[-1]  
-done 
-rm[-1] 


-verbose {$verb}
-echo[] "Bah! Nobody ever reads me!!!"
-endlocal
-done
-verbose +

#------------------------------------------------------------------------------------------

#@gui BlatherS: blathers
#@gui : msg = note("Welcome to image blather simple.")
#@gui : sep = separator()
blathers :
-verbose -
-repeat $!
-local[$>]
verb=0
-verbose 0
-echo[] "Statistics for image: "{$>}"."
-echo[] "Minimum intensity: "{im}"."
-echo[] "Average intensity: "{ia}"."
-echo[] "Maximum intensity: "{iM}"."
-echo[] "Range: "{iM-im}"."
-echo[] "Variance: "{iv}"."

-verbose {$verb}
-echo[] "Bah! Nobody ever reads me!!!"
-endlocal
-done
-verbose +

#------------------------------------------------------------------------------------------

#@gui BlatherXYZ: blatherxyz
#@gui : msg = note("Welcome to image blather x-y-z values.")
#@gui : sep = separator()
blatherxyz :
-verbose -
-repeat $!
-local[$>]
verb=0
-verbose 0

	  -rgb2xyz
	  -split[-1] c
	  -normalize[-1] 0,255
	  -normalize[-2] 0,255
	  -normalize[-3] 0,255
	  
	  mean={-1,ia}
	  -echo[] "Average intensity of Z: "{$mean}"."
	  mean={-2,ia}
	  -echo[] "Average intensity of Y: "{$mean}"."
	  mean={-3,ia}
	  -echo[] "Average intensity of X: "{$mean}"."

-verbose {$verb}
-echo[] "Bah! Nobody ever reads me!!!"
-endlocal
-done
-verbose +
# ----------------------------------------------------------------------------------------- 

#@gui TellMe: tellme
#@gui : msg = note("Welcome to image tellme.")
#@gui : sep = separator()
tellme :

-repeat $!
-local[$>]

verb=0
-verbose 0
-echo[] "Statistics for image: "{$>}"."
-echo[] "Minimum intensity: "{im}"."
-echo[] "Average intensity: "{ia}"."
-echo[] "Maximum intensity: "{iM}"."
-echo[] "Range: "{iM-im}"."
-echo[] "Variance: "{iv}"."

# let's consider the image as cut into 5 slices of 20% each

--luminance[-1]  
avg={-1,ia}
bufsz={{-1,whds}}
-echo[] "Average luminance: "{$avg}"." 

twentypct={int(${-1,#}/5)}  
-sort[-1] 

-repeat 5
	 
	-shared[-1] {$>*$twentypct},{($>+1)*$twentypct-1},0,0,0
	ave{$>}={{-1,ia}}		# this technique creates 5 different variables: ave0, ave1, ave2, ave3, ave4
	-rm[-1]
	
-done
-rm[-1]

# analyse type of image
-if {$ave2<75}
	imagetype=1
-elif {$ave2>75 & $ave3<=90}
	imagetype=2	
-elif {$ave2<135 & $ave3>120}
	imagetype=4	
-elif {$ave2>135}
	imagetype=5	
-else
	imagetype=3						# ave3 between 91 and 120
-endif	
-echo[] "Image Type: "{$imagetype}"." 
   
-verbose {$verb}
-echo[] "Bah! Nobody ever reads me!!!"		# last echo is never shown!
-status $imagetype

-endlocal
-done

#------------------------------------------------------------------------------------------
