我有一个可以预处理图像的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)
我应该在控制器中做什么
答案 0 :(得分:1)
嗯,对于初学者你应该重做你的python脚本以使其参数化。
像这样:
img = cv2.imread('original.png')
你的脚本中不应该存在!您应该接收文件路径作为脚本的参数。
其余的很大程度上取决于你如何实现它以及你希望它如何工作。
如果您想从PHP脚本中执行程序,请查看shell_exec()或exec()