gpt4 book ai didi

python - 如何将 cv2 处理后的图像保存到 Django 模型中?

转载 作者:太空宇宙 更新时间:2023-11-03 15:47:28 25 4
gpt4 key购买 nike

我使用 opencv 裁剪图像,我想将它们保存到模型中,我将文件直接加载到 computeLogoFromMemoryFILE 进行处理,从那里如何将图像保存到 TempImage 模型?

views.py:

form = myForm(request.FILES)
if form.is_valid():
cropped_image = computeLogoFromMemoryFILE(request.FILES.get('logo'))
# ...
temp_image = TempImage.objects.create(image=?)

CV2:

# (np == numpy)
def computeLogoFromMemoryFILE(logo):
logo.seek(0)
image = cv2.imdecode(np.fromstring(logo.read(), np.uint8), cv2.IMREAD_UNCHANGED)
cropped_img = crop_image(image)

cropped_image 变量是一个 opencv 数组:

array([[ 52, 218, 255],
[ 52, 218, 255],
[ 52, 218, 255],
...,
[ 52, 218, 255],
[ 52, 218, 255],
[ 52, 218, 255]]...], dtype=uint8)

我应该如何进行?

最佳答案

在 Django 中,每当你需要操作上传的文件、相似的图像并将它们设置为模型字段时,你必须使用 Django File类,你可以做类似的代码:

from django.core.files import File

def my_view(request):
...
form = myForm(request.FILES)

if form.is_valid():
temp_image = myForm.save(commit=False)
cropped_image = computeLogoFromMemoryFILE(request.FILES.get('logo'))
with open('path/of/cropped_image.png', 'rb') as destination_file:
temp_image.image.save('dest.png', File(destination_file), save=False)
temp_image.save()
...

注意:在设置文件到模型字段后,此文件克隆到 MEDIA_ROOT , 最好删除旧图像或使用 BytesIO而不是使用文件来存储处理后的图像。

关于python - 如何将 cv2 处理后的图像保存到 Django 模型中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49170964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com