2016-04-26 6 views
2

Kürzlich verwende ich opencv in Python.Gibt es einen möglichen Grund, Probleme mit JPG-Dateien in opencv zu haben, während Sie die Funktion lesen, um sie zu lesen?

Als ich bemerkte, als ich cv2 Modul in Python importieren will, muss ich cv2.so Dateipfad manuell auf die Systempfade hinzufügen mit:

sys.path.append('/path/to/cv.so') 

Howewer, wenn ich will jpg-Dateien in dem ipython Notebooks zu lesen, es scheitert:

import sys 
import numpy as np 
import os 
sys.path.append("/usr/local/lib1/python2.7/site-packages") 
import cv2 
im1=cv2.imread('pic1.png') 
print im1.shape 
#output: (512, 512, 3) 
im2=cv2.imread('pic1.jpg') 
print im2.shape 
#output: 
------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
<ipython-input-8-2d36ac00eca0> in <module>() 
----> 1 print im2.shape 
AttributeError: 'NoneType' object has no attribute 'shape' 

Basierend auf my previous question, wieder aufgebaut ich opencv mehrmals.

Ich lese somewhere, dass es das Ergebnis einiger Abhängigkeitsprobleme sein könnte. Aber ich habe die beiden Pakete (libjpeg und libjaspe) auf meinem System:

print cv2.getBuildInformation() 

Media I/O: 
ZLib:      /lib64/libz.so (ver 1.2.8) 
JPEG:      /lib64/libjpeg.so (ver 80) 
WEBP:      /lib64/libwebp.so (ver encoder: 0x0202) 
PNG:       /lib64/libpng.so (ver 1.6.17) 
TIFF:      /lib64/libtiff.so (ver 42 - 4.0.2) 
JPEG 2000:     /lib64/libjasper.so (ver 1.900.1) 

Eine Idee?

+0

Sind Sie sicher, dass 'pic1.jpg' in Ihrem Arbeitsverzeichnis vorhanden ist? Der Fehler besagt nur, dass der Dateipfad nicht korrekt ist, Ihre Abhängigkeiten scheinen in Ordnung zu sein. – ZdaR

+0

@ZdaR Ja, ich habe es mehrmals überprüft. – Ali

Antwort

1

Nach vielen Bemühungen, wurde mir klar, dass die Lösung hinzuzufügen ist:

PYTHONPATH="" 
export PYTHONPATH 
PATH=/usr/bin:/usr/local/bin 
export PATH 

am Ende /home/.bashrc-Datei (sie permanent machen), vor Python läuft oder ipython notebook von Terminal.

Hinweis: Verwenden Sie nur opencv-python.x86_64 (basierend auf Ihrem Rechner-Architektur) von yum (DNF) Repository (für Fedora-Anwender natürlich!) Und Python 2.7.

NICHT herunterladen opencv von seiner website. Das macht einige Abhängigkeitsprobleme, denke ich.