OS:Ubuntu 14.04 LTS
在ELL的tutorial中,有一个步骤是在PC上测试运行一个demo程序来检查ELL能否正常工作,当你选择CNTK model的时候,运行的就是 cntkDemo.py 这个demo程序。
这个demo程序调用了OpenCV来在GUI窗口中显示摄像头拍摄的实时视频,可能会跑不起来,并输出下面这样的错误:
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvShowImage, file /feedstock_root/build_artefacts/opencv_1490907195496/work/opencv-3.2.0/modules/highgui/src/window.cpp, ...(后面还有很长的内容)
如果你的PC和我的一样老旧,那么执行 python cntkDemo.py 可能耗时非常长(你可以在一台老爷车上试一下),直到N分钟后才打印出上面的错误,然后程序挂掉,这使得我们解决这个问题非常不方便——每次都要等待超级长的时间,才知道自己的修改是否有效。
文章来源:https://www.codelast.com/
因此,为了能便于debug问题,我们先把和上面那个错误相关的关键代码段提取出来,单独放到一个源代码文件 z.py 中:
import numpy as np
import cv2
cam = cv2.VideoCapture(0)
while True:
ret, frame = cam.read()
cv2.imshow('test', frame)
if cv2.waitKey(1) & 0xFF == 27:
break
稍后,我们只需要执行 python z.py,不出错的话,就说明我们搞定了以上问题。
注意:这里的程序假设你的Ubuntu PC上至少连接了一个USB摄像头,cv2.VideoCapture(0)里的0就是指第一个摄像头,千万不要傻傻地在没有摄像头的情况下测试。
文章来源:https://www.codelast.com/
经过漫长的Google搜索,我最终找到了问题的原因:ELL文档中提供的安装opencv的方法有问题(至少在我的Ubuntu上如此):
conda install -c conda-forge opencv
conda install --channel loopbio --channel conda-forge --channel pkgw-forge gtk2 ffmpeg ffmpeg-feature gtk2-feature opencv
当然,在安装之前,如果已经装错了另一个版本的OpenCV,需要先用 conda remove opencv 卸载掉。关于这个错误的详解可以看这个和这个链接。
文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤
转载需注明出处:codelast.com
感谢关注我的微信公众号(微信扫一扫):