Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 如何使用存储的图像正确索引NumPy数组?_Python_Opencv - Fatal编程技术网

Python 如何使用存储的图像正确索引NumPy数组?

Python 如何使用存储的图像正确索引NumPy数组?,python,opencv,Python,Opencv,我正在努力理解cv2.imread的输出 我已经将PNG图像作为灰度加载到NumPy数组中。我想我已经成功地做到了。我知道imagesList[0]为我提供了第一张图像的NumPy数组,但是我不知道imagesList[0][1]中的数字对应什么。在同样的提问中,一个(m,n,3)图像对应的数字是什么 # cv2 is openCV, an image processing package import numpy as np import cv2 #start and ending sli

我正在努力理解
cv2.imread
的输出

我已经将PNG图像作为灰度加载到NumPy数组中。我想我已经成功地做到了。我知道
imagesList[0]
为我提供了第一张图像的NumPy数组,但是我不知道
imagesList[0][1]
中的数字对应什么。在同样的提问中,一个
(m,n,3)
图像对应的数字是什么

# cv2 is openCV, an image processing package 
import numpy as np
import cv2

#start and ending slice
startSlice = 753
endSlice = 823

# each image array will be stored in the list.
# imagesList[0] = first slice, imagesList[-1] = last slice
imagesList = []

# reading the image as a greyscale array, and storing into imagesList
for i in range(startSlice,endSlice+1):
  fileName = "/somefilelocation"+'{0:04}'.format(i)+'.png'
  im = cv2.imread(fileName,0)
  imagesList.append(im)
  print(fileName)

for
循环中,您使用
cv2.imread
读入多个图像,这些图像都将作为NumPy数组存储在列表
imagesList

  • imagesList
    中的第一级索引,例如
    imagesList[0]
    将 为您提供相应的(整个)图像(NumPy数组)
  • 第二级索引,例如
    imagesList[0][1]
    将 为您提供该图像中相应的行(NumPy数组)
  • 第三级索引,例如
    imagesList[0][1][2]
    将 为您提供该图像(NumPy数组)中相应的行和列(即实际像素)
  • 第四级索引,例如
    imagesList[0][1][2][0]
    将 在该图像(NumPy数组)中相应的行和列(像素)处为您提供相应的颜色值(蓝色、绿色或红色)。注意:第四个索引>0仅适用于彩色图像
让我们做一个小测试:

导入cv2
#阅读图片。
image=cv2.imread('ithMo.png')
#将图像存储为列表中的颜色和灰度。
imagesList=[图像,cv2.CVT颜色(图像,cv2.COLOR\u BGR2GRAY)]
#访问第一个图像(彩色)
打印('整个图像(BGR值):\n\n',图像列表[0],'\n')
打印('第二行图像(BGR值):\n\n',图像列表[0][1],'\n')
打印('图像的第二行第三列(BGR值):\n\n',imagesList[0][1][2],'\n')
打印('图像的第二行、第三列、第一个通道(B值):\n\n',图像列表[0][1][2][0],'\n')
#访问第二个图像(灰色)
打印('整个图像(灰度值):\n\n',imagesList[1],'\n')
打印('第二行图像(灰度值):\n\n',imagesList[1][1],'\n')
打印('图像的第二行第三列(灰度值):\n\n',图像列表[1][1][2],'\n')
这个图像

作为颜色和灰度存储在
图像列表中
,并测试上述索引级别

我尽量缩短输出,并标记了重要部分:

整个图像(BGR值):
[[[239 124  63]
[239 123  65]
[240 124  64]
...

[[238 128 74]@NoahBastola听到这个消息很高兴。如果这个答案对你有帮助,请随意投票和/或接受,请参阅: