É um problema conhecido com 16.04. Um relatório de bug já foi preenchido e deve ser corrigido em breve. Por enquanto, eu consertei isso:
sudo -i
mkdir /usr/include/ffmpeg
cd /usr/include/ffmpeg
ln -sf /usr/include/x86_64-linux-gnu/libavcodec/*.h ./
ln -sf /usr/include/x86_64-linux-gnu/libavformat/*.h ./
ln -sf /usr/include/x86_64-linux-gnu/libswscale/*.h ./
Basicamente, você cria links em / usr / include / ffmpeg para todos os arquivos .h nos diretórios: / usr / include / x86_64-linux-gnu / libavcodec / / usr / include / x86_64-linux-gnu / libavformat / / usr / include / x86_64-linux-gnu / libswscale /
Consegui evitar o problema sys / videoio.h e o problema linux / videodev.h usando o seguinte comando cmake (note que você deve ter o checkout do opencv_contrib e ajustar o caminho relativo abaixo para o seu caso). Você também deve executar este comando cmake duas vezes ou a parte Python3 por algum motivo não será atendida. Eu não sei porque o comando cmake abaixo corrigiu os problemas para mim, eu acabei de descobrir depois de uma longa investigação (talvez com o comando cmake abaixo a correção acima não seja sequer necessária, eu não sei).
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D WITH_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_NVCC_FLAGS="-D_FORCE_INLINES" \
-D WITH_CUBLAS=1 \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_OPENCV_PYTHON3=1 \
-D PYTHON3_EXECUTABLE=$(which python3) \
-D PYTHON3_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
-D PYTHON3_LIBRARIES=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..