问题描述
当我尝试使用 openCV 从灰色中减去蓝色通道时,我遇到了 IndexError
import numpy as np
import cv2
img = cv2.imread('Pictures/color2.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray',gray)
gray[:,:,0] = 0
cv2.imshow('Blue Subtracted',gray)
cv2.waitKey(0)
cv2.destroyWindow()
这是我遇到的错误
gray[:,0] = 0
IndexError: too many indices for array
谁能帮我解决这个问题? 我在 PyCharm 社区中使用 Python 3.7
解决方法
gray 是一个没有深度的二维数组,不需要指定通道
temp = img[0,:,:] - gray
此外,您应该注意 cv2.imread 读取为 BGR,而不是 RGB,因此蓝色通道是第一个通道