Resumi minha solução agora totalmente funcional, OpenCV-Python - Como instalar o pacote OpenCV-Python no Anaconda (Windows) . No entanto, eu copiei e colei os bits importantes deste post.
No momento em que escrevi, eu estava usando o Windows 8.1, uma máquina de 64 bits, o Anaconda / Python 2.x. (veja as notas abaixo - isso também funciona no Windows 10 e provavelmente no Python 3.x).
NOTA 1: conforme mencionado, mencionado por @great_raisin (obrigado) na seção de comentários, no entanto, esta solução parece também funcionar no Windows 10.
NOTA 2: isso provavelmente funcionará também para o Anaconda / Python 3.x. Se você estiver usando o Windows 10 e o Anaconda / Python 3.x, e esta solução funcionar, adicione um comentário abaixo. Obrigado! (Atualização: anotando no comentário "Trabalhando no Windows 10")
NOTA 3: dependendo de você estar usando o Python 2.x ou 3.x, basta ajustar a print
instrução de acordo nos trechos de código. ou seja, no Python 3.x seria print("hello")
, e no Python 2.x seria print "hello"
.
TL; DR
Para usar o OpenCV totalmente com o Anaconda (e o Spyder IDE), precisamos:
- Faça o download do pacote OpenCV no site oficial do OpenCV
- Copie e cole o
cv2.pyd
diretório de pacotes do site Anaconda.
- Defina as variáveis ambientais do usuário para que o Anaconda saiba onde encontrar o utilitário FFMPEG.
- Faça alguns testes para confirmar que o OpenCV e o FFMPEG estão funcionando agora.
(Leia as instruções detalhadas ...)
Pré-requisito
Instale o Anaconda
O Anaconda é essencialmente um IDE Python agradavelmente empacotado que é fornecido com toneladas de pacotes úteis, como NumPy, Pandas, IPython Notebook, etc. Parece ser recomendado em qualquer lugar da comunidade científica. Confira o Anaconda para instalá-lo.
Instale o OpenCV-Python no Anaconda
Nota cautelosa: Experimentei originalmente a instalação do pacote OpenCV do binstar.org, conforme sugerido. Esse método, no entanto, não inclui o codec FFMPEG - ou seja, você pode usar o OpenCV, mas não poderá processar vídeos.
A seguinte instrução funciona para mim é inspirada neste vídeo do OpenCV no YouTube . Até agora, consegui trabalhar tanto no meu desktop quanto no laptop, tanto em máquinas de 64 bits quanto no Windows 8.1.
Download do pacote OpenCV
Primeiramente, acesse o site oficial do OpenCV para baixar o pacote completo do OpenCV. Escolha uma versão que você gosta (2.x ou 3.x). Estou no Python 2.xe OpenCV 3.x - principalmente porque é assim que os Tutoriais do OpenCV-Python são configurados / baseados.
No meu caso, extraí o pacote (essencialmente uma pasta) diretamente para minha unidade C ( C:\opencv
).
Copie e cole o arquivo cv2.pyd
O diretório Anaconda Site-packages (por exemplo, C:\Users\Johnny\Anaconda\Lib\site-packages
no meu caso) contém os pacotes Python que você pode importar. Nosso objetivo é copiar e colar o cv2.pyd
arquivo neste diretório (para que possamos usar oimport cv2
códigos Python).
Para fazer isso, copie o cv2.pyd
arquivo ...
Nesse diretório do OpenCV (a parte inicial pode ser um pouco diferente na sua máquina). Para o Python 3.x, eu acho, basta alterar o 2.x
para de 3.x
acordo.
# 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
Para este diretório do Anaconda (a parte inicial pode ser um pouco diferente na sua máquina):
C:\Users\Johnny\Anaconda\Lib\site-packages
Após executar esta etapa, agora poderemos usar import cv2
no código Python. MAS, ainda precisamos trabalhar um pouco mais para que o FFMPEG (codec de vídeo) funcione (para nos permitir fazer coisas como processar vídeos).
Definir variáveis ambientais
Clique com o botão direito do mouse em "Meu Computador" (ou "Este PC" no Windows 8.1) → clique em Propriedades. → clique com o botão esquerdo do mouse na guia "Avançado" → clique com o botão esquerdo em "Variáveis de ambiente ...".
Adicione uma nova variável de usuário para apontar para o OpenCV (x86 para sistema de 32 bits ou x64 para sistema de 64 bits). Atualmente, estou em uma máquina de 64 bits.
| 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` |
Anexar %OPENCV_DIR%\bin
à variável do usuário PATH
.
Por exemplo, minha PATH
variável de usuário se parece com isso ...
Antes:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts
Depois de:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts;%OPENCV_DIR%\bin
É isso que terminamos! O FFMPEG está pronto para ser usado!
Teste para confirmar
Precisamos testar se agora podemos fazer isso no Anaconda (via Spyder IDE):
- Importar pacote OpenCV
- Use o utilitário FFMPEG (para ler / gravar / processar vídeos)
Teste 1: podemos importar o OpenCV?
Para confirmar que o Anaconda agora pode importar o pacote OpenCV-Python (a saber, cv2
), emita-os no console do IPython:
import cv2
print cv2.__version__
Se o pacote cv2
for importado OK, sem erros, e a cv2
versão for impressa, tudo ficará bem! Aqui está um instantâneo:
(fonte: mathalope.co.uk )
Teste 2: podemos usar o codec FFMPEG?
Coloque um input_video.mp4
arquivo de vídeo de amostra em um diretório. Queremos testar se podemos:
- leia este
.mp4
arquivo de vídeo e
- escreva um novo arquivo de vídeo (pode ser
.avi
ou .mp4
etc.)
Para fazer isso, precisamos ter um código Python de teste, chame-o test.py
. Coloque-o no mesmo diretório que o input_video.mp4
arquivo de amostra .
É assim que test.py
parece (listei os códigos de versão mais recentes e mais antigos aqui - informe-nos qual funciona / não funciona para você!).
(Versão mais recente...)
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()
(Ou a versão mais antiga ...)
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()
Este teste é MUITO IMPORTANTE. Se você deseja processar arquivos de vídeo, precisa garantir que o Anaconda / Spyder IDE possa usar o FFMPEG (codec de vídeo). Levei dias para fazê-lo funcionar. Mas espero que demore muito menos tempo! :)
Nota: Mais uma dica muito importante ao usar o IDE Anaconda Spyder. Verifique o diretório de trabalho atual (CWD) !!!
Conclusão
Para usar o OpenCV totalmente com o Anaconda (e o Spyder IDE), precisamos:
- Faça o download do pacote OpenCV no site oficial do OpenCV
- Copie e cole no
cv2.pyd
diretório de pacotes do site Anaconda.
- Defina as variáveis ambientais do usuário para que o Anaconda saiba onde encontrar o utilitário FFMPEG.
- Faça alguns testes para confirmar que o OpenCV e o FFMPEG estão funcionando agora.
Boa sorte!