【问题标题】:OpenCV imread() Method returns NoneOpenCV imread() 方法返回 None
【发布时间】:2021-02-27 01:58:00
【问题描述】:

我在玩 OpenCV 库,并尝试打开一个小图像,代码如下:

import cv2

img = cv2.imread(r'penguin.jpeg')
print(img)

基本上看一下图像中的像素数组,但是打印只是返回None

我的 .py 文件和图像都在我的桌面上,所以我认为问题不在于路径。

我也知道imread() 和 JPEG 图像存在一些问题,但是我使用此图像的 PNG 版本得到了相同的结果。 直到今天它一直运行良好,所以我有点无能为力。

谁能告诉我可能发生了什么或我可能做的不太正确?

非常感谢您!

【问题讨论】:

  • 您是否尝试过查看您在终端路径中运行此代码的位置
  • 路径图片为假。
  • @EdwinCheong 感谢您的快速回复!我没有。这是我从未深入探索过的东西
  • 如果该文件不在您当前的工作目录中,那么您必须包含该文件的路径
  • 尝试添加 print(os.getcwd()) 以查看您的脚本在哪个目录中运行...以及它期望图像的位置。

标签: python arrays image opencv image-processing


【解决方案1】:

咨询OpenCV-Python Tutorials我们被警告

即使图片路径错误,也不会抛出任何错误,但是print img会给你None

其中print img 是您的print(img) 的Python 2 模拟。

您编写的代码正确并且复制了您的问题,我在本地打印了一个测试 penguin.jpeg 图像的数组表示。

正如 Rashid Ladjouzi 评论的那样,路径可能不正确,特别是考虑到您提到该脚本之前有效。我将使用以下代码对此进行测试,该代码应返回 True:

import os

print(r'penguin.jpeg' in os.listdir("."))

【讨论】:

  • 嗨@Anil 我试过你提到的,它确实返回false,但是我不明白为什么,因为这两个文件都在我的桌面上。除了图像的打印现在可以正常工作,无需我对代码或文件位置进行任何更改,我认为这也很奇怪
  • 您可能正在从另一个目录运行您的 Python 脚本。作为一个简单的解决方案,请确保在运行脚本之前cd 进入正确的目录(即您的桌面)。
猜你喜欢
  • 2017-12-22
  • 1970-01-01
  • 1970-01-01
  • 2016-05-18
  • 1970-01-01
  • 2020-08-17
  • 1970-01-01
  • 1970-01-01
  • 2013-07-18
相关资源
最近更新 更多