Python 如何从cv2.VideoCapture收集像素数据
我正在尝试从活动cv2收集像素rgb值。VideoCapture方法我的代码可以扫描20x20像素区域并平均出所有rgb值,但它仅适用于图像,使用VideoCapture不起作用。请帮助以下代码:Python 如何从cv2.VideoCapture收集像素数据,python,opencv,video-capture,Python,Opencv,Video Capture,我正在尝试从活动cv2收集像素rgb值。VideoCapture方法我的代码可以扫描20x20像素区域并平均出所有rgb值,但它仅适用于图像,使用VideoCapture不起作用。请帮助以下代码: loop = True red = 0 green = 0 blu = 0 def AutonomousCar(): global loop global red global green global blu red = 0 blu = 0
loop = True
red = 0
green = 0
blu = 0
def AutonomousCar():
global loop
global red
global green
global blu
red = 0
blu = 0
green = 0
import cv2
roadimg = cv2.imread(r"roadimg.jpg")
loop = True
startPoint = [50, 50]
changeVar = 1
downVar = 1
bluval = []
greenval = []
redval = []
while loop:
if downVar >= 21:
loop = False
if changeVar <= 20:
changeVar += 1
startPoint[0] += 1
elif changeVar >= 20:
changeVar = 1
startPoint[1] += 1
startPoint[0] = 50
downVar += 1
presentPixel = tuple(startPoint)
pixelData = roadimg[presentPixel]
fixpixelData = tuple(pixelData)
fixfixpixelData = str(fixpixelData)
fixfixfixpixelData = fixfixpixelData.replace("(", "")
fixfixfixpixelData = fixfixfixpixelData.replace(")", "")
ffffpixelData = fixfixfixpixelData.split(", ")
ffffpixelData = list(map(int, ffffpixelData))
bluval.append(ffffpixelData[0])
greenval.append(ffffpixelData[1])
redval.append(ffffpixelData[2])
red = sum(redval) / len(redval)
green = sum(greenval) / len(greenval)
blu = sum(bluval) / len(bluval)
red = int(red)
green = int(green)
blu = int(blu)
AutonomousCar()
red = red
green = green
blu = blu
loop=True
红色=0
绿色=0
blu=0
def AutonomousCar():
全局循环
全球红色
全球绿色
全球蓝光
红色=0
blu=0
绿色=0
进口cv2
roadimg=cv2.imread(r“roadimg.jpg”)
循环=真
起始点=[50,50]
changeVar=1
downVar=1
bluval=[]
格林瓦尔=[]
redval=[]
while循环:
如果downVar>=21:
循环=错误
如果changeVar=20:
changeVar=1
起始点[1]+=1
起始点[0]=50
downVar+=1
presentPixel=元组(起始点)
pixelData=roadimg[presentPixel]
fixpixelData=元组(pixelData)
fixpixelData=str(fixpixelData)
FixPixelData=FixPixelData。替换(“(”,“”)
FixPixelData=FixPixelData。替换(“)”,“”)
ffffpixelData=fixpixeldata.split(“,”)
ffffpixelData=列表(映射(int,ffffpixelData))
bluval.append(ffffpixelData[0])
greenval.append(ffffpixelData[1])
append(ffffpixelData[2])
红色=总和(redval)/len(redval)
绿色=总和(绿色值)/长度(绿色值)
blu=总和(bluval)/len(bluval)
红色=整数(红色)
绿色=整数(绿色)
蓝色=整数(蓝色)
自主汽车
红色=红色
绿色=绿色
blu=blu
顺便说一句:这段代码有些没用的原因是我把这段代码当作一个库来使用,这样我就可以从同一文件位置的另一个python文件中访问它了。你说的“它不工作”是什么意思?无法打印出结果吗 我修改了它。它对我很有效
loop = True
red = 0
green = 0
blu = 0
def AutonomousCar():
global loop
global red
global green
global blu
red = 0
blu = 0
green = 0
import cv2
roadimg = cv2.imread(r"roadimg.jpg")
print(roadimg.shape)
loop = True
startPoint = [50, 50]
changeVar = 1
downVar = 1
bluval = []
greenval = []
redval = []
while loop:
if downVar >= 21:
loop = False
if changeVar <= 20:
changeVar += 1
startPoint[0] += 1
elif changeVar >= 20:
changeVar = 1
startPoint[1] += 1
startPoint[0] = 50
downVar += 1
presentPixel = tuple(startPoint)
pixelData = roadimg[presentPixel]
fixpixelData = tuple(pixelData)
fixfixpixelData = str(fixpixelData)
fixfixfixpixelData = fixfixpixelData.replace("(", "")
fixfixfixpixelData = fixfixfixpixelData.replace(")", "")
ffffpixelData = fixfixfixpixelData.split(", ")
ffffpixelData = list(map(int, ffffpixelData))
bluval.append(ffffpixelData[0])
greenval.append(ffffpixelData[1])
redval.append(ffffpixelData[2])
red = sum(redval) / len(redval)
green = sum(greenval) / len(greenval)
blu = sum(bluval) / len(bluval)
red = int(red)
green = int(green)
blu = int(blu)
return red, green, blu
red,green,blu = AutonomousCar()
print(red, green, blu)
loop=True
红色=0
绿色=0
blu=0
def AutonomousCar():
全局循环
全球红色
全球绿色
全球蓝光
红色=0
blu=0
绿色=0
进口cv2
roadimg=cv2.imread(r“roadimg.jpg”)
打印(道路图像形状)
循环=真
起始点=[50,50]
changeVar=1
downVar=1
bluval=[]
格林瓦尔=[]
redval=[]
while循环:
如果downVar>=21:
循环=错误
如果changeVar=20:
changeVar=1
起始点[1]+=1
起始点[0]=50
downVar+=1
presentPixel=元组(起始点)
pixelData=roadimg[presentPixel]
fixpixelData=元组(pixelData)
fixpixelData=str(fixpixelData)
FixPixelData=FixPixelData。替换(“(”,“”)
FixPixelData=FixPixelData。替换(“)”,“”)
ffffpixelData=fixpixeldata.split(“,”)
ffffpixelData=列表(映射(int,ffffpixelData))
bluval.append(ffffpixelData[0])
greenval.append(ffffpixelData[1])
append(ffffpixelData[2])
红色=总和(redval)/len(redval)
绿色=总和(绿色值)/长度(绿色值)
blu=总和(bluval)/len(bluval)
红色=整数(红色)
绿色=整数(绿色)
蓝色=整数(蓝色)
返回红色、绿色、蓝色
红色、绿色、蓝色=自动驾驶汽车()
打印(红色、绿色、蓝色)
您可以在此处看到结果:
您所说的“它不工作”是什么意思?无法打印结果?请更具体地说明“不工作”部分:Pi回答了下面的问题,您的答案如下。请访问StackOverflow。请阅读,并张贴一份。最小值很重要!如果我说得更清楚,你知道答案吗?如果不知道,我不会改变任何东西。它对我也有效。我希望它能从我的网络摄像头打印出实时视频提要的平均rgb值,但如果我用cv2.VideoCapture(0)替换roadimg=cv2.imread(r“roadimg”)你需要访问网络摄像头的其他代码行它不工作我收到一个错误只是想知道你对代码做了什么更改