python - 使用 cv2 访问图像的像素

标签 python opencv

我想在 Python 中访问图像的像素,然后对其重新着色。几个不同的教程,包括 this one使用此方法访问像素:

import cv2
import numpy as np
image = cv2.imread('ironman.bmp')
pixel = image[200, 500]
print pixel

我试过了,但是在执行 pixel = image[200, 500] 命令后,我收到以下错误消息:

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    pixel = image[200, 500]
TypeError: 'NoneType' object is not subscriptable

经过一些研究,我发现错误消息意味着 image[200, 500] 的值是 None。但是教程使用这段代码没有这个问题。有人可以告诉我我可能做错了什么吗?我正在使用 Python 3.6.0。

最佳答案

imageNonecv2.imread 在找不到文件时返回 None。 (在我看来,这是一个有问题的设计决定。)

>>> import cv2
>>> image = cv2.imread('does not exist')
>>> image is None
True

您几乎可以肯定提供了错误的文件名或错误的文件相对路径。 (您调用 imread 的方式当前文件必须与您的 Python 脚本位于同一目录中。)

关于python - 使用 cv2 访问图像的像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43519015/

相关文章:

android - 从 android 中的图像使用指纹检测

c++ - OpenCV标志识别

c++ - 将 T* 数组(Jet* 或 float*)转换为 cv::Mat<CV_32f>

python - 如何找到这些有时重叠的圆的中心

使用 session cookie 的 Python scrapy 登录

python - python多处理队列中的死锁

python - 究竟什么是 getattr() 以及如何使用它?

c++ - 调用 aruco::detectMarkers crash 时 Opencv 停止

python - 从网络计算机连接到本地 Flask 服务器

python - 如何在 Python 中处理包含空格的链接