可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I recently started working with openCV and python and decided to analyze some sample code to get an idea of how things are done.
However, the sample code I found, keeps throwing this error:
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'
The code I was using can be found below:
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
Is this a problem with my installation? I used this website as a guide to install python and openCV.
回答1:
OpenCV 3.0 came with some namespace changes, and this might be one of them. The function reference given in the other answer is for OpenCV 2.4.11, and unfortunately there are significant renamings, including enumerated parameters.
According to the OpenCV 3.0 Example here, the correct parameter is cv2.IMREAD_COLOR.
According to the OpenCV 3.0 Reference Manual for C, CV_LOAD_IMAGE_COLOR is still there.
And my conclusion from the above resources and here, they changed it in OpenCV 3.0 python implementation.
For now, the best to use seems like the following:
img = cv2.imread("link_to_your_file/file.jpg", cv2.IMREAD_COLOR)
回答2:
have you tried this?
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
see imread also have a look at this