Не найдены флаги cv2.imread

Недавно я начал работать с openCV и python и решил проанализировать некоторый пример кода, чтобы понять, как это делается.

Однако код образца, который я нашел, продолжает бросать эту ошибку:

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'

Код, который я использовал, можно найти ниже:

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

Это проблема с моей установкой? Я использовал этот сайт в качестве руководства по установке python и openCV.

Ответ 1

OpenCV 3.0 появился с некоторыми изменениями пространства имен, и это может быть один из них. Ссылка на функцию, указанная в другом ответе, для OpenCV 2.4.11, и, к сожалению, существуют значительные переименования, включая перечисленные параметры.

В соответствии с примером OpenCV 3.0 здесь, правильный параметр - cv2.IMREAD_COLOR.

В соответствии с Справочным руководством OpenCV 3.0 для C CV_LOAD_IMAGE_COLOR все еще существует.

И мой вывод из приведенных выше ресурсов и здесь, они изменили его в реализации Python OpenCV 3.0.

В настоящее время лучше всего использовать следующее:

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

Ответ 2

Вы пробовали это?

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

см. imread также посмотрите this