Parece que SimpleCV não está sendo executado com Python3. Como o Python2 está sendo descontinuado, espero que isso seja corrigido em breve.
Isso é o que eu obtenho com sudo pip3 install SimpleCV:
Running setup.py install for SimpleCV
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/DrawingLayer.py", line 40
def __init__(self, (width, height)):
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/base.py", line 139
print 'unit test'
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Color.py", line 213
print a
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Features/BOFFeatureExtractor.py", line 68
print "Opening file: " + infile
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Features/Blob.py", line 876
print self.mHullMask
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Features/BlobMaker.py", line 97
except RuntimeError,e:
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/EXIF.py", line 1182
y = 0L
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Font.py", line 68
print "Please pass a string"
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/MachineLearning/TreeClassifier.py", line 190
print "Opening file: " + infile
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/MachineLearning/SVMClassifier.py", line 181
print "Opening file: " + infile
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/MachineLearning/NaiveBayesClassifier.py", line 120
print "Opening file: " + infile
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/MachineLearning/KNNClassifier.py", line 153
print "Opening file: " + infile
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Stream.py", line 62
except socket.error, e:
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/ImageClass.py", line 132
print "You need to install Beatutiul Soup to use this function"
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Camera.py", line 363
print "coord: (" + str(d.mouseX) + "," + str(d.mouseY) + "), color: " + str(i.getPixel(d.mouseX,d.mouseY))
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/test_display.py", line 80
print val
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/YCrCbtests.py", line 6
print "Converted to YCrCb\n"
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/vcamera_tests.py", line 19
print str(i) + ": " + str(props[i]) + "\n"
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/test_cameras.py", line 17
print str(i) + ": " + str(props[i]) + "\n"
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/tests.py", line 74
print val
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/test_optional.py", line 91
print foundtext
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/test_stereovision.py", line 54
print val
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Shell/Shell.py", line 71
print "args", arg
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Shell/Example.py", line 28
print "Available Examples:"
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Shell/Tutorial.py", line 35
print lb
^
SyntaxError: Missing parentheses in call to 'print'
Se os parênteses ausentes forem a única coisa necessária para migrar, isso será uma solução fácil. Tentarei consultar um especialista em migração para ver que outras preocupações podem haver.
Para corrigi-lo em algumas coisas: Python2, ou mais precisamente, Python27 não está sendo eliminado - existem algumas tentativas decentes de fazer isso, mas aqueles que sabem o que diabos estão fazendo, não desista a pressão. Python3X em comparação com Python27 é muito mais confuso, estranho e frustrante, não algo que eu recomendaria para iniciantes em programação. Vá em frente e experimente o Python27 e acredite em mim quando digo que você vai adorar (a menos que você tenha se acostumado com muitas funções específicas do Python3X, e deixe-me dizer, não há muitas delas)
Edit: Esta é uma declaração de alguns anos, vou mantê-la aqui, mas não é mais válida.
O suporte para Python 2.7 termina em 2020, então acho que é uma preocupação válida. Acho que importar futuros é uma maneira simples de refatorar os erros da instrução de impressão. Alguém sabe o que mais precisa ser alterado para permitir a compatibilidade com versões futuras?
@mUtterberg Há também a atualização de OpenCV2 para OpenCV3 pela qual a estrutura SimpleCV deve ser submetida.
Sou novo em Python e espero começar com alguma codificação de câmera / visão no meu Raspberry Pi. Já instalei o OpenCV 3.4.1 (eventualmente), mas acho que simplecv seria um ponto de partida melhor.
Mas o site simplecv parece bastante desatualizado e, como visto acima, a instalação não funcionará corretamente com o Python 3.
Tentei instalar o simplecv, mas quando tento executar o simplecv na linha de comando, recebo os mesmos erros de impressão acima. Tentei consertar isso adicionando parênteses ao código Python, mas comecei a receber vários erros de 'importação' quando tento executar o simplecv.
Não sei como seria difícil atualizar o simplecv para funcionar no Python3, mas certamente apreciaria tentar se / quando isso acontecer.
Abaixo estão os erros que estou recebendo agora ...
pi @ raspberrypi : ~ $ simplecv
RuntimeError: módulo compilado contra a versão da API 0xc, mas esta versão do numpy é 0xa
Traceback (última chamada mais recente):
Arquivo "/ usr / local / bin / simplecv", linha 7, em
de SimpleCV.Shell import main
Arquivo "/usr/local/lib/python3.5/dist-packages/SimpleCV/__init__.py", linha 3, em
de SimpleCV.base import *
Arquivo "/usr/local/lib/python3.5/dist-packages/SimpleCV/base.py", linha 26, em
importar scipy.ndimage como ndimage
Arquivo "/usr/local/lib/python3.5/dist-packages/scipy/ndimage/__init__.py", linha 161, em
from .filters import *
Arquivo "/usr/local/lib/python3.5/dist-packages/scipy/ndimage/filters.py", linha 37, em
a partir de . import _nd_image
ImportError: numpy.core.multiarray falhou ao importar
@chrisgavinlondon , a Sight Machine parece ter abandonado esta biblioteca, mas há várias ramificações dela. Acabei fazendo um fork dele e mudei a ponto de poder instalar e executá-lo no meu Raspberry Pi, cujo padrão é Python 2.7. Os bugs da perspectiva 2.7 foram SUPER fáceis de consertar uma vez que eu estava executando a versão do meu fork. Estou trabalhando para torná-lo uma versão moderna do Python, mas tenho certeza de que outros estão trabalhando em seus próprios garfos há muito mais tempo do que eu! Neste ponto, talvez seja melhor escolher o garfo sólido de alguém e levar nossa festa SimpleCV lá.
Mas quem sabe?? Talvez @andrewbaldock @bremac @demaagdk @doclrogers @idfarmer @mechiris @oostendo @struckmannk ou @xamox veja um desses tópicos e decida pedir ajuda às pessoas! Manter uma biblioteca, especialmente uma tão substancial, dá muito trabalho.
Olá @mUtterberg ... meu fork tentou mover SimpleCV de Python2 para Python3. Eu consertei a maioria dos problemas. O principal bloqueador atualmente é o tratamento de dados internos. SimpleCV usa um iplimage de 3 canais (RGB) internamente como padrão, mas o iplimage está obsoleto. É recomendado usar numpy.ndarray em vez disso, mas eu não encontrei tempo para portar nenhum código. Estou disposto a ajudar se você (ou qualquer outra pessoa) tiver dúvidas.
Olá @mUtterberg ... meu fork tentou mover SimpleCV de Python2 para Python3. Eu consertei a maioria dos problemas. O principal bloqueador atualmente é o tratamento de dados internos. SimpleCV usa um iplimage de 3 canais (RGB) internamente como padrão, mas o iplimage está obsoleto. É recomendado usar numpy.ndarray em vez disso, mas eu não encontrei tempo para portar nenhum código. Estou disposto a ajudar se você (ou qualquer outra pessoa) tiver dúvidas.
Olá @mUtterberg , só quero usar o SimpleCV para encontrar um círculo, você acha que consigo fazer isso com seu fork? Ou ainda não está pronto? Obrigado
+1
Python 2 está oficialmente encerrado. Existe algum plano para tornar o simplecv python 3 compatível? É um pacote legal e simples de entender. Obrigado.
@jairoareyes Acabei usando o próprio OpenCV, já que os lançamentos recentes da API python são muito mais intuitivos e mais ou menos negam a necessidade de uma API de terceiros.
Comentários muito úteis
Olá @mUtterberg ... meu fork tentou mover SimpleCV de Python2 para Python3. Eu consertei a maioria dos problemas. O principal bloqueador atualmente é o tratamento de dados internos. SimpleCV usa um iplimage de 3 canais (RGB) internamente como padrão, mas o iplimage está obsoleto. É recomendado usar numpy.ndarray em vez disso, mas eu não encontrei tempo para portar nenhum código. Estou disposto a ajudar se você (ou qualquer outra pessoa) tiver dúvidas.