gpt4 book ai didi

python - IndexError:索引1080超出了尺寸为1080的轴0的范围

转载 作者:行者123 更新时间:2023-12-02 17:04:00 29 4
gpt4 key购买 nike

我正在阅读python上的视频帧,并且试图找到每个帧索引的RGB。我需要检测LED(将阈值设置为开/关-红色/黑色),但是我遇到了索引编制问题。

我需要访问图像左下角的RGB值。

# Check if camera opened successfully
if (video.isOpened()== False):
print("Error opening video stream or file")

# Read until video is completed
while(video.isOpened()):
# Capture frame-by-frame
ret, frame = video.read()
frame_read += 1

if ret == True:

# Display the resulting frame
cv2.imshow('Frame',frame)

height, width, channels = frame.shape

#Accessing RGB pixel values
for x in range(round(width/2), width) :
for y in range(0, round(height/2)) :
print(frame[x,y,2], frame[x,y,0], frame[x,y,1], frame_read) #R,B,G Channel Value


# Press Q on keyboard to exit
if cv2.waitKey(25) & 0xFF == ord('q'):
break

# Break the loop
else:
break

video.release()
cv2.destroyAllWindows()

我的错误是在行print(frame [x,y,2],frame [x,y,0],frame [x,y,1],frame_read)
IndexError:索引1080超出了尺寸为1080的轴0的范围

最佳答案

当您将框架 slice 为frame[x, y, 2]时,您忘记了frame的第一片始终是高度(就像您在height, width, channels = frame.shape中正确所做的那样),因此您在框架 slice 中所指的x不能从0width(在您的情况下为1920) ),因为第一个 slice (您的x)的范围是0height(1080)。

引用宽度的y也是如此(因此,范围从0到1920)。

只需交换帧 slice ,您就可以开始:
print(frame[y,x,2], frame[y,x,0], frame[y,x,1], frame_read)

关于python - IndexError:索引1080超出了尺寸为1080的轴0的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57878978/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com