如何解决错误:错误:( - 27)矩阵在我的opencv函数中的函数cvGetMat中有NULL数据指针?

时间:2017-04-27 07:53:41

标签: python django azure opencv

为了解决这个问题的一些背景,我试图将我的django项目部署到一个微软的Azure服务器上。我的django项目主要处理执行opencv函数。我确保测试我的所有opencv函数都在我的本地主机上工作,但我遇到的主要问题是让它们在azure服务器上工作。每次我尝试调用任何opencv函数时都会得到错误:矩阵在我的opencv函数中的函数cvGetMat中有NULL数据指针。我试过谷歌搜索问题,并将其缩小到我的函数内部的框架变量,导致问题。堆栈跟踪指出该函数在此行保持失败:cv2.imshow('frame',gray)。完整功能只是播放视频的基本opencv功能。代码如下:

def PlayVideo(request):
   filename="app/media/traffic.mp4"
   cap = cv2.VideoCapture(filename)




   while(cap.isOpened()):
      ret, frame = cap.read()


      gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

      cv2.imshow('frame',gray)
        if cv2.waitKey(1) & 0xFF == ord('q'):
             break

      cap.release()
      cv2.destroyAllWindows()

   return render_to_response('app/Configuration.html')

当我第一次遇到这个问题时,我认为它可能无法找到视频文件,但我修改了不同路径的代码,这些路径不会导致视频但是那些甚至不执行它们只是重定向回到同一页面,所以我知道这不是问题。堆栈跟踪显示'frame'数组具有值以及'gray'数组,该数组也具有值。堆栈跟踪如下:

我还在settings.py中定义了MEDIA_ROOT和MEDIA_URL以及我的urls.py中的网址来提供媒体文件:

    url(r'^media/(?P<path>.*)$', django.views.static.serve, {
        'document_root': settings.MEDIA_ROOT,
    })

总而言之,我的主要问题是如何解决错误:矩阵在我的opencv函数中的函数cvGetMat中有NULL数据指针,以便让我的opencv函数在我的azure服务器上运行?

如果需要更多信息,可以找出失败的原因和解决方案随时让我知道。

0 个答案:

没有答案