我在使用processing和opencv方面还很陌生,所以请多多包涵。我已经在stackoverflow和处理论坛上都发布了我的问题,以覆盖更广泛的受众并找到解决方案-抱歉,这似乎是我不小心进行交叉发布,因为这不是我的意图。
我一直在使用Arduino和Processing进行轻型安装。我正在捕捉使用带有网络摄像头和opencv的面部检测的人,并将其转换为可在16x32 LED矩阵面板上工作的照明装置。灯光装置是对正在观看灯光并同时进行录制的观众数量的一种响应-想法是,录制的人越多,闪烁的灯光显示就越大,并且当没有人观看/正在观看时录制后,灯光不会闪烁。
我设法使opencv能够检测到面部并将其输出到Arduino以显示在灯光上,但是我只能使灯光在不被检测到的情况下(而不是在被检测到的情况下)更强烈地闪烁。因此,这些灯反向工作,并且在没有人检测到时,它们闪烁得更多,而在有人检测到时,它们闪烁得更少。
我已经附上了我的Processing和Arduino代码以供参考,尽管我认为根本不需要更改Arduino代码。
(我在处理代码中突出显示了一个区域,我认为这是导致问题的部分)
我非常感谢谁知道可以更改此方法,以便面部检测触发更多的光线
谢谢
处理代码
import gab.opencv.*;
import java.awt.*;
import processing.video.*;
import processing.serial.*;
import java.awt.Color;
Capture video;
OpenCV opencv;
Serial myPort; // Create object from Serial class
int inByte = -1;
void setup()
{
size(640, 480);
video = new Capture(this, 640/2, 480/2);
opencv = new OpenCV(this, 640/2, 480/2);
opencv.loadCascade(OpenCV.CASCADE_FRONTALFACE);
video.start();
println(Serial.list());
//colorMode(HSB, 100,100,100);
String portName = Serial.list()[5];
myPort = new Serial(this, Serial.list()[5], 9600);
}
void draw() {
scale(2);
opencv.loadImage(video);
image(video, 0, 0 );
noFill(); …Run Code Online (Sandbox Code Playgroud)