Olej писал(а): ↑17 янв 2023, 19:33
Правда, по кодам ошибок всё ОК, но фрейм отображается как ... "чёрный квадрат" - но это пожалуй что-то с параметрами отображения...
Чтоб пока не разбираться и не вспоминать ... я пока поднял
свой проект распознавания лиц + подчистил его под Python3 + выверил...
И получается что всё работает на ОК с видеопотоками (не только изображениями):
- вот так
визуализируется видеопоток на экран с
выделением (детектированием) человеческих лиц, если они попадают в кадр:
Код: Выделить всё
[olej@xenix Face_recognition]$ ./vshow.py -h
usage: ./vshow.py <file> | [<camera>]
Код: Выделить всё
[olej@xenix Face_recognition]$ ./vshow.py
default camera 0
[ INFO:0@0.046] global /builddir/build/BUILD/opencv-4.6.0/modules/videoio/src/videoio_registry.cpp (223) VideoBackendRegistry VIDEOIO: Enabled backends(8, sorted by priority): FFMPEG(1000); GSTREAMER(990); INTEL_MFX(980); V4L2(970); CV_IMAGES(960); CV_MJPEG(950); FIREWIRE(940); UEYE(930)
[ INFO:0@0.055] global /builddir/build/BUILD/opencv-4.6.0/modules/videoio/src/cap_gstreamer.cpp (1104) open OpenCV | GStreamer: v4l2src device=/dev/video0 ! videoconvert ! appsink drop=true
[ INFO:0@0.157] global /builddir/build/BUILD/opencv-4.6.0/modules/videoio/src/cap_gstreamer.cpp (1137) open OpenCV | GStreamer: mode - MANUAL
[ WARN:0@0.909] global /builddir/build/BUILD/opencv-4.6.0/modules/videoio/src/cap_gstreamer.cpp (1405) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
capture open OK!
[ INFO:0@0.927] global /builddir/build/BUILD/opencv-4.6.0/modules/core/src/parallel/registry_parallel.impl.hpp (96) ParallelBackendRegistry core(parallel): Enabled backends(2, sorted by priority): TBB(1000); OPENMP(990)
[ INFO:0@0.927] global /builddir/build/BUILD/opencv-4.6.0/modules/core/include/opencv2/core/parallel/backend/parallel_for.tbb.hpp (54) ParallelForBackend Initializing TBB parallel backend: TBB_INTERFACE_VERSION=11103
[ INFO:0@0.927] global /builddir/build/BUILD/opencv-4.6.0/modules/core/src/parallel/parallel.cpp (77) createParallelForAPI core(parallel): using backend: TBB (priority=1000)
[ INFO:0@0.932] global /builddir/build/BUILD/opencv-4.6.0/modules/core/src/ocl.cpp (1186) haveOpenCL Initialize OpenCL runtime...
[ INFO:0@1.075] global /builddir/build/BUILD/opencv-4.6.0/modules/core/src/ocl.cpp (1192) haveOpenCL OpenCL: found 1 platforms
[ INFO:0@1.075] global /builddir/build/BUILD/opencv-4.6.0/modules/core/src/ocl.cpp (984) getInitializedExecutionContext OpenCL: initializing thread execution context
[ INFO:0@1.075] global /builddir/build/BUILD/opencv-4.6.0/modules/core/src/ocl.cpp (994) getInitializedExecutionContext OpenCL: creating new execution context...
[ INFO:0@1.141] global /builddir/build/BUILD/opencv-4.6.0/modules/core/src/ocl.cpp (1012) getInitializedExecutionContext OpenCL: device=GeForce GT 520
[ INFO:0@1.141] global /builddir/build/BUILD/opencv-4.6.0/modules/core/src/ocl.cpp (5370) __init_buffer_pools OpenCL: Initializing buffer pool for context@0 with max capacity: poolSize=0 poolSizeHostPtr=0
[ INFO:0@1.162] global /builddir/build/BUILD/opencv-4.6.0/modules/highgui/src/registry.impl.hpp (114) UIBackendRegistry UI: Enabled backends(3, sorted by priority): GTK(1000); GTK3(990); GTK2(980) + BUILTIN(QT5)
А вот так записывается видеопоток:
Код: Выделить всё
[olej@xenix Face_recognition]$ ./vsave.py -h
usage: ./vsave.py <out_file> [<camera>]
Имя файла записи
должно указываться
с расширением, .avi или .mkv (матроска) - при записи тоже происходит визуализация:
Код: Выделить всё
[olej@xenix Face_recognition]$ ./vsave.py xxx2.avi
default camera 0
[ INFO:0@0.014] global /builddir/build/BUILD/opencv-4.6.0/modules/videoio/src/videoio_registry.cpp (223) VideoBackendRegistry VIDEOIO: Enabled backends(8, sorted by priority): FFMPEG(1000); GSTREAMER(990); INTEL_MFX(980); V4L2(970); CV_IMAGES(960); CV_MJPEG(950); FIREWIRE(940); UEYE(930)
[ INFO:0@0.022] global /builddir/build/BUILD/opencv-4.6.0/modules/videoio/src/cap_gstreamer.cpp (1104) open OpenCV | GStreamer: v4l2src device=/dev/video0 ! videoconvert ! appsink drop=true
[ INFO:0@0.125] global /builddir/build/BUILD/opencv-4.6.0/modules/videoio/src/cap_gstreamer.cpp (1137) open OpenCV | GStreamer: mode - MANUAL
[ WARN:0@0.995] global /builddir/build/BUILD/opencv-4.6.0/modules/videoio/src/cap_gstreamer.cpp (1405) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
capture open OK!
[ INFO:0@0.996] global /builddir/build/BUILD/opencv-4.6.0/modules/videoio/src/backend_plugin.cpp (369) getPluginCandidates VideoIO plugin (FFMPEG): glob is 'libopencv_videoio_ffmpeg*.so', 1 location(s)
[ INFO:0@1.119] global /builddir/build/BUILD/opencv-4.6.0/modules/videoio/src/backend_plugin.cpp (379) getPluginCandidates - /lib64: 0
[ INFO:0@1.119] global /builddir/build/BUILD/opencv-4.6.0/modules/videoio/src/backend_plugin.cpp (383) getPluginCandidates Found 0 plugin(s) for FFMPEG
[ INFO:0@1.132] global /builddir/build/BUILD/opencv-4.6.0/modules/highgui/src/registry.impl.hpp (114) UIBackendRegistry UI: Enabled backends(3, sorted by priority): GTK(1000); GTK3(990); GTK2(980) + BUILTIN(QT5)
[ INFO:0@1.365] global /builddir/build/BUILD/opencv-4.6.0/modules/core/src/parallel/registry_parallel.impl.hpp (96) ParallelBackendRegistry core(parallel): Enabled backends(2, sorted by priority): TBB(1000); OPENMP(990)
[ INFO:0@1.365] global /builddir/build/BUILD/opencv-4.6.0/modules/core/include/opencv2/core/parallel/backend/parallel_for.tbb.hpp (54) ParallelForBackend Initializing TBB parallel backend: TBB_INTERFACE_VERSION=11103
[ INFO:0@1.365] global /builddir/build/BUILD/opencv-4.6.0/modules/core/src/parallel/parallel.cpp (77) createParallelForAPI core(parallel): using backend: TBB (priority=1000)
saved 48 frames
Код: Выделить всё
[olej@xenix Face_recognition]$ file xxx*
xxx1.mkv: Matroska data
xxx2.avi: RIFF (little-endian) data, AVI, 640 x 480, 25.00 fps, video: H.264 H.264 X.264 or H.264
Для
завершения программ жмём 'q'