【问题标题】:OpenCV 3.2 hangs on cv2.cvtColorOpenCV 3.2 挂在 cv2.cvtColor
【发布时间】:2017-06-16 01:19:42
【问题描述】:

我有一组 Web API,我在 Apache 上使用 WSGI 运行图像处理。 最近我将我的 OpenCV 升级到 3.2(我使用的是 Python 2.7) 当我从控制台运行 OpenCV 时,它似乎工作正常,但是当我进行 Web API 调用时,openCV 在将图像转换为灰度时挂起:

cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

这完全是随机的,找不到模式。有时它会挂起,有时它适用于相同的图像。 有什么想法吗?

更多信息: 当我从 shell 命令执行此操作时,一切正常:

>>> 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)

更新: 问题在于 WSGI。当我在 Apache 配置中为 WSGIDaemonProcess 指定多个进程时,我可以轻松地重现挂起。将其设置为 1 后,它可以工作

WSGIDaemonProcess processes=1 threads=25 maximum-requests=100

我仍然不确定为什么wsgi中的多个进程会导致麻烦

【问题讨论】:

标签: python-2.7 opencv mod-wsgi wsgi opencv3.1


【解决方案1】:

我遇到了类似的问题并找到了解决方法 -> 只需添加到您的 apache 配置中即可:

WSGIApplicationGroup %{GLOBAL}

显然,当您有一个扩展模块不是设计为在子解释器中工作时会发生这种情况。以上强制它在主解释器中运行。

来源:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 2020-06-26
    • 2021-09-09
    • 2020-01-21
    • 2017-10-10
    相关资源
    最近更新 更多