2013-09-25 12 views
11

Niedawno zacząłem pracować z openCV i Pythonem i postanowiłem przeanalizować przykładowy kod, aby uzyskać informacje o tym, jak się sprawy mają.Nie znaleziono flag cv2.imread

jednak przykładowy kod znalazłem, ciągle rzuca ten błąd:

Traceback (most recent call last): 
File "test.py", line 9, in <module> 
img = cv2.imread(sys.argv[1],cv2.CV_LOAD_IMAGE_COLOR) ## Read image file 
AttributeError: 'module' object has no attribute 'CV_LOAD_IMAGE_COLOR' 

Kod używałem można znaleźć poniżej:

import cv2 
import sys 
import numpy as np 

if len(sys.argv) != 2: ## Check for error in usage syntax 
    print "Usage : python display_image.py <image_file>" 

else: 
    img = cv2.imread(sys.argv[1], cv2.CV_LOAD_IMAGE_COLOR) ## Read image file 

if img == None: ## Check for invalid input 
    print "Could not open or find the image" 
else: 
    cv2.namedWindow('Display Window') ## create window for display 
    cv2.imshow('Display Window', img) ## Show image in the window 
    print "size of image: ", img.shape ## print size of image 
    cv2.waitKey(0) ## Wait for keystroke 
    cv2.destroyAllWindows() ## Destroy all windows 

Czy to problem z mojej instalacji? Użyłem this website jako przewodnika do instalacji Pythona i OpenCV.

+1

który pracuje dla mnie. Po "importu cv2", czy mógłbyś dodać "print cv2 .__ file__" i dać nam znać, co mówi? Możliwe, że importowany moduł 'cv2' nie jest tym, który Twoim zdaniem jest. – DSM

+0

@DSM Po wpisaniu pliku cv2 .______ otrzymuje /usr/local/lib/python2.7/dist-packages/cv2.so – Elijah1210

+1

@ Elijah1210 To wygląda dobrze. Co mówi "cv2 .__ wersja__"? Spróbuj także użyć '1' jako flagi (' 1' jest wartością flagi 'CV_LOAD_IMAGE_COLOR'). – Igonato

Odpowiedz

19

OpenCV 3.0 dostarczonej z pewnymi zmianami przestrzeni nazw, a to może być jeden z nich. Odwołanie do funkcji podane w drugiej odpowiedzi dotyczy OpenCV 2.4.11 i niestety istnieją znaczące zmiany nazw, w tym wyliczone parametry.

Zgodnie z prawidłowym parametrem jest cv2.IMREAD_COLOR.

Zgodnie z OpenCV 3.0 Reference Manual for C, CV_LOAD_IMAGE_COLOR nadal tam jest.

I mój wniosek z powyższych zasobów i here, zmienili to w implementacji Pythona OpenCV 3.0.

Na razie najlepiej użyć wydaje się, co następuje:

img = cv2.imread("link_to_your_file/file.jpg", cv2.IMREAD_COLOR) 
0

Czy próbowałeś tego?

import cv2 
import sys 
import numpy as np 


cv2.CV_LOAD_IMAGE_COLOR = 1 # set flag to 1 to give colour image 
#cv2.CV_LOAD_IMAGE_COLOR = 0 # set flag to 0 to give a grayscale one 


img = cv2.imread("link_to_your_file/file.jpg", cv2.CV_LOAD_IMAGE_COLOR) 


cv2.namedWindow('Display Window') ## create window for display 
cv2.imshow('Display Window', img) ## Show image in the window 
print ("size of image: "), img.shape ## print size of image 
cv2.waitKey(0) ## Wait for keystroke 
cv2.destroyAllWindows() ## Destroy all windows 

zobaczyć imread mają również do obejrzenia this

Powiązane problemy