我正在尝试对我在Django的cv2.imread()
文件中通过views.py
加载的图像应用图像处理,但我每次都得到一个AttributeError
。
以下是层次结构
views.py 我正在尝试阅读 temp321.jpg
:
def process_image(request):
url = "static/images/temp321.jpg"
a = cv2.imread(url)
r, c = a.shape
我得到了
错误:
我做错了什么?
答案 0 :(得分:1)
此错误表示a
为无。 a
是调用cv2.imread
如果图像无法读取(因为文件丢失,不正确 权限,不支持或无效格式),该函数返回一个 空矩阵
这是来自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__))
请注意,如果您在生产中执行此操作,可能仍会遇到问题,因为可能不允许Web服务器从该目录中读取。在这种情况下,您需要更改文件系统权限