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

2024-06-16 08:46:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

视图.py:

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

cv2:

^{pr2}$

裁剪的_image变量是一个opencv数组:

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

我该怎么做?在


Tags: 文件py模型图像imageform视图if
1条回答
网友
1楼 · 发布于 2024-06-16 08:46:40

在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()
    ...

注意:^{}上克隆了此文件的setup file to model字段后,最好删除旧图像或使用^{}而不是使用文件来存储操纵的图像。在

相关问题 更多 >