AttributeError: модуль 'scipy.stats' не имеет атрибута 'signaltonoise' - PullRequest
2 голосов
/ 04 февраля 2020

Я использую функцию scipy signaltonoise, приведенную ниже, это код, но он возвращает ошибку. Я тоже искал это в 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)

1 Ответ

4 голосов
/ 04 февраля 2020

scipy.stats.signaltonoise() был устарел в scipy 0.16.0 и удален в 1.0.0. Если вам нужно использовать функцию без понижения scipy, вы можете увидеть исходный код функции до того, как она была удалена на github здесь и воспроизведена ниже:

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)
...