Как интегрировать приложение для передачи цветов в веб-приложение Django - PullRequest
0 голосов
/ 07 сентября 2018

Цель моего проекта - создать сайт, который загружает 2 изображения и отображает измененное изображение на основе загруженных.

Мой алгоритм обработки изображений в Python был взят из https://github.com/jrosebr1/color_transfer Эта функция используется для передачи цвета.

import numpy as np
import cv2    

def color_transfer(source, target):
  source = cv2.cvtColor(source, cv2.COLOR_BGR2LAB).astype("float32")
  target = cv2.cvtColor(target, cv2.COLOR_BGR2LAB).astype("float32")

  (lMeanSrc, lStdSrc, aMeanSrc, aStdSrc, bMeanSrc, bStdSrc) = image_stats(source)
  (lMeanTar, lStdTar, aMeanTar, aStdTar, bMeanTar, bStdTar) = image_stats(target)

  (l, a, b) = cv2.split(target)
  l -= lMeanTar
  a -= aMeanTar
  b -= bMeanTar

  l = (lStdTar / lStdSrc) * l
  a = (aStdTar / aStdSrc) * a
  b = (bStdTar / bStdSrc) * b

  l += lMeanSrc
  a += aMeanSrc
  b += bMeanSrc

  transfer = cv2.merge([l, a, b])
  transfer = cv2.cvtColor(transfer.astype("uint8"), cv2.COLOR_LAB2BGR)

  return transfer

def image_stats(image):
  (l, a, b) = cv2.split(image)
  (lMean, lStd) = (l.mean(), l.std())
  (aMean, aStd) = (a.mean(), a.std())
  (bMean, bStd) = (b.mean(), b.std())

  return (lMean, lStd, aMean, aStd, bMean, bStd)

Что касается моего приложения Django, которое загружает 2 изображения, на основе Нужен минимальный пример загрузки файла Django

my models.py

from django.db import models
from django.forms import ModelForm

class Upload(models.Model):
   source = models.FileField(upload_to="source/")    
   target = models.FileField(upload_to="target/")   
class UploadForm(ModelForm):
   class Meta:
      model = Upload
      fields = ('source','target',)

my views.py

from django.shortcuts import render
from uploader.models import UploadForm,Upload
from django.http import HttpResponseRedirect
from django.urls import reverse

def home(request):
  if request.method=="POST":
    source = UploadForm(request.POST, request.FILES)     
    target = UploadForm(request.POST, request.FILES)     
    if source.is_valid():
        source.save()  
        return HttpResponseRedirect(reverse('imageupload'))
    if target.is_valid():
        target.save()  
        return HttpResponseRedirect(reverse('imageupload'))
  else:
    source=UploadForm()
    target=UploadForm()
  return render(request,'home.html',{'form':source},{'form':target})

Они оба работают по отдельности. Я новичок в Django, и я не могу найти простое решение в Интернете о том, как их интегрировать. Какими будут мои варианты?

...