我正在开发一个 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
这有帮助吗
img = cv2.imread(file.name)
?