微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IndexError 的 Python 错误:尝试使用 openCV 减去蓝色时数组的索引过多

如何解决IndexError 的 Python 错误:尝试使用 openCV 减去蓝色时数组的索引过多

当我尝试使用 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,因此蓝色通道是第一个通道

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。