Saya telah merangkum solusi saya yang sekarang berfungsi penuh, OpenCV-Python - Cara menginstal paket OpenCV-Python ke Anaconda (Windows) . Namun demikian saya telah menyalin dan menempelkan bit-bit penting ke posting ini.
Pada saat penulisan saya menggunakan Windows 8.1, mesin 64-bit, Anaconda / Python 2.x. (lihat catatan di bawah - ini juga berfungsi untuk Windows 10, dan kemungkinan Python 3.x juga).
CATATAN 1: sebagaimana disebutkan oleh @great_raisin (terima kasih) di bagian komentar, solusi ini tampaknya juga berfungsi untuk Windows 10.
CATATAN 2: ini mungkin akan bekerja untuk Anaconda / Python 3.x juga. Jika Anda menggunakan Windows 10 dan Anaconda / Python 3.x, dan solusi ini berfungsi, silakan tambahkan komentar di bawah ini. Terima kasih! (Pembaruan: mencatat dari komentar "Bekerja pada Windows 10")
CATATAN 3: tergantung pada apakah Anda menggunakan Python 2.x atau 3.x, sesuaikan saja print
pernyataan dalam potongan kode. yaitu dalam Python 3.x itu akan menjadi print("hello")
, dan dalam Python 2.x akan menjadi print "hello"
.
TL; DR
Untuk menggunakan OpenCV sepenuhnya dengan Anaconda (dan Spyder IDE), kita perlu:
- Unduh paket OpenCV dari situs resmi OpenCV
- Salin dan tempel
cv2.pyd
ke direktori paket situs Anaconda.
- Atur variabel lingkungan pengguna sehingga Anaconda tahu di mana menemukan utilitas FFMPEG.
- Lakukan beberapa pengujian untuk mengonfirmasi OpenCV dan FFMPEG sekarang berfungsi.
(Baca terus untuk petunjuk detail ...)
Prasyarat
Instal Anaconda
Anaconda pada dasarnya adalah IDE Python yang dikemas dengan baik yang dikirimkan dengan banyak paket berguna, seperti NumPy, Pandas, IPython Notebook, dll. Tampaknya direkomendasikan di mana-mana di komunitas ilmiah. Lihat Anaconda untuk menginstalnya.
Instal OpenCV-Python ke Anaconda
Perhatian Catatan: Saya awalnya mencoba menginstal paket OpenCV binstar.org, seperti yang disarankan. Namun metode itu tidak termasuk codec FFMPEG - yaitu Anda mungkin dapat menggunakan OpenCV, tetapi Anda tidak akan dapat memproses video.
Instruksi berikut bekerja untuk saya terinspirasi oleh video YouTube OpenCV ini . Sejauh ini saya sudah membuatnya bekerja pada desktop dan laptop saya, baik mesin 64-bit dan Windows 8.1.
Unduh Paket OpenCV
Pertama, buka situs OpenCV resmi untuk mengunduh paket OpenCV lengkap. Pilih versi yang Anda suka (2.x atau 3.x). Saya menggunakan Python 2.x dan OpenCV 3.x - terutama karena ini adalah bagaimana Tutorial OpenCV-Python diatur / didasarkan pada.
Dalam kasus saya, saya telah mengekstrak paket (pada dasarnya folder) langsung ke drive C saya ( C:\opencv
).
Salin dan Tempel file cv2.pyd
Direktori paket situs Anaconda (misalnya C:\Users\Johnny\Anaconda\Lib\site-packages
dalam kasus saya) berisi paket Python yang dapat Anda impor. Tujuan kami adalah menyalin dan menempelkan cv2.pyd
file ke direktori ini (sehingga kami dapat menggunakannya import cv2
dalam kode Python kami.).
Untuk melakukan ini, salin cv2.pyd
file ...
Dari direktori OpenCV ini (bagian awal mungkin sedikit berbeda pada mesin Anda). Untuk Python 3.x, saya kira, hanya mengubah 2.x
ke 3.x
sesuai.
# Python 2.7 and 32-bit machine:
C:\opencv\build\python\2.7\x84
# Python 2.7 and 64-bit machine:
C:\opencv\build\python\2.7\x64
Ke direktori Anaconda ini (bagian awal mungkin sedikit berbeda pada mesin Anda):
C:\Users\Johnny\Anaconda\Lib\site-packages
Setelah melakukan langkah ini, kita sekarang dapat menggunakan import cv2
kode Python. TETAPI, kita masih perlu melakukan sedikit lebih banyak pekerjaan agar FFMPEG (codec video) berfungsi (untuk memungkinkan kita melakukan hal-hal seperti memproses video).
Setel Variabel Lingkungan
Klik kanan pada "My Computer" (atau "PC ini" pada Windows 8.1) → klik kiri Properties → klik kiri tab "Advanced" → klik kiri tombol "Variabel Lingkungan ..." tombol.
Tambahkan Variabel Pengguna baru untuk menunjuk ke OpenCV (baik x86 untuk sistem 32-bit atau x64 untuk sistem 64-bit). Saya saat ini menggunakan mesin 64-bit.
| 32-bit or 64 bit machine? | Variable | Value |
|---------------------------|--------------|--------------------------------------|
| 32-bit | `OPENCV_DIR` | `C:\opencv\build\x86\vc12` |
| 64-bit | `OPENCV_DIR` | `C:\opencv\build\x64\vc12` |
Tambahkan %OPENCV_DIR%\bin
ke Variabel Pengguna PATH
.
Misalnya, PATH
variabel pengguna saya terlihat seperti ini ...
Sebelum:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts
Setelah:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts;%OPENCV_DIR%\bin
Ini dia kita selesai! FFMPEG siap digunakan!
Tes untuk mengonfirmasi
Kita perlu menguji apakah kita sekarang dapat melakukan ini di Anaconda (melalui Spyder IDE):
- Impor paket OpenCV
- Gunakan utilitas FFMPEG (untuk membaca / menulis / memproses video)
Tes 1: Bisakah kita mengimpor OpenCV?
Untuk mengonfirmasi bahwa Anaconda sekarang dapat mengimpor paket OpenCV-Python (yaitu, cv2
), terbitkan ini di konsol IPython:
import cv2
print cv2.__version__
Jika paket cv2
diimpor OK tanpa kesalahan, dan cv2
versi dicetak, maka kita semua baik-baik saja! Ini snapshot:
(sumber: mathalope.co.uk )
Tes 2: Bisakah kita Gunakan codec FFMPEG?
Tempatkan input_video.mp4
file video sampel dalam direktori. Kami ingin menguji apakah kami dapat:
- baca
.mp4
file video ini , dan
- menulis file video baru (bisa
.avi
atau .mp4
dll)
Untuk melakukan ini kita perlu memiliki kode uji Python, sebut saja test.py
. Tempatkan di direktori yang sama dengan input_video.mp4
file sampel .
Ini adalah apa yang test.py
tampak seperti (Saya telah mencantumkan kode versi yang lebih baru dan lebih lama di sini - beri tahu kami mana yang berfungsi / tidak bekerja untuk Anda!).
(Versi terbaru...)
import cv2
cap = cv2.VideoCapture("input_video.mp4")
print cap.isOpened() # True = read video successfully. False - fail to read video.
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter("output_video.avi", fourcc, 20.0, (640, 360))
print out.isOpened() # True = write out video successfully. False - fail to write out video.
cap.release()
out.release()
(Atau versi yang lebih lama ...)
import cv2
cv2.VideoCapture("input_video.mp4")
print cv2.isOpened() # True = read video successfully. False - fail to read video.
fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter("output_video.avi",fourcc, 20.0, (640,360))
print out.isOpened() # True = write out video successfully. False - fail to write out video.
cap.release()
out.release()
Tes ini SANGAT PENTING. Jika Anda ingin memproses file video, Anda harus memastikan bahwa Anaconda / Spyder IDE dapat menggunakan FFMPEG (codec video). Saya butuh waktu berhari-hari untuk membuatnya bekerja. Tapi saya harap ini akan memakan waktu lebih sedikit! :)
Catatan: Satu lagi tip yang sangat penting ketika menggunakan IDE Anaconda Spyder. Pastikan Anda memeriksa direktori kerja saat ini (CWD) !!!
Kesimpulan
Untuk menggunakan OpenCV sepenuhnya dengan Anaconda (dan Spyder IDE), kita perlu:
- Unduh paket OpenCV dari situs resmi OpenCV
- Salin dan tempel
cv2.pyd
ke direktori paket situs Anaconda.
- Atur variabel lingkungan pengguna sehingga Anaconda tahu di mana menemukan utilitas FFMPEG.
- Lakukan beberapa pengujian untuk mengonfirmasi OpenCV dan FFMPEG sekarang berfungsi.
Semoga berhasil!