2013-09-25 22 views
11

Gần đây tôi đã bắt đầu làm việc với openCV và python và quyết định phân tích một số mã mẫu để có ý tưởng về cách mọi thứ được thực hiện.cờ cv2.imread không tìm thấy

Tuy nhiên, mã mẫu tôi thấy, tiếp tục ném lỗi này:

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' 

Code tôi đã sử dụng có thể tìm thấy dưới đây:

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 

Đây có phải là một vấn đề với cài đặt của tôi? Tôi đã sử dụng this website làm hướng dẫn cài đặt python và openCV.

+1

đó làm việc cho tôi. Sau khi 'import cv2', bạn có thể thêm' print cv2 .__ file__' và cho chúng tôi biết nó nói gì không? Có thể mô-đun 'cv2' bạn đang nhập không phải là mô-đun bạn nghĩ. – DSM

+0

@DSM Khi tôi nhập in cv2 .__ file__ Tôi nhận được /usr/local/lib/python2.7/dist-packages/cv2.so – Elijah1210

+1

@ Elijah1210 Điều đó có vẻ ổn. 'Cv2 .__ version__' nói gì? Ngoài ra hãy thử điều này bằng cách sử dụng '1' làm cờ (' 1' là giá trị của cờ 'CV_LOAD_IMAGE_COLOR'). – Igonato

Trả lời

19

OpenCV 3.0 đi kèm với một số thay đổi namespace, và điều này có thể là một trong số họ. Tham chiếu hàm được đưa ra trong câu trả lời khác là cho OpenCV 2.4.11, và tiếc là có các thay đổi quan trọng, bao gồm các tham số liệt kê.

Theo số OpenCV 3.0 Example here, thông số chính xác là cv2.IMREAD_COLOR.

Theo số OpenCV 3.0 Reference Manual for C, CV_LOAD_IMAGE_COLOR vẫn ở đó.

Và kết luận của tôi từ các tài nguyên ở trên và here, họ đã thay đổi nó trong triển khai python OpenCV 3.0.

Còn bây giờ, là tốt nhất để sử dụng có vẻ như sau:

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

bạn đã thử điều này chưa?

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 

thấy imread cũng có một cái nhìn tại this

Các vấn đề liên quan