Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Opencv中表示捕获的每个视频帧?_Python_Opencv_Numpy_Image Processing_Video Processing - Fatal编程技术网

Python 如何在Opencv中表示捕获的每个视频帧?

Python 如何在Opencv中表示捕获的每个视频帧?,python,opencv,numpy,image-processing,video-processing,Python,Opencv,Numpy,Image Processing,Video Processing,我正在探索Opencv视频捕获。我能够捕获和显示视频。我尝试在控制台中打印每一帧。然后我得到了一个长的numpy数组。数组中的每个数字表示什么?是该帧中每个像素的RGB值吗 import numpy as np import cv2 cap = cv2.VideoCapture(0) cap.set(3,640) cap.set(4,480) while(True): # Capture frame-by-frame ret, frame = cap.read() pri

我正在探索Opencv视频捕获。我能够捕获和显示视频。我尝试在控制台中打印每一帧。然后我得到了一个长的numpy数组。数组中的每个数字表示什么?是该帧中每个像素的RGB值吗

import numpy as np
import cv2
cap = cv2.VideoCapture(0)
cap.set(3,640)
cap.set(4,480)
while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()
    print len(frame)
    print frame
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()
此代码将以下输出打印到控制台

480
[[[119 115 116]
 [119 115 116]
 [118 113 117]
 ..., 
 [170 167 163]
 [170 168 162]
 [170 168 162]]

 [[121 115 121]
 [121 115 121]
 [119 113 119]
 ..., 

每个数字表示什么?分组是如何进行的?

由@nauer在上面的评论中解决:


第一个元素
[119115116]
分别对应于第一行和第一列中像素的蓝色、绿色和红色分量,即像素[0,0]。每个颜色分量的范围从0到255。下一个元素对应于同一行中下一个像素的BGR颜色值,即[0,1]。元素
[170 168 162]
对应于第一行[0,x]中的最后一个BGR值
[[121 115 121]
是第二行[1,0]中的第一个BGR颜色值。您有一个三维数组。前两个对应于y和x坐标。第三个对应于3个BGR颜色分量。因此,灰度图像只有二维。

由@nauer在上面的注释中解决:


第一个元素
[119115116]
分别对应于第一行和第一列中像素的蓝色、绿色和红色颜色分量,即像素[0,0]。每个颜色分量的范围为0到255。下一个元素对应于同一行中下一个像素的BGR颜色值,即[0,1]。元素
[170 168 162]
对应于第一行[0,x]中的最后一个BGR值。
[[121 115 121]
是第二行[1,0]中的第一个BGR颜色值。您有一个具有3维的数组。前两个对应于y和x坐标。第三个对应于3个BGR颜色分量。因此,灰度图像只有2维。

如果您像这样捕获视频
ret,frame=cv2。VideoCapture(0)
则是
帧[y,x,color]
而颜色在opencv中定义为BGR
“该数组中的每个数字表示什么?是该帧中每个像素的RGB值吗?”
-是。
“如何进行分组?”
-每行代表一个像素,每个RGB通道的每个列。每个数字代表
[0255]中每个通道的强度
interval.@nauer那么在我的例子中,119和115是对应的y和x坐标,116是颜色?@Divakar谢谢,在numpy数组中有列表,列表列表,列表列表列表。每个列表指示什么?@user6745741 No.119115116是坐标[0,0]上的蓝色、绿色和红色值(从0到255),下一个是位置[0,1]上的颜色值。[170 168 162]]是第[0,x]行中的最后一个。[121 115 121]是第二行[1,0]中的第一个颜色值。您有一个3维数组。前两个是y和x坐标,第三个是3个颜色值。如果将其转换为灰度图像,则只有2维。如果您像这样捕获视频
ret,frame=cv2。VideoCapture(0)
则是
帧[y,x,color]
,而颜色在opencv
“该数组中的每个数字表示什么?它是该帧中每个像素的RGB值吗?”
-是。
“如何进行分组?”
-每行代表一个像素,每个RGB通道的每个col。每个数字代表
[0255]中每个通道的强度。”
interval.@nauer那么在我的例子中,119和115是对应的y和x坐标,116是颜色?@Divakar谢谢,在numpy数组中有列表,列表列表,列表列表列表。每个列表指示什么?@user6745741 No.119115116是坐标[0,0]上的蓝色、绿色和红色值(从0到255),下一个是位置[0,1]上的颜色值。[170 168 162]]是第[0,x]行中的最后一个。[121 115 121]是第二行[1,0]中的第一个颜色值。您有一个三维数组。前两个是y和x坐标,第三个是3个颜色值。如果将其转换为灰度图像,则只有二维。