首页 > 解决方案 > AttributeError:'str'对象在python中没有属性'shape'

问题描述

我是python的初学者。我试图找出图像的 Krawtchouk 时刻。但是,我得到

AttributeError:str对象没有属性shape

import numpy as np
from krawtchouk import *

K = wkrchkpoly(101,0.5)

X = 'name.jpg'
Q,Kr1,Kr2 = wkrchkmoment_single(X,[0.5, 0.8])

标签: python

解决方案


由于wkrchkmoment_single将 anumpy.ndarray作为其第一个参数(源代码),您可以使用 PIL 库来读取您的jpg,然后将其转换为numpy.ndarrayusing ,然后再将其np.asarray传递给wkrchkmoment_single.

from PIL import Image
import numpy as np

img = Image.open("name.jpg")
img.load()
X = np.asarray(img, dtype="int64")
Q,Kr1,Kr2 = wkrchkmoment_single(X,[0.5, 0.8])

由于wkrchkmoment_single需要 2Dnp.ndarray作为其第一个参数,对应于灰度图像,您可能需要将图像从彩色转换为灰度。一种方法是在数组的第三个轴上取平均值,即:

X = np.mean(np.array(img, dtype="float64"), axis=2)

推荐阅读