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

Python 如何解决错误:错误:(-27)在opencv函数的函数cvGetMat中,矩阵有空数据指针?,python,django,azure,opencv,Python,Django,Azure,Opencv,为了提供一些关于这个问题的背景知识,我正在尝试将django项目部署到microsoft azure服务器。我的django项目主要处理opencv函数的执行。我确保我的所有opencv函数都在本地主机上运行,但我遇到的主要问题是让它们在azure服务器上运行。每次我尝试调用任何opencv函数时,都会出现错误:矩阵在opencv函数的函数cvGetMat中有空数据指针。我曾尝试用谷歌搜索这个问题,并将其缩小到导致问题的函数中的帧变量。堆栈跟踪指出函数在这一行一直失败:cv2.imshow('f

为了提供一些关于这个问题的背景知识,我正在尝试将django项目部署到microsoft azure服务器。我的django项目主要处理opencv函数的执行。我确保我的所有opencv函数都在本地主机上运行,但我遇到的主要问题是让它们在azure服务器上运行。每次我尝试调用任何opencv函数时,都会出现错误:矩阵在opencv函数的函数cvGetMat中有空数据指针。我曾尝试用谷歌搜索这个问题,并将其缩小到导致问题的函数中的帧变量。堆栈跟踪指出函数在这一行一直失败: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”数组也具有值。堆栈跟踪如下所示:

我还在my settings.py中定义了MEDIA_ROOT和MEDIA_URL,并在my urls.py中定义了一个URL来提供媒体文件:

    url(r'^media/(?P<path>.*)$', django.views.static.serve, {
        'document_root': settings.MEDIA_ROOT,
    })
url(r'^media/(?P.*)$),django.views.static.service{
“document\u root”:settings.MEDIA\u root,
})
总而言之,我的主要问题是如何解决这个错误:为了让我的opencv函数在azure服务器上运行,矩阵的函数cvGetMat中有空数据指针


如果需要更多的信息来找出失败的原因和解决方案,请随时告诉我

MP4文件有多大?MP4文件是16.3MB,您在哪个Azure服务上部署了它?Web应用程序/应用程序服务或云服务或Azure VM?如果部署在Web应用程序/应用程序服务上,我认为您不能使用一些依赖于GDI等动态库的功能,因为应用程序服务有一些限制,您可以参考了解它。如果部署在云服务上,您可以参考类似的SO线程以获得一些帮助。有什么问题或最新情况吗?