module CV.FunnyStatistics where import CV.Image import CV.Filters import qualified CV.ImageMath as IM import CV.ImageMathOp --nthCM s n i = blur s $ (i #- blur s i) |^ n r_variance s i = msq #- (m #* m) where msq = gaussian s (i #* i) m = gaussian s i variance s i = msq #- (m #* m) where msq = blur s (i #* i) m = blur s i stdDev s i = IM.sqrt $ variance s i r_stdDev s i = IM.sqrt $ r_variance s i {- skewness s i = IM.div (nthCM s 3 i) (stdDev s i |^3) kurtosis s i = IM.div (nthCM s 4 i) (stdDev s i |^4) xx s i = IM.div (nthCM s 6 i) (stdDev s i |^6) -} pearsonSkewness1 s image = IM.div (blur s image #- unsafeImageTo32F (median s (unsafeImageTo8Bit image))) (stdDev s image)