Проблема заключается в использовании библиотеки GStreamer в качестве плагина OpenCV. OpenCV не создает исключений, даже если вы создаете исходный код без поддержки GStreamer. (По умолчанию библиотека GStreamer была найдена непосредственно Ubuntu, и наоборот, Raspberry Pi 4 не смогла ее найти.)
Сначала я проверяю информацию о сборке OpenCV с помощью std::cout<<cv::getBuildInformation();
на машине Ubuntu 18.04 и обнаруживаю, что:
GStreamer: YES (1.14.5)
Также я просто проверяю это на стороне Raspberry Pi 4, и информация о сборке была:
GStreamer:NO
Перед сборкой OpenCV я просто сравниваю плагины GStreamer с командой gst-inspect-1.0
для них обоих и просто устанавливаю некоторые недостающие плагины, такие как gstreamer1.0-tools
. Кроме того, я не знал проблемы до проверки информации о сборке, поэтому я установил некоторые другие плагины GStreamer, которые на данный момент не помню.
Наконец, Я собираю систему, добавляя -D WITH_GSTREAMER=ON
флаг. И теперь это работает хорошо.
Я отредактирую ответ, если проблема связана с отсутствующими плагинами, которые установлены позже. Для этого я проверю эту проблему с чистым образом Buster OS.