2017-01-09 15 views
0

私は画像を前処理できる(コントラストを高める)ことができるpythonスクリプトを持っています。PHPコントローラから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) 

私は スクリプトにパラメータとしてMySQLデータベースから画像を送信するにはどうすればよいコントローラ

  1. に何をすべき?
  2. スクリプトを実行して、結果の画像を データベースに保存するにはどうすればよいですか?

答えて

1

まず、初心者のために、Pythonスクリプトを再度パラメータ化する必要があります。このような
何か:

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

がスクリプトに存在してはいけません!スクリプトのパラメタとしてfilepathを受け取るべきです。

残りは、あなたが実装した方法とそれをどのように機能させるかによって大きく異なります。

PHPスクリプトからプログラムを実行したい場合は、shell_exec()またはexec()

を参照してください。
関連する問題