cv2.error: /opt/conda/conda-bld/opencv_1491943704081/work/opencv-3.1.0/modules/imgproc/src/color.cpp:7456: [duplicate]

Используете ли вы какие-либо другие библиотеки JavaScript? Если это так, вам, вероятно, придется использовать jQuery в режиме совместимости:

http://docs.jquery.com/Using_jQuery_with_Other_Libraries

14
задан AnnieFromTaiwan 12 April 2016 в 03:31
поделиться

2 ответа

Это проблема с кодеком

Я преобразовал этот файл mp4 в файл avi с ffmpeg. Тогда вышеуказанный код opencv может хорошо воспроизвести этот файл avi.

Поэтому я уверен, что это проблема кодека.

(тогда я преобразовал этот файл mp4 в другой файл mp4 с помощью ffmpeg, думая, возможно, ffmpeg поможет превратить этот оригинальный нечитаемый кодек .mp4 в читаемый кодек .mp4, но полученный файл .mp4 оказался сломанным. Этот факт может или не может относиться к этой проблеме, просто упомянув, если кому-то нужна эта информация. )

Ответ на него - перестроить FFmpeg, а затем перестроить Opencv

Несмотря на то, что, зная, что это проблема кодека, я пробовал много других способов, но до сих пор не смог ее решить. Наконец, я попытался восстановить ffmpeg и opencv, тогда проблема была решена!

Ниже приводится моя подробная процедура восстановления.

(1) Build ffmpeg

  1. Загрузить ffmpeg-2.7.1.tar.bz2 Веб-сайт FFmpeg: https://www.ffmpeg.org/download.html ffmpeg-2.7.1.tar.bz2 ссылка: http: //ffmpeg.org/releases/ffmpeg-2.7.1.tar.bz2
  2. tar -xvf ffmpeg-2.7.1.tar.bz2
  3. cd ffmpeg-2.7.1
  4. ./configure --enable-pic --extra-ldexeflags=-pie Из http://www.ffmpeg.org/platform.html#Advanced-linking-configuration Если вы скомпилировали библиотеки FFmpeg статически и хотите использовать их для создания собственной общей библиотеки, вам может понадобиться для поддержки поддержки PIC (с --enable-pic во время настройки FFmpeg). Если для вашей целевой платформы требуются независимые от позиции бинарные файлы, вы должны передать правильный флаг связывания (например, -pie) в --extra-ldexeflags. Если вы столкнулись с ошибкой: yasm/nasm not found or too old. Use --disable-yasm for a crippled build. Просто sudo apt-get install yasm Дальнейшие варианты построения: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu , например. Добавление опции --enable-libmp3lame позволяет кодер png. (Перед ./configure вам необходимо sudo apt-get install libmp3lame-dev с версией ≥ 3.98.3)
  5. make -j5 (в папке ffmpeg)
  6. sudo make install

(2) Построить Opencv

  1. wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.9/opencv-2.4.9.zip
  2. unzip opencv-2.4.9.zip
  3. cd opencv-2.4.9
  4. mkdir build
  5. cd build
  6. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_QT=OFF -D WITH_V4L=ON -D CMAKE_SHARED_LINKER_FLAGS=-Wl,-Bsymbolic .. Вы можете изменить эти параметры в зависимости от ваших потребностей. Ключом является только последний вариант -D CMAKE_SHARED_LINKER_FLAGS=-Wl,-Bsymbolic. Если вы опустите это, тогда make выпрыгнет из ошибок. Это также из http://www.ffmpeg.org/platform.html#Advanced-linking-configuration (та же ссылка на шаге 4 выше). Если вы скомпилировали библиотеки FFmpeg статически и хотите использовать для создания собственной общей библиотеки вам может понадобиться ... и добавить в свой проект следующий проект LDFLAGS: -Wl,-Bsymbolic
  7. make -j5
  8. sudo make install
  9. sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
  10. sudo ldconfig

Теперь код opencv должен хорошо воспроизводить файл mp4!

Методы, которые я пробовал, но не работали

  1. Попробуйте добавить WITH_UNICAP=ON WITH_V4L=ON, когда cmake opencv. Но не работает вообще.
  2. Попробуйте изменить кодек внутри кода opencv python. Но тщетно. cap = cv2.VideoCapture("MOV_0006.mp4") print cap.get(cv2.cv.CV_CAP_PROP_FOURCC) Я тестировал это в двух средах. В первом окружении opencv работает, а в другом opencv не воспроизводит видео. Но оба напечатали один и тот же кодек 828601953.0. Я попытался изменить свой кодек на cap.set(cv2.cv.CV_CAP_PROP_FOURCC, cv2.cv.CV_FOURCC(*'H264')), но не работал вообще.
  3. Попробуйте изменить библиотеки в opencv-2.4.8/3rdparty/lib/ на библиотеки в моей работоспособной среде. Но даже не удалось построить. I grep AVC: nal size и найти библиотеки содержат это сообщение об ошибке opencv-2.4.8/3rdparty/lib/libavcodec.a и т. Д. Вот почему я попытался их заменить. Но оказывается, что это плохая идея.
  4. sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip Попробуйте установить какую-то вещь и кое-какую эту вещь. Но это было совершенно бесполезно.

Проблемы, связанные с

Я искал в Интернете, и есть много подобных проблем, но у NONE из них было решение!

Ниже приведены проблемы я думаю, что и мои.

  • OpenCV / ffmpeg не воспроизводит мое видео mp4. - из opencv-users.nabble.com
  • VideoCapture не работает в OpenCV 2.4.2 - из answers.opencv .org В этом упоминается перестройка ffmpeg! Но аргументов мне было недостаточно.
  • Проблема чтения Mp4 - я установил OpenCV 2.4.1 и python 2.7 и сделал короткую программу, которая успешно читает файл avi . Однако не удается прочитать файл mp4 . - from answers.opencv.org
  • Не удается открыть видеофайлы .mp4 с использованием OpenCV 2.4.3, Python 2.7 в машине _Windows 7 - из Переполнение стека
  • OpenCV 2.4 VideoCapture не работает в Windows - из Переполнение стека ]
24
ответ дан AnnieFromTaiwan 26 August 2018 в 09:34
поделиться

для ubuntu 14.04, это как я его исправил.

установить зависимости, необходимые для OpenCV "

sudo apt-get удалить ffmpeg x264 libx264-dev

sudo apt-get update

sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-уродливый gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg

sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2. 0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer -plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

sudo add-apt-repository ppa: mc3man / gstffmpeg-keep

sudo apt-g et update

sudo apt-get install gstreamer0.10-ffmpeg

sudo apt-get install gstreamer0.10-plugins-bad

sudo apt-get update

Установить ffmpeg внутри anaconda3 "

conda install -c menpo ffmpeg = 2.7.0

Dowload Opencv 3.1.0"

wget https://github.com/Itseez/opencv/archive/3.1.0.zip unzip 3.1.0.zip

mkdir build

cd build

cmake -DBUILD_TIFF = ON -DBUILD_opencv_java = OFF -DWITH_CUDA = OFF -DWITH_FFMPEG = OFF -DENABLE_AVX = ON -DWITH_OPENGL = ON -DWITH_OPENCL = ON -DWITH_IPP = ON -DWITH_TBB = ON -DWITH_EIGEN = ON -DWITH_V4L = ON -DBUILD_TESTS = OFF -DBUILD_PERF_TESTS = OFF -DCMAKE_BUILD_TYPE = RELEASE -DCMAKE_INSTALL_PREFIX = $ (python3 -c "import sys; print (sys.prefix) ") -DPYTHON3_EXECUTABLE = $ (который python3.5) -DPYTHON3_INCLUDE_DIR = $ (python3 -c" из distutils.sysconfig импортировать get_python_inc; print (get_python_inc ()) ") -DPYTHON3_PACKAGES_PATH = $ (python3 -c «from distutils.sysconfig import get_python_lib; print (get_python_lib ())») ..

make

sudo make install

1
ответ дан Jimmy 26 August 2018 в 09:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: