Javascript 如何在p5.js中跟踪两种颜色?

Javascript 如何在p5.js中跟踪两种颜色?,javascript,webcam,p5.js,Javascript,Webcam,P5.js,首先,这是我在堆栈上的第一篇文章,所以我很抱歉我是一个noob和糟糕的代码格式 我的项目是基于跟踪3D打印刷新图标-一个橙色和一个蓝色。我想两者都被跟踪(椭圆将显示)。我正在使用p5.js(尽管我希望将来使用openCV) 我已经成功地跟踪了橙色图标!根据我的理解,当我查看像素阵列以识别颜色时,我还需要遍历目标阵列(以便它可以容纳多个颜色) //跟踪橙色的代码 var视频; var目标; //最近颜色的XY坐标 var closestX=0; var=0; var阈值=25; 函数设置(){ c

首先,这是我在堆栈上的第一篇文章,所以我很抱歉我是一个noob和糟糕的代码格式

我的项目是基于跟踪3D打印刷新图标-一个橙色和一个蓝色。我想两者都被跟踪(椭圆将显示)。我正在使用p5.js(尽管我希望将来使用openCV)

我已经成功地跟踪了橙色图标!根据我的理解,当我查看像素阵列以识别颜色时,我还需要遍历目标阵列(以便它可以容纳多个颜色)

//跟踪橙色的代码
var视频;
var目标;
//最近颜色的XY坐标
var closestX=0;
var=0;
var阈值=25;
函数设置(){
createCanvas(640480);
像素密度(1);
视频=创建捕获(视频);
video.hide();
仰泳();
目标=新的目标颜色(颜色(255127,80));
}
函数绘图(){
背景(0);
图像(视频,0,0);
loadPixels();
var世界纪录=500;
对于(变量x=0;x
//应该允许多种颜色跟踪的代码片段
//双色跟踪
var视频;
var target=[]//目标的空数组,因此可以有多个
“对象颜色”
var particles=[]//粒子的空数组
//最近颜色的XY坐标
var closestX=0;
var=0;
var阈值=25;
函数设置(){
createCanvas(640480);
像素密度(1);
视频=创建捕获(视频);
video.hide();
仰泳();
//在目标阵列上推送目标颜色类型的对象
推送(TargetColor(color(255127,80));;
}
函数绘图(){
背景(0);
图像(视频,0,0);
loadPixels();
var世界纪录=500;
//For loop-通过迭代访问视频中的每个像素
直通阵列
//for循环,允许我们循环数组-目标的内容
对于(变量i=0;i
我已经将目标的for循环放在嵌套循环中的几个不同位置,但我仍然无法找到它。我得到的结果是一个黑屏,显示“未捕获类型错误:无法读取未定义的属性”red“

然而,它不是已经定义了吗?我错过了什么


我真的很感激任何提示和前进的方式

看一看你正在向目标阵列中推进什么。推送(TargetColor(color(255127,80));;你只是打电话给TargetColor。你真的想使用新的按钮将TargetColor对象推送到数组中吗?请再次检查这一行:fill(target.rgb);目标是一个数组,因此它没有rgb属性。您是否正在查看web控制台以查找错误?target=new TargetColor(video.get(mouseX,mouseY));应该是target.push(新的TargetColor(video.get(mouseX,mouseY));看一看你正在向目标阵列中推进什么。推送(TargetColor(color(255127,80));;你只是打电话给TargetColor。你真的想使用新的按钮将TargetColor对象推送到数组中吗?请再次检查这一行:fill(target.rgb);目标是一个数组,因此它没有rgb属性。您是否正在查看web控制台以查找错误?target=new TargetColor(video.get(mouseX,mouseY));应该是target.push(新的TargetColor(video.get(mouseX,mouseY));