我想通过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]的答案,揭示我没有成功地读取图像。我不知道为什么......
答案 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)