Soru OpenCV 2.4 VideoCapture, Windows üzerinde çalışmıyor


Aşağıdaki ile yüklü OpenCV 2.4 Python bağlamaları kullanıyorum Talimatlar.

Benim sorunum benzer Buama Windows makine çözümüne ihtiyacım var.

Sorun: kullanmaya çalıştığımda

cap = cv2.VideoCapture(0)
print cap.grab()

iyi çalışıyor, ama aşağıdaki kod

cap = cv2.VideoCapture(filename)
print cap.grab()

her zaman yanlış döndür.

Dosyanın yolu doğru, mutlak ve boşluk içermiyor.

Benzer sonuçlarla Windows XP ve Windows 7 ile iki makinede denedim. Linux'ta (Ubuntu) benim için iyi çalışıyor.


44
2017-07-28 07:55


Menşei


Dosya adının değerini kaydeder misiniz? Kullanmayı deneyin filename = os.path.join( filename ). daha fazla bilgi burada: stackoverflow.com/questions/1633643/... - Larry Battle
Öyleydi "C:\\m.avi"ama ben denedim "C:\m.avi" ve "C:/m.avi". Hala çalışmıyor (birlikte ve yok os.path.join). - Bihaqo
Opencv_ffmpeg.dll dosyasının, python tarafından kullanılan diğer OpenCV dll'lerinin aynı dizinde olup olmadığını kontrol edin. Ayrıca, başka bir avi dosyasını deneyin. Bazen OpenCV, diğer programlar tarafından doğru şekilde oynatılan dosyaları çözemez (örn. Windows Media Player) - Piotr
C: \\ m.avi'yi de deneyin. - Abid Rahman K
Bilgisayarımda bir adla "opencv" ile herhangi bir dosya bulamadım (opencv klasörü ve tabii içeriği hariç). Bu yüzden kopyalamaya çalıştım opencv_ffmpeg.dll için C:\Python27\Lib\site-packages` (like cv2.pyd`) ama işe yaramıyor. - Bihaqo


Cevaplar:


Eklemek C:\OpenCV\3rdparty\ffmpeg\ Windows PATH ortam değişkenine veya kopyasına opencv_ffmpeg.dll bu dizinden C:\Python27\ veya PATH içindeki bir dizine. Alternatif olarak, OpenCV ikili dosyalarını kullanın. http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv.

Yeniden adlandırma opencv_ffmpeg.dll dosya da gerekli olabilir.

OpenCV sürümü X.Y.Z için
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ.dll

64-bit OpenCV sürümü X.Y.Z için
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ_64.dll


67
2017-07-28 19:28



Teşekkür ederim! Çalışır, ama sadece kopyala herşey dosyaları C:\OpenCV\3rdparty\ffmpeg`, not just opencv_ffmpeg.dll`. - Bihaqo
Aşağıdaki tüm cevaplara bakın. Görünüşe göre birinin yeniden adlandırılması gerekiyor opencv_ffmpeg.dll dosyaya opencv_ffmpegXYZ.dll OpenCV sürümü X.YZ için ve opencv_ffmpegXYZ_64.dll biri 64 bit sürümünü kullanıyorsa. - Eran Marom
OpenCV 2.4.10 ile, Windows yoluna C: \ opencv \ sources \ 3.party \ ffmpeg ekleme ve opencv_ffmpeg2410.dll ve opencv_ffmpeg2410_64.dll için opencv_ffmpeg_64.dll yeniden adlandırmak ve opencv_ffmpeg2410_64.dll çalışır! Teşekkürler :) Şimdi MJPEG video dosyalarını açabiliyorum - Vincent
Teşekkürler - bu işe yarıyor! Bu "o sessizce başarısız" bu DLL kopyalanmadan rahatsız ediyor. Bunun yerine bir ince yanlış, güzel büyük bir istisna yerine "hata, Tehlike Will Robinson, dll eksik <...>" yerine ve sonra ölmek istiyorum. - Danny Staple
İkinci seçeneği öneririm (OpenCV ikili dosyalarını kullanarak lfd.uci.edu/~gohlke/pythonlibs/#opencv). Temiz ve oldukça basit. Yardım için teşekkürler. - Victor Oliveira Antonino


Kopyalama opencv_ffmpeg.dll benim için yeterli değildi - opencv_ffmpeg246.dll, OpenCV 2.4.6'yı Python 2.7.5 ile kullandığımda


27
2017-07-16 09:25



Aynı şekilde ve ben de benimkini opencv_ffmpeg310.dll - Jonathan
2.4.10 ile aynı! Teşekkürler - Flayn


Önce kopyalamayı denedim, sonra pencerenin yolunu değiştirdim .. openCV sürüm 2.4.5 ve python 2.7 için opencv_ffmpeg245.dll adını değiştirene kadar çalışmadı. (not ** 245.dll, opencv sürüm 2.4.5'ten alınmıştır)


8
2018-03-21 13:02





64 bit sürümleri için, opencv_ffmpeg249_64.dll opencv_ffmpeg249_64.dll değiştirin opencv sürümü 249 değiştirin.


7
2018-06-13 18:44





OpenCV 3.0.0 64 bit ortamında opencv_ffmpeg_64.dll dosyasını kopyalayın ve opencv_ffmpeg300_64.dll dosyasına yeniden adlandırın.

Ayrıca, Java altında OpenCV ile çalışmak için bu yolu PATH ortam değişkeninize ekleyin.


6
2017-10-05 21:34



Pyhon için de çalışır - Gulzar


Güncelleme: Bu hala OpenCV 2.4.9 için geçerlidir, tüm dosyaları kopyalayın ve dll opencv_ffmpeg249.dll dosyasını yeniden adlandırın


5
2018-06-09 12:42



Ben OpenCV 3.0.0-tp2 Windows, umutsuz bir kodlayıcı için herhangi bir ipucu için işe alamıyorum? :) - andli


Python 2.7 ve opencv 2.4.10 ile aynı sorunu yaşadım. Opencv_ffmpeg2410_64.dll dosyasını C: \ Applications \ opencv \ build \ x64 \ vc10 \ bin dizininden python yoluna kopyaladım (benim C: \ Users \ mohammad \ Anaconda'da) ve çözüldü!


4
2018-03-03 04:22





İlk başta windows8.1 32bit ve opencv 2.4.10 kullanıyorum.
Dosya kullanmak için aynı problemle karşılaştım test1.wmv hangi Logicool C270 tarafından yapıldı.
Başka bir dosyayı kullanmayı denedim test2.mov Dijital Fotoğraf Makinesi (Canon SX160) tarafından yapıldı. Yani oynayabilirim test2.mov yolu eklemek için C:\opencv\build\x86\vc12\bin.
Ama oynayamıyorum test1.wmv.
Bu yüzden test1.adı formatını test1a.mp4'e VLC kullanarak değiştirmeye çalışıyorum. Video for youtube HD).
Sonra oynayabilirim test1a.mp4.
denedim test1.wmv Ubuntu 14.04 LTS'de, o zaman kolay oynayabilirim.
Windows8.1 ve Ubuntu 14.04 LTS arasında varsayılan ffmpeg ikili üzerinde bazı farklar oluşabilir.


3
2017-11-23 10:11





Anaconda ortamı için kopya opencv_ffmpeg249_64.dll C: \ Python27 \ dan Opencv sürümüne göre versiyonunu yeniden adlandırın ve onu geçmek C: \ Users \ KHALID \ Anaconda2 \ Kitaplık \ bin


0
2017-07-08 11:30