Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用cv2访问图像的像素_Python_Opencv - Fatal编程技术网

Python 使用cv2访问图像的像素

Python 使用cv2访问图像的像素,python,opencv,Python,Opencv,我想访问Python中的图像,然后对其像素进行重新排序。几个不同的教程,包括使用此方法访问像素: import cv2 import numpy as np image = cv2.imread('ironman.bmp') pixel = image[200, 500] print pixel 我试过了,但是在执行了pixel=image[200500]命令之后,我收到了以下错误消息: Traceback (most recent call last): File "<pyshel

我想访问Python中的图像,然后对其像素进行重新排序。几个不同的教程,包括使用此方法访问像素:

import cv2
import numpy as np
image = cv2.imread('ironman.bmp')
pixel = image[200, 500]
print pixel
我试过了,但是在执行了
pixel=image[200500]
命令之后,我收到了以下错误消息:

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    pixel = image[200, 500]
TypeError: 'NoneType' object is not subscriptable
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
像素=图像[200500]
TypeError:“非类型”对象不可下标

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

image
None
<当找不到文件时,code>cv2.imread返回
None
。(在我看来,这是一个值得怀疑的设计决策。)


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

现有代码本身没有错误。您可能存在以下问题之一:

  • 您提到的图像文件不存在(或)
  • 图像路径未正确提及
  • 还要确保是否正确提到了图像格式
  • 我为我选择的图像编制了您的代码:

    import cv2
    
    #---I have passed the image path in a variable called filename which is accessed by cv2.imread() function---
    
    filename = 'C:\\Users\\Mark\\Desktop\\stack\\Original.jpg'
    image = cv2.imread(filename)
    pixel = image[200, 500]
    print pixel
    
    结果是:

    [179 147  82]
    
    [131]
    
    如果您读取灰度图像,结果将完全不同:

    filename = 'C:\\Users\\Mark\\Desktop\\stack\\Original.jpg'
    image = cv2.imread(filename, 0)
    pixel = image[200, 500]
    print pixel
    
    结果是:

    [179 147  82]
    
    [131]
    

    请检查
    图像
    中的值,我认为它是
    。图像层是什么?怎么样
    pixel=image[200500,0]
    ?问题似乎出在我给文件的路径上。虽然路径是正确的,但其中一个文件夹中有美国字母表以外的字母(é)。我重新命名后,脚本运行没有问题。谢谢你的帮助!