我正在尝试对通过 Django 的 views.py
文件中的 cv2.imread()
加载的图像应用图像处理,但我得到了每次都会出现 AttributeError
。
以下是层次结构
views.py,我试图通过它读取temp321.jpg
:
def process_image(request):
url = "static/images/temp321.jpg"
a = cv2.imread(url)
r, c = a.shape
错误我收到:
我做错了什么?
最佳答案
此错误表明 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/