Проблема при запуске скрипта OpenCv Python в экземпляре Amazon-Ec2

Я вызываю скрипт Python, используя функцию php System ().

Скрипт Python реализует вычитание переднего плана с использованием библиотеки OpenCv. Я загружаю изображение, используя запрос Post, а затем передаю файл в скрипт.

Следующие вещи выполняются в коде

1. Uploading file through Post request.
2. Passing the file to Python Script
3. Script reads the file, implements the
Foreground subtraction algorithm
and saves this to a new file.

Я тестирую эту программу, используя два изображения, 1500 * 701 пикселей и 2368 * 4208 пикселей.

Все работает нормально для изображения с низким разрешением. Но для изображения с высоким разрешением скрипт Python продолжает выходить.

Код php.

system("python /var/www/html/wowflux/public/scripts/test.py",$ret_val);
var_dump($ret_val);

Скрипт Python

import numpy as np
import cv2
import math
import os
import sys
from sys import path
from matplotlib import pyplot as plt

##test_image = cv2.imread(sys.argv[1])
test_image = cv2.imread("/var/www/html/wowflux/public/test.jpg")
e1 = cv2.getTickCount()
height, width, channels = test_image.shape

h = int(height*0.8)
w = int(width*0.8)
x = int((width-w)/2)
y = int((height-h)/2)
mask = np.zeros((height,width),dtype='uint8')
rect = (x,y,w,h)
bgdModel = np.zeros((1,65),np.float64)
fgdModel = np.zeros((1,65),np.float64)
##tmp1 = np.zeros((1, 13 * 5))
##tmp2 = np.zeros((1, 13 * 5))
cv2.grabCut(test_image,mask,rect,bgdModel,fgdModel,2,mode=cv2.
GC_INIT_WITH_REC  T)\

mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8')
test_image = test_image*mask2[:,:,np.newaxis]

cv2.imwrite("/var/www/html/wowflux/public/test1.jpg",test_image)
e2 = cv2.getTickCount()
time = (e2 - e1)/ cv2.getTickFrequency()
print time

В целях тестирования я уже сохранил файл и просто тестирую скрипт на python. Здесь я тоже сталкиваюсь с той же проблемой.

На моем локальном хосте программа работает нормально для обоих изображений. Я столкнулся с проблемой на экземпляре Amazon-EC2, и это тоже для изображения с высоким разрешением.
Для изображения с высоким разрешением, если я закомментирую код для вычитания переднего плана, время печатается. Таким образом, можно предположить, что проблема заключается в выполнении вычитания переднего плана для изображения с высоким разрешением.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector