2015-03-25 8 views
6

मैं उबंटू 14.04 का उपयोग कर रहा हूं, और एनाकोंडा पायथन स्थापित है। मैं opencv स्थापित करने के लिए conda स्थापित opencv और conda स्थापित cv2 का उपयोग किया। हालांकि मैं वीडियो कैप्चर का बिल्कुल उपयोग करने में असमर्थ हूं (मुझे फ्रेम द्वारा वीडियो फ्रेम को संसाधित करने की आवश्यकता है)। मुझे बाकी परियोजना के लिए एनाकोंडा का उपयोग करने की आवश्यकता है।वीडियोकैप्चर एनाकोंडा में काम नहीं करता

import cv2 
import os 
capture = cv2.VideoCapture('/home/Downloads/data/zfH2XdRcH14.mp4') 
while not capture.isOpened(): 
    print 'noob' 
while True: 
    ret, frame = capture.read() 
    cv2.imwrite('~/Downloads/data/pic.png',frame) 
    cv2.imshow('Video', frame) 
    count += 1 
    print count 

कोड मुद्रण noob रखता है:

यहाँ मेरी कोड है। मैंने कई बार स्थान की जांच की है और यह सही है। मुझे कोई संकेत नहीं है कि समस्या क्या है और मैं इस पर घंटों तक फंस गया हूं।

+0

मुझे विश्वास नहीं है कि पाइथन कैसे काम करता है लेकिन मुझे लगता है कि आपको अपनी पथ स्ट्रिंग में "//" जोड़ना चाहिए। –

+0

यह काम नहीं किया। – user3892614

+0

Windows PATH पर्यावरण चर में C: \ OpenCV \ 3rdparty \ ffmpeg \ जोड़ें या उस निर्देशिका से opencv_ffmpeg.dll को c: \ Python27 \ या PATH में मौजूद निर्देशिका में कॉपी करें। वैकल्पिक रूप से, http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv से ओपनसीवी बाइनरी का उपयोग करें। –

उत्तर

3

मैं एक ही समस्या में भाग गया। VideoCapture ओपनसीवी के कोंडा के डिफ़ॉल्ट संस्करण के साथ काम नहीं करता है क्योंकि ffmpeg सक्षम नहीं है। VideoCapture को काम करने के लिए, आपको Cmake GUI में ffmpeg को सक्षम करना होगा और संकलित करना होगा। तुम भी OpenCV के अपने संस्करण है जो सक्षम ffmpeg है स्थापित कर सकते हैं:

conda install -c https://conda.binstar.org/jaimeivancervantes opencv

+0

मैंने उपरोक्त सूचीबद्ध जैमविंवार्वेन्ट संस्करण का प्रयास किया। मैंने पाया कि यह PyCharm IDE में अच्छा काम नहीं करता है। जब भी मैं cv2.imshow() का उपयोग करने की कोशिश करता हूं तो यह मुझे एक त्रुटि देगा कि जीटीके + गुई पुस्तकालयों के साथ इसे फिर से सम्मिलित करने की आवश्यकता है। मैं वर्तमान में उबंटू 14.04, एनाकोंडा 2.7, पायचर्म 5.0 का उपयोग कर रहा हूं। ओपनसीवी का https://conda.binstar.org/menpo संस्करण छवियों के लिए PyCharm में काम करता है, लेकिन यह भी ffmpeg के साथ काम नहीं करता है ... अब मैं एक संस्करण की तलाश कर रहा हूं जिसे दोनों ffmpeg के साथ संकलित किया गया है और इसमें काम करता है PyCharm आईडीई। –

+0

@ फिलग्लौ आप इसे स्वयं संकलित करने का प्रयास कर सकते हैं, वास्तव में यह मुश्किल नहीं है। आपको केवल सेमेक खोलना है और यह सुनिश्चित करना है कि 'ffmpeg' सक्षम है। यह मुझे एक घंटे से भी कम समय ले गया। –

+0

यह मेरे साथ वीडियो के साथ काम नहीं कर रहा है – Mostafa

0

मेरा मानना ​​है कि मैं एक ही समस्या थी। मैंने फ़ोल्डर को PATH पर जोड़कर इसे ठीक किया। उदाहरण के लिए,

export PATH="/home/iori/anaconda3/bin:$PATH" 
export PATH="/home/iori/anaconda3/lib:$PATH" 

मेरे .bachrc अब यह 2 लाइन है। पहली पंक्ति एनाकोंडा द्वारा जोड़ा गया है और source activate कमांड इस bin फ़ोल्डर को स्विच करता है लेकिन मुझे लगता है कि यह lib फ़ोल्डर का ख्याल नहीं रखता है जो मुझे परेशान पाया गया क्योंकि इसका मतलब है कि ओपनसीवी lib_opencv_*.so फाइलें वहां और निश्चित रूप से cv2.VideoCapture विफल नहीं हो सकता है।

उपरोक्त उदाहरण डिफ़ॉल्ट conda env के लिए समस्या को ठीक करेगा। अन्य envs के लिए, मुझे अभी भी फ़ोल्डर को मैन्युअल रूप से PATH में जोड़ने की आवश्यकता है। तो, मैं जानना चाहता हूं कि source activate कमांड को स्वचालित रूप से मेरे लिए ऐसा करने के लिए कैसे अनुकूलित करें ...

+1

आप शायद केवल आंशिक रूप से सही हैं। 'VideoCapture' के साथ काम करने के लिए एक और निर्भरता की आवश्यकता होती है जो डिफ़ॉल्ट रूप से नहीं बनाई जाती है, जो' ffmpeg' है, एक लाइब्रेरी जो वीडियो पढ़ने और लिखने में सक्षम बनाती है।यहां तक ​​कि विंडोज़ में, किसी को मैन्युअल रूप से 'opencv_ffmpeg.dll' की प्रतिलिपि बनाना चाहिए जो कि पाइथन डीआईआर में स्रोत फ़ाइलों के साथ या $ PATH में शामिल एक और डीआईआर में प्रदान की जाती है। लिनक्स के लिए समकक्ष 'libopencv_ffmpeg.so' की आपूर्ति नहीं की जाती है और किसी को FFMpeg सक्षम के साथ खरोंच से पूरे ओपनसीवी को बनाना होगा। यह पायथन के लिए एनाकोंडा ओपनसीवी पैकेज के लिए नहीं किया गया था। इसलिए 'VideoCapture' – SomethingSomething

+0

सच में विफल रहता है। लेकिन आप इसके आसपास बिन्स्टर पैकेज (ओपनसीवी और ओपनसीवी 3 के लिए मेनपो) द्वारा जा सकते हैं। http://stackoverflow.com/a/27650299/566035 – otterb

+0

@ कुछ ऐसा कुछ, आपकी व्याख्या पूरी तरह से समझ में आता है। एनाकोंडा में समस्या को ठीक करने के लिए लिंक पर कोई सुझाव? मैंने कुछ लिंक की कोशिश की लेकिन वे दुर्भाग्य से काम नहीं करते हैं। – Hong

0

मुझे एक ही समस्या थी और इंटरनेट पर देखने के बाद मुझे एक समाधान मिला जो काम करता था। व्यवस्थापक का उपयोग के साथ कमांड लाइन में:

conda install conda-build 
conda install cmake 
conda config --add channels menpo 

संपादित करें निम्न फ़ाइल:

C: \ Program Files \ Anaconda2 \ pkgs \ cmake-3.6.3-vc9_0 \ जानकारी \ नुस्खा \ buil। श

addign निम्नलिखित झंडा:

-DWITH_FFMPEG = 1

उदाहरण के लिए, मेरे मामले में:

#!/bin/bash 

LDFLAGS=$LDFLAGS" -Wl,-rpath,$PREFIX/lib" \ 
    ./bootstrap \ 
      --verbose \ 
      --prefix="${PREFIX}" \ 
      --system-libs \ 
      --no-qt-gui \ 
      --no-system-libarchive \ 
      --no-system-jsoncpp \ 
      -- \ 
      -DWITH_FFMPEG = 1 \ 
      -DCMAKE_BUILD_TYPE:STRING=Release \ 
      -DCMAKE_FIND_ROOT_PATH="${PREFIX}" 

make 
make install 
अंत में

:

conda build /conda 

यह मेरे लिए काम किया।

दूसरी तरफ मैंने पहले opencv_ffmpegxyz की प्रतिलिपि बनाई थी।से फ़ाइल \ opencv \ build \ bin से \ प्रोग्राम फ़ाइलें \ Anaconda2; मेरे मामले में opencv_ffmpe320_64.dll (64 बिट संस्करण) और मैंने एक नया पर्यावरण चर जोड़ा जिसे ffmpeg कहा जाता है जहां opencv_ffmpeg.dll फ़ाइलें रखी जाती हैं।

सम्मान।

+0

मुझे अपने opencv पैकेज में opencv_ffmpeg * .dll फ़ाइल क्यों नहीं मिल रही है। मैं एनाकोंडा का उपयोग कर रहा हूँ। – Hong

+0

मैंने पहले opencv डाउनलोड किया था और इसे \ opencv \ फ़ोल्डर में इंस्टॉल/स्थापित किया था। \ Opencv \ build \ bin फ़ोल्डर में मेरे पास दोनों फाइलें थीं: opencv_ffmpeg320 * .dll – omotto

+1

दुर्भाग्यवश, यह मेरे उबंटू 16 – Hong

0

उपयोग conda-व्यंजनों को देखें।

git clone https://github.com/conda/conda-recipes.git

cd conda-recipes

conda build x264

conda build ffmpeg

भी here देखें।

1

ffmpeg डिफ़ॉल्ट कोंडा चैनल में मौजूद नहीं है।

आपको कोंडा-फोर्ज चैनल से ओपनसीवी डाउनलोड करने की आवश्यकता है जिसमें वीडियो प्रोसेसिंग के लिए नवीनतम और अतिरिक्त पैकेज और निर्भरताएं शामिल हैं। निम्न का प्रयास करें:

conda install -c conda-forge ffmpeg 
conda install -c conda-forge opencv 

यहां -सी चैनल को 'कोंडा-फोर्ज' के रूप में उपयोग करने के लिए कहता है।

संबंधित मुद्दे