2017-01-30 11 views
0

イメージ処理のためにWSGIを使用してApacheで実行する一連のWeb APIがあります。 最近、私は(私は、Python 2.7を使用しています)3.2に私のOpenCVのアップグレード OpenCVのは、私は、コンソールからそれを実行したときに正常に動作するようですが、私が作るときに、Web APIは、OpenCVのは、グレースケールに画像を変換する時にハング呼び出す:OpenCV 3.2がcv2.cvtColorでハングする

cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 

それは完全にランダムで、パターンを見つけることができませんでした。何度か、それはハングアップし、何回かは同じ画像のために働く。 アイデア

詳細: 私はシェルコマンドからそれを行うと、すべてが正常に動作します:

>>> sudo python manage.py shell 
>>> import cv2 
>>> import numpy as np 
>>> from PIL import Image 
>>> image = Image.open(img_path) 
>>> image = np.asarray(image) 
>>> print image 
    array([[[255, 255, 255], 
      [255, 255, 255], 
      [255, 255, 255],...]]], dtype=uint8) 
>>> img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 
>>> print img 
    array([[255, 255, 255, ..., 255, 255, 255], 
     [255, 255, 255, ..., 255, 255, 255], 
     [255, 255, 255, ..., 255, 255, 255], 
     ..., 
     [255, 255, 255, ..., 255, 255, 255], 
     [255, 255, 255, ..., 255, 255, 255], 
     [255, 255, 255, ..., 255, 255, 255]], dtype=uint8) 

がUPDATE: 問題はWSGIです。私がWSGIDaemonProcessのためにApacheの設定で2つ以上のプロセスを指定すると、私は簡単にハングを再現することができます。これを1に設定した後、それは

を作品
WSGIDaemonProcess processes=1 threads=25 maximum-requests=100 

私はまだわからないWSGI原因で複数のプロセスが

+0

はそれがハングアップしたときに画像サイズを視察しましたか? – ilke444

+0

@ ilke444 私が一貫して吊るしたものは、852x852です。ここにあります:https://drive.google.com/open?id=0B_eaJCfhUFmFWmdJQzhKVGJNbDQ – Deman

+0

[OpenCV imreadは、Webリクエストから呼び出されたときにハングします](http://stackoverflow.com/questions/11315043/opencv-imreadウェブからのリクエストと呼ばれる) – ilke444

答えて

1

をトラブルなぜ私は同様の問題を持っていたし、修正を発見した - >ちょうどあなたのApacheの設定に追加します。

WSGIApplicationGroup %{GLOBAL} 

明らかに、サブインタープリタで動作するように設計されていない拡張モジュールを使用している場合に発生します。上記のことは、それが主な通訳者の中で動くように強制する。

出典:

関連する問題