python - 在 Django views.py 中使用 cv2.imread() 读取图像时出错

标签 python django numpy

我正在尝试对通过 Django 的 views.py 文件中的 cv2.imread() 加载的图像应用图像处理,但我得到了每次都会出现 AttributeError

以下是层次结构

Heirarchy


views.py,我试图通过它读取temp321.jpg:

def process_image(request):
    url = "static/images/temp321.jpg"
    a = cv2.imread(url)
    r, c = a.shape


错误我收到:

Error message snapshot

我做错了什么?

最佳答案

此错误表明 a 为 None。其中 a 是调用 cv2.imread

的结果

If the image cannot be read (because of missing file, improper permissions, unsupported or invalid format), the function returns an empty matrix

这来自 cv2 c 文档。这在 python 中翻译为 None 。所以问题本质上是你的文件没有被读取。

解决办法: 如果您已在 settings.py 文件中正确设置 PROJECT_ROOT 变量

os.path.join(PROJECT_ROOT, "static/images/temp321.jpg")

如果您没有 PROJECT_ROOT 设置,请添加到 settings.py

PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))

请注意,如果您在生产中执行此操作,您可能仍然会遇到问题,因为可能不允许网络服务器从该目录读取。在这种情况下,您将需要更改文件系统权限

关于python - 在 Django views.py 中使用 cv2.imread() 读取图像时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40516586/

相关文章:

python - 使用覆盖率,我如何测试这条线?

python - 移动 Numpy 数组的最快方法

python - 指定要在 Django 中使用的数据库

python - 如何将一个数据框中的每一列与另一个数据框中的所有列相乘

python - argparse.ArgumentError : argument --skip-checks: conflicting option string: --skip-checks

python - 如何将升序连续数字标记到列中的值上?

python - 将 CSV 从 AWS S3 实例导入到 Numpy

python - Django 和 fcgi - 日志记录问题

python - 迭代两个列表以在 Python 中创建一个新列表

python - Django动态页面功能和url