【问题标题】:cv2 imread returns None [duplicate]cv2 imread 返回无 [重复]
【发布时间】:2019-01-20 20:55:31
【问题描述】:

我通过 pip install opencv-contrib-python-headless 安装了 cv2 库。

每当我尝试读取图像时,它都会返回 None。我尝试在路径中使用 / 而不是 \,将图像存储在项目目录中,因此路径中没有 /,在路径前使用 r',重新安装包。我错过了什么吗?值得注意的是,当我使用其他库使用相同的路径读取图像时,它可以正常工作。

import cv2
 ## I tried all tweaks in the path
img = cv2.imread(path)
print(img)

这是我尝试过的路径

img = cv2.imread('image.jpg')
print(img)

img = cv2.imread(r'D:\project\image.jpg')
print(img)

img = cv2.imread(r'D:/project/image.jpg')
print(img)

img = cv2.imread('D:/project/image.jpg')
print(img)

以上全部返回无

【问题讨论】:

  • 你安装了pip install opencv-python吗?
  • 首先我安装了它,在它返回我之后没有我卸载它并安装了 opencv-contrib-python-headless
  • 尝试在图像路径中将 \ 替换为 /。还可以尝试将图像复制到程序文件夹中。
  • 已经完成了。
  • 你能把路径和文件名一起注释吗?文件名有空格吗?

标签: python opencv image-processing


【解决方案1】:

我建议你重新安装CV2或尝试检查图像地址。

如果仍有问题,您可以使用其他方法来读取 jpeg 图像。

如上一个答案cv2.imread does not read jpg files所述,您可以改用 matplotlib。

import cv2
import matplotlib.pyplot as plt
img1 = plt.imread('image.jpg')

注意matplotlib中的颜色通道是不同的,都是BGR。

如果您需要使用颜色,则需要交换第三个和第一个通道。

img1 = img1[..., ::-1]  # RGB --> BGR

你可以在这里找到更多关于 matplotlib 的信息https://matplotlib.org/

希望它能解决你的问题。

【讨论】:

    猜你喜欢
    • 2013-07-30
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 2020-09-19
    • 2021-03-19
    相关资源
    最近更新 更多