Чтение изображения, присутствующего в модели Django
Код модели выглядит следующим образом
class Post(models.Model):
title = models.CharField(max_length=100)
file = models.FileField(null=True,blank=True,upload_to='Files')
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
Я хочу прочитать файл (изображение или видео). Допустим, это изображение. Я хочу прочитать это изображение в формате массива.
Я пытался использовать следующий код, но я получаю только имя файла, а не матрицу изображения
img = Post.objects.all()[0].file
print(img)
OR
print(np.array(img))
Выход: car-1.jpg
Ожидаемый вывод : двумерный массив
по умолчанию django хранит путь к файлу или изображению, а не файл
поэтому вы должны получить путь к файлу + ваш url и использовать, например, wget lib, чтобы получить его, после чего вы можете использовать его
пример:
import cv2, wget
image_url = 'server_url + link_from_query'
filename = wget.download(image_url)
np_image = cv2.imread(filename)