繁体   English   中英

如何在 Python OpenCV 中读取图像

[英]How to read an image in Python OpenCV

我正在尝试在 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 && size.height>0在函数 cv::imshow 中

如何解决这个问题?

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

如果您尝试使用 matplotlib 显示 OpenCV 图像,请使用以下代码。

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

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

我写了一篇短文来学习在 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.

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 错误:(-215)size.width>0 && size.height>0 in function imshow

要使用 OpenCV 读取图像,您必须使用以下合成器。 如果它不起作用,则安装有问题。

import cv2

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

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

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

编辑:我不明白消极的观点......为了什么??

出现此错误消息的原因是 cv2.imread() 无法找到它正在寻找图像的图像。 如果您将完整路径添加到图像,这应该可以工作,例如

img = cv2.imread('/home/foo/images/dumb.jpg',cv2.IMREAD_GRAYSCALE)

使用 0 而不是cv2.IMREAD_GRAYSCALE ,我会硬编码文件的位置,而不是像这样引用它,例如,如果它在 C 驱动器上 put 'C:\\\\Filename.jpg'

试试这个:

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()

看起来你的代码没问题。 问题似乎出在参数中提供的图像维度上。 错误代码表示: size > 0 && width > 0 此条件未正确满足。 尺寸sizewidth小于零。 您可能想要检查任何其他图像并尝试使用它。

import cv2
import matplotlib.pyplot as plt
%matplotlib inline
        
# Hide grid lines
fig, ax = plt.subplots(figsize=(10,10))
ax.grid(False)
    
im=cv2.imread('./my_images.jpg')
plt.imshow(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))
plt.show()

它使用cv2.COLOR_BGR2RGB因为它将使用 BGR 的OpenCV默认设置转换为 RGB 格式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM