从Web请求调用时,OpenCV imread挂起

从Web请求调用时,OpenCV imread挂起,第1张

概述这可能是我在使用OpenCV时遇到的最奇怪的错误之一.有很多事情要发生,所以让我尽力解释这个问题. >我一起使用Django Web框架和OpenCV(cv2).我试图从Django的视图中读取我的磁盘上的文件. imagePath = os.path.dirname(__file__) + "/1.jpg" 基本上,在与views.py文件相同的路径中,有一个名为“1.jpg”的文件.这就是所有 这可能是我在使用OpenCV时遇到的最奇怪的错误之一.有很多事情要发生,所以让我尽力解释这个问题.

>我一起使用Django Web框架和OpenCV(cv2).我试图从Django的视图中读取我的磁盘上的文件.

imagePath = os.path.dirname(__file__) + "/1.jpg"

基本上,在与vIEws.py文件相同的路径中,有一个名为“1.jpg”的文件.这就是所有这些代码正在做的事情.很容易.但下一步是事情变得疯狂.
>现在,我想读取位于’imagePath’的图像文件.这需要调用cv2.imread

image = cv2.imread(imagePath)

但这是我的问题开始的地方.不知何故,Apache(或者甚至OpenCV,我无法分辨)开始挂起,文件永远不会被加载.没有错误消息,没有任何消息.

做一些侦探工作我决定尝试旧版本的OpenCV(导入cv).奇怪的是,当我调用cv.LoadImage(imagePath)时,Apache没有挂起,我的图像加载得很好.我完全不知道为什么.

我的问题的潜在解决方法是使用PIL.

from PIL import Imageimport numpy as npimage = Image.open(imagePath)image = np.asarray(image)

再一次,使用PIL Apache不会挂起,我可以正常进行,我的图像表示为numpy数组,并将任何cv2函数应用于它.

但是,我不是一个满足于变通办法的人,而且cv2.imread悬挂的事实真的让我烦恼.

有没有人遇到过这个?

编辑:使用Python shell中的cv.imread工作正常,它只是来自发出挂起的Apache请求.

>>> import cv2>>> image = cv2.imread("1.jpg")>>> image.shape(400,344,3)>>>
解决方法 错误
imagePath = os.path.dirname(__file__) + "/1.jpg"

from os.path import abspath,join,dirnameimagePath = abspath( join(dirname(__file__),"1.jpg") )
总结

以上是内存溢出为你收集整理的从Web请求调用时,OpenCV imread挂起全部内容,希望文章能够帮你解决从Web请求调用时,OpenCV imread挂起所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1109087.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存