簡體   English   中英

如何解決這個錯誤:AttributeError: 'numpy.ndarray' object has no attribute 'crop'

[英]How to solve this error: AttributeError: 'numpy.ndarray' object has no attribute '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.ndarray' object has no attribute 'crop'

我是編碼初學者,我不知道我必須做什么。

這是因為 numpy 沒有裁剪功能。 嘗試使用 PIL 庫打開圖像並使用crop function 如下:

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

然后繼續進行裁剪。 或者,您可以在沒有 function 的情況下自行裁剪,如下所示:

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

我想裁剪不同尺寸的圖像以獲得相同的尺寸以進一步處理它們。 我寫了以下代碼:

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.ndarray' object has no attribute 'crop'

我是編碼初學者,我不知道我必須做什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM