У меня есть код ниже:
import cv
import time
cv.NamedWindow("camera", 1)
capture = cv.CaptureFromCAM(0)
while True:
img = cv.QueryFrame(capture)
cv.ShowImage("camera", img)
if cv.WaitKey(10) == 27:
break
Приведенный выше код представляет собой собственный CAM-захват OpenCV-2.2 script для Python. Поэтому я знаю, что в программе нет ничего плохого. И я могу использовать свою камеру с различными приложениями в Linux, как программа под названием Cheese. Однако, когда я компилирую эту программу, я получаю ошибку, как показано ниже:
(camera:2519): GStreamer-CRITICAL **: gst_debug_add_log_function: assertion `func != NULL' failed
(gst-plugin-scanner:2521): GStreamer-WARNING **: Failed to load plugin '/usr/lib64/gstreamer-0.10/libgstbcmdec.so': /usr/lib64/gstreamer-0.10/libgstbcmdec.so: undefined symbol: gst_video_format_new_caps
Я предполагаю, что с GStreamer что-то не так. Есть ли способ исправить это? Или проблема с OpenCV-2.2 сама по себе? Или, может быть, что-то не так с образцом script?
Спасибо за ваше время.
Этот символ должен быть предоставлен пакетом gstreamer-plugins-base.
Проверьте, установлен ли он. Если у вас это есть, значит, ваша версия этого пакета старше того, что требуется OpenCV 2.2. Лучше всего обновить все GStreamer на вашей платформе, чтобы быть уверенным.
Попробуйте использовать другой индекс камеры
capture = cv.cvCaptureFromCam(1)
или другие более высокие индексы