AttributeError: module 'scipy.stats' has no attribute 'signaltonoise'

AttributeError: module 'scipy.stats' has no attribute 'signaltonoise'

我正在使用下面的 scipy signaltonoise 函数,但它 returns 是一个错误。我也在 github 中对此进行了搜索,但找不到。你能帮忙吗

import numpy as np
import cv2
import math
import os
import csv
from scipy import stats 
from PIL import Image
from skimage.color import rgb2gray
from multiprocessing import Pool
from skimage.feature import local_binary_pattern # Local Binary Pattern function
from scipy.stats import itemfreq # To calculate a normalized histogram
import scipy.stats as sp
from skimage.feature import hog
from scipy.ndimage.measurements import label
from scipy import signal as sg




def calc_snr(img):
    snr = stats.signaltonoise(img, axis=None)
    return snr


 snr = calc_snr(img)

scipy.stats.signaltonoise()原为deprecated in scipy 0.16.0 and removed in 1.0.0. If you need to use the function without downgrading scipy, you can see the original code from the function before it was removed on github here,转载如下:

import numpy as np
def signaltonoise(a, axis=0, ddof=0):
    a = np.asanyarray(a)
    m = a.mean(axis)
    sd = a.std(axis=axis, ddof=ddof)
    return np.where(sd == 0, 0, m/sd)