同じエラーの質問がありました。(URL)
これによると、
cap = cv2.VideoCapture(-1)
でアクティブなカメラの自動指定や、
cap = cv2.VideoCapture('hogehoge.mp4')
で保存ファイルを指定するやり方があるそうです。
もし上2つのどちらもだめであれば、そもそもOpenCV
にカメラの機能がインストールできていなかった可能性があるので、再インストールが必要です。
確認するには、
Python
1import cv2
2print(cv2.getBuildInformation())
でできます。これで表示される項目の中に、libv4l/libv4l2:
というのがあり、これがNO
になっているとWebカメラの機能がインストールされていなかったということです。
再インストールにこちらのサイトが参考になりそうです。
コマンドとしては、
terminal
1$ cd ~/src/cpp/opencv/build
2$ sudo make install
3$ sudo make uninstall
4$ sudo rm -rf /usr/local/include/opencv
5$ rm -rf ~/.cache/opencv
6$ cd ~/src/cpp
7$ rm -rf ~/src/cpp/opencv
8$ cd ~/src/cpp
9$ git clone https://github.com/opencv/opencv.git
10$ git clone https://github.com/opencv/opencv_contrib.git
11$ cd ~/src/cpp/opencv
12$ mkdir build
13$ cd build
14$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D OPENCV_EXTRA_MODULES_PATH=$HOME/src/cpp/opencv_contrib/modules -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=OFF -D OPENCV_ENABLE_NONFREE=ON -D WITH_FFMPEG=ON -D BUILD_EXAMPLES=OFF ..
15$ make -j$(nproc)
16$ sudo make install
17$ make clean
18$ sudo ldconfig
19
20# OpenCVのPATHを通す
21$ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib' >> ~/.bashrc
22$ source ~/.bashrc
長い道のりになりそうです...