如何读取上传到 Django 的文件?它不是一个 str 或类似路径的对象

问题描述 投票:0回答:1

我正在开发一个 Django 项目,用户可以上传图像,服务器处理该图像以使用

OpenCV
应用卡通效果。但是,我在尝试使用
cv2.imread()
读取上传的图像文件时遇到错误。

这是我的代码:

def create_cartoonify_content(request):
    if request.method == 'POST':
        file = request.FILES['file']
        title = request.POST['title']

        img = cv2.imread(file)
        edges = cv2.bitwise_not(cv2.Canny(img, 100, 200))
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        gray = cv2.medianBlur(gray, 5)
        dst = cv2.edgePreservingFilter(img, flags=2, sigma_s=64, sigma_r=0.25)
        cartoon = cv2.bitwise_and(dst, dst, mask=edges)

        create_cartonist_content = Post.objects.create(user=request.user, title=title, file=cartoon)
        create_cartonist_content.save()
        return redirect('Home_Page') 
    return render(request, 'create_cartoonify.html')

错误信息:

error at /create_cartoonify
OpenCV(4.10.0) :-1: error: (-5:Bad argument) in function 'imread'
> Overload resolution failed:
>  - Expected 'filename' to be a str or path-like object
>  - Expected 'filename' to be a str or path-like object
>  - Expected 'filename' to be a str or path-like object
python django opencv django-views
1个回答
0
投票

这有帮助吗

img = cv2.imread(file.name)

© www.soinside.com 2019 - 2024. All rights reserved.