我是 Django 的初学者,我想在使用 opencv 上传之前将我的图像转换为灰度。 这是我尝试做的,但它不起作用
`
from __future__ import unicode_literals
from django.db import models
import cv2
class Personne(models.Model):
nom = models.CharField(max_length=50, unique=True, help_text="Le nom est unique")
description = models.TextField(blank=True)
def __unicode__(self):
return self.nom[:50]
def traitement(filename):
img = cv2.imread(filename, 0)
cv2.imwrite(filename, img)
class Visage(models.Model):
personne = models.ForeignKey(Personne)
def generate_filename(self, filename):
return "Images/%s/%s" % (self.personne.nom, filename)
traitement
image = models.ImageField(blank=False, upload_to=generate_filename)
ajoute_le = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.image.path`
最佳答案
您必须重写Visage 模型的save() 方法才能在保存后对数据执行一些操作。 适本地更改your_project_name。
from your_project_name.settings import MEDIA_ROOT
class Visage(models.Model):
...
def save(self):
super(Visage, self).save()
filename = os.path.abspath(os.path.join(MEDIA_ROOT, self.image.name)
traitement(filename)
关于django - 如何在 Django 中使用 opencv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36020441/