如何解决此错误: 属性错误: 'numpy.ndarray' 对象没有属性 'crop'



我想裁剪不同大小的图像,以获得相同的大小,以便进一步处理它们。我写了下面的代码:

import glob
import cv2
import os
from matplotlib import pyplot as plt

inputFolder = "C:\Users\die5k\Desktop\hist\Cropping\input"
storeDirectory =  "C:\Users\die5k\Desktop\hist\Cropping\output"
path = glob.glob(inputFolder + "\*.png")
cv_img = []
image_no = 1
for img in path:
n = cv2.imread(img)
cv_img.append(n)
print(img)
os.chdir(storeDirectory)
cropped_img = n.crop(((w-100)//2, (h-100)//2, (w+100)//2, (h+100)//2))

filename = "Figure_" + str(image_no) + ".png"
plt.gcf().savefig(filename)

print(image_no)
image_no += 1

输出如下错误:AttributeError: 'numpy. 'narray ' object没有属性'crop'

我是一个编程初学者,我不知道我必须做什么。

这是因为numpy没有裁剪功能。尝试使用PIL库打开图像,并使用crop函数,如下所示:

from PIL import Image    
n = Image.open(path)

然后继续裁剪。或者,您也可以自己裁剪,不需要使用下面的函数:

cropped_img = n[((h-100)//2):((h-100)//2)+((h+100)//2), ((w-100)//2):((w-100)//2)+((w+100)//2)]

最新更新