【问题标题】:Banana ripeness - Python香蕉成熟度 - Python
【发布时间】:2021-11-19 09:48:04
【问题描述】:

我开始使用 Python 编写代码。 我正在尝试研究代码。当我尝试运行它时:

img_re = cv2.resize(img, (640,480)) cv2.error: OpenCV(4.5.3) 我不知道如何改变它。有人可以帮我吗?

import cv2
import os
import numpy as np

def averagecolor(image):
    return np.mean(image, axis=(0, 1))
    (r"C:/Users/Rafael/Desktop/Banana_Ripeness-master/Data/haar_face_banana.xml")
    #(r"C:/Users/Rafael/Desktop/myac.csv")
path = (r"C:/Users/Rafael/Desktop/Banana_Ripeness-master/Data/")
trainX = []
trainY = []

for label in ('Unriped','Riped', 'No Banana Found'):
    print ("Loading training images for the label: "+label)
    
    #Load all images inside the subfolder
    for filename in os.listdir(path+label+"/"): 
        img = cv2.imread(path+label+"/"+filename)
        img_re = cv2.resize(img, (640,480))
        img_features = averagecolor(img_re)
        trainX.append(img_features)
        trainY.append(label)
    Test = (r"C:/Users/Rafael/Desktop/Banana_Ripeness-master/Data/Test")

img=cv2.imread(os.path.join('Database',filename))
#for img in os.path.join((Test):
for img in os.listdir(Test):
    test_img = cv2.imread(Test + img)
    test_img_feat = averagecolor(test_img)
    calculated_distances = []
    for i in trainX:
        calculated_distances.append(np.linalg.norm(test_img_feat-i))
    prediction = trainY[np.argmin(calculated_distances)]
    print(f"{img}:{prediction}")

回溯(最近一次通话最后):文件“C:\Users\Rafael\Desktop\Banana_Ripeness-master\Banana_Ripeness(webcam).py”,第 19 行,在 img_re = cv2.resize(img, ( 640,480)) cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-1i5nllza\opencv\modules\imgproc\src\resize.cpp:4051: 错误: (-215:Assertion failed) !ssize.empty() in

*使用 Opencv-python 4.5.4.58 Python 3.9

【问题讨论】:

  • 请提供完整错误traceback
  • 请提供完整的错误信息 - 这只是它说明导致错误的原因以及您使用的 OpenCV 版本的部分;实际错误应该随之而来。
  • Traceback(最近一次调用最后一次):文件“C:\Users\Rafael\Desktop\Banana_Ripeness-master\Banana_Ripeness(webcam).py”,第 19 行,在 img_re = cv2. resize(img, (640,480)) cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-1i5nllza\opencv\modules\imgproc\src\resize.cpp :4051: 错误: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'
  • @rzlvmp 我刚刚更新并包含了此信息。
  • 该文件不存在。查看文件的实际路径并确保它是正确的。试试test_img = cv2.imread(Test + "/" + img)

标签: python


【解决方案1】:

您的os.listdir(path+label+"/") 文件夹中的文件似乎有问题

例如 Windows 缓存图像和创建 thumbs.db 隐藏文件。

  1. 尝试过滤输入文件(例如检查扩展名)
  2. 使用tryexcept 了解哪个filename 不好
for filename in os.listdir(path+label+"/"):
    # check is file extension is an image
    if filename[-4:].lower() in ['.jpg', 'jpeg', '.bmp', '.png']:
        img = cv2.imread(path+label+"/"+filename)
        try:
            img_re = cv2.resize(img, (640,480))
        except:
            # print file name if some error happens
            print(f'BOOM! Bad file name is: {filename}')
            # re-raise same error
            raise
        img_features = averagecolor(img_re)
        trainX.append(img_features)
        trainY.append(label)
    else:
        # go to next file if not image
        continue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 2013-06-20
    • 2015-04-26
    • 2013-11-09
    • 2011-09-25
    • 1970-01-01
    相关资源
    最近更新 更多