Solutions:
配置完tf-openpose之后,运行图片姿态识别并未出现问题,但是当运行视频的姿态识别后出现错误,如下:
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/work/opencv-3.1.0/modules/highgui/src/window.cpp, line 545 Traceback (most recent call last): File “untitled.py”, line 7, in cv2.imshow(‘image’,img) cv2.error: /feedstock_root/build_artefacts/work/opencv-3.1.0/modules/highgui/src/window.cpp:545: error: (-2) 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 function cvShowImage
解决方式:
首先检查自己是否安装了ffmpeg视频.
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的
sudo apt-get install ffmpeg
如果安装了还出现上面的错误,则看下面步骤:
卸载原来的opencv,并按下面步骤重新安装
- 第一个方法
conda remove opencv
conda update conda
conda install --channel menpo opencv
或者选择下面的OpenCV 3.1版本 :
conda install -c menpo opencv3
- 第二个方法,使用matplotlib而不是用cv.show()
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('img.jpg',0)
plt.imshow(img, cmap='gray')
plt.show()
-
第三个方法重新按照提示编译opencv,这个比较复杂容易出错,逼不得已不使用
这里推荐stackoverflow的一位大佬,个人感觉stackoverflow里面的人真的强 -
第四个方法是直接安装opencv4.1.0版本
conda remove opencv
conda install -c conda-forge opencv=4.1.0
Error opening video stream or file
除此之外还需要安装下面的包,否则也会出现另一个错误,“Error opening video stream or file”
pip install --upgrade pip
pip install opencv-contrib-python
AttributeError: ‘NoneType’ object has no attribute ‘shape’
pip install --upgrade pip
pip install opencv-contrib-python