如何在Python OpenCV中读取图像

时间:2017-10-03 08:58:54

标签: python opencv numpy matplotlib

我正在尝试在Python OpenCV中阅读和显示图像。

执行以下代码:

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread('dumb.jpg', cv2.IMREAD_GRAYSCALE)

cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

导致以下错误:

  

cv2.error:   C:\ build \ master_winpack-bindings-win64-vc14-static \ opencv \ modules \ highgui \ src \ window.cpp:325:错误:(-215)size.width> 0&&函数cv :: imshow

中的size.height> 0

如何解决这个问题?

注意:我有执行此操作所需的所有先决条件(python 2.7,opencv 3.3 matplotlib,numpy)

9 个答案:

答案 0 :(得分:4)

@Nagaraj - 如果您尝试使用matplotlib显示openCV图像,请使用以下代码。

    import numpy as np
    import cv2
    import matplotlib.pyplot as plt
    %matplotlib inline # if you are running this code in jupyter notebook

    img = cv2.imread('/path_to_image/opencv-logo.png",0) # reads image as grayscale
    plt.imshow(img, cmap='gray')

答案 1 :(得分:1)

http://docs.opencv.org/3.1.0/dc/d2e/tutorial_py_image_display.html

的教程
 import numpy as np
 import cv2

 # Load an color image in grayscale
 img = cv2.imread('/path_to_image/messi5.jpg',0)

 # show image

 cv2.imshow('image',img)
 cv2.waitKey(0)
 cv2.destroyAllWindows()

使用绝对路径到图像,然后就没有路径问题了

https://en.wikipedia.org/wiki/Path_(computing)#Absolute_and_relative_paths

OpenCV Error: (-215)size.width>0 && size.height>0 in function imshow

答案 2 :(得分:0)

使用0而不是cv2.IMREAD_GRAYSCALE我会硬编码文件的位置,而不是像那样引用它,例如它是否在C盘上'C:\\Filename.jpg'

答案 3 :(得分:0)

此错误消息的原因是cv2.imread()无法找到查找图像的图像。如果您添加图像的完整路径(例如

),这应该有效
img = cv2.imread('/home/foo/images/dumb.jpg',cv2.IMREAD_GRAYSCALE)

答案 4 :(得分:0)

尝试

 import   cv2 as cv              #openCV-3.4.1
 import numpy as np
 import matplotlib.pyplot as plt
 img = cv.imread('image path and name .file type ',0)
 cv.imshow('img',img)
 cv.waitKey(0)
 cv.destroyAllWindows()

答案 5 :(得分:0)

Here is a short post来学习使用Python中的OpenCV读取图像。您可以看到以下带有说明的代码段。

import cv2 #Import openCV
import sys #import Sys. Sys will be used for reading from the command line. We give Image name parameter with extension when we will run python script

#Read the image. The first Command line argument is the image
image = cv2.imread(sys.argv[1]) #The function to read from an image into OpenCv is imread()

#imshow() is the function that displays the image on the screen.
#The first value is the title of the window, the second is the image file we have previously read.
cv2.imshow("OpenCV Image Reading", image)

cv2.waitKey(0) #is required so that the image doesn’t close immediately. It will Wait for a key press before closing the image.

答案 6 :(得分:0)

看起来您的代码很好。问题似乎在于参数中提供的图像尺寸。错误代码为:size > 0 && width > 0。此条件无法正确满足。维度sizewidth均小于零。您可能需要检查其他图像,然后尝试使用它。

答案 7 :(得分:-1)

要使用OpenCV读取图像,您必须使用以下synthax。如果它不起作用,则安装存在问题。

import cv2

image = cv2.imread('path_of_the_image.png')

cv2.imshow('img', image)
cv2.waitKey(0)

你没有发布它给出的错误..

编辑:我不明白负面因素......对于什么?

答案 8 :(得分:-1)

您可能会在显示的错误上方找到一条路径。

这就像:-

中的“ PATH”文件,第...行

将图像复制到此路径,然后重试。