File size: 999 Bytes
6c0075d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45


from __future__ import division
import numpy as np
import cv2

def standardize(img,mask,wsize):
    """

    Convert the image values to standard images.

    :param img:

    :param mask:

    :param wsize:

    :return:

    """

    if  wsize == 0:
        simg=globalstandardize(img,mask)
    else:
        img[mask == 0]=0
        img_mean=cv2.blur(img, ksize=wsize)
        img_squared_mean = cv2.blur(img*img, ksize=wsize)
        img_std = np.sqrt(img_squared_mean - img_mean*img_mean)
        simg=(img - img_mean) / img_std
        simg[img_std == 0]=0
        simg[mask == 0]=0
    return simg

def globalstandardize(img,mask):

    usedpixels = np.double(img[mask == 1])
    m=np.mean(usedpixels)
    s=np.std(usedpixels)
    simg=np.zeros(img.shape)
    simg[mask == 1]=(usedpixels - m) / s
    return simg

def getmean(x):
    usedx=x[x != 0]
    m=np.mean(usedx)
    return m

def getstd(x):
    usedx=x[x != 0]
    s=np.std(usedx)
    return s