python-数组索引太多(遥感图像)

时间:2017-09-30 01:08:31

标签: python image opencv numpy

我想通过opencv读取遥感图像然后显示它。 因为遥感图像在r,g,b和近红外范围内具有四维。我的想法是远程第四维,我只能看到rgb图像。但是当我使用opencv时,我得到了一些补充:

Traceback (most recent call last):
  File "D:/Python/pycharm_project/tianchi/wenjianduqu_test.py", line 10, in 
<module>
    a=im[:,:,:3]
IndexError: too many indices for array

Process finished with exit code 1

以下是我的代码:

import tensorflow as tf
import cv2
import numpy as np

im=cv2.imread("D:\\Python\\pycharm_project\\tianchi\\cadastral2015.tif",-1)
a=np.zeros((15106,5106,3))
a=im[:,:,:3]

cv2.imshow("1",a)
cv2.waitKey()
cv2.destroyAllWindows()

我不知道哪里出错了,因为当图像是自然图像时没有问题。我需要帮助,谢谢大家!!

我试图通过cv2.imread显示'im'中随机点的像素值。它给了我[0 0 0 255]的答案,揭示我没有成功地读取图像。我不知道为什么......

1 个答案:

答案 0 :(得分:1)

您可以使用cv2.split方法。

channels = cv2.split(im)
a = channels[0]

# or access channels in loop
for channel in channels:
    cv2.imshow("frame", channel)
    cv2.waitKey(0)