【问题标题】:Running Python script from PHP controller从 PHP 控制器运行 Python 脚本
【发布时间】:2017-05-23 14:50:38
【问题描述】:

我有一个可以预处理图像(增加对比度)的 python 脚本。

通过命令行可以正常工作。

我想从 PHP Web 应用程序调用该脚本。我想使用存储在 MySQL 数据库中的图像。

这是python脚本。

#!/usr/bin/env python

import cv2
import numpy as np
import cv2
import numpy as np
import matplotlib
import matplotlib.pyplot as plt 
plt.switch_backend('Qt4Agg') 

img = cv2.imread('original.png')

bilateral = cv2.bilateralFilter(img,9,75,75)

img = cv2.imread('bilaterla_filtered.png')

# generating the kernels

kernel_sharpen_3 = np.array([[-1,-1,-1,-1,-1],
                             [-1,2,2,2,-1],
                             [-1,2,8,2,-1],
                             [-1,2,2,2,-1],
                             [-1,-1,-1,-1,-1]]) / 8.0

output_3 = cv2.filter2D(img, -1, kernel_sharpen_3)

cv2.imwrite('edge_enhancement.png',output_3)

img = cv2.imread('edge_enhancement.png')

gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

hist,bins = np.histogram(gray_image.flatten(),256,[0,256])
cdf = hist.cumsum()

cdf_m = np.ma.masked_equal(cdf,0)
cdf_m = (cdf_m - cdf_m.min())*255/(cdf_m.max()-cdf_m.min())
cdf = np.ma.filled(cdf_m,0).astype('uint8')

img2 = cdf[img]
image_enhanced=img2
cv2.imwrite('Final.png',image_enhanced)

我应该在控制器中做什么

  1. 如何将图像从 mysql 数据库作为参数发送到 脚本?
  2. 如何执行脚本并将生成的图像存储在 数据库?

【问题讨论】:

    标签: php python mysql symfony


    【解决方案1】:

    好吧,对于初学者,您应该重做您的 python 脚本以使其参数化。
    像这样的:

    img = cv2.imread('original.png')
    

    不应存在于您的脚本中!您应该收到文件路径作为脚本的参数。

    其余的很大程度上取决于您如何实现它以及您希望它如何工作。

    如果您想从 php 脚本中执行程序,请查看 shell_exec() 或 exec()

    【讨论】:

      猜你喜欢
      • 2013-11-13
      • 2012-06-11
      • 2014-06-21
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      相关资源
      最近更新 更多