网络摄像头在face_tracking项目中看不到任何面孔

时间:2018-04-06 10:21:58

标签: opencv processing

我正在使用face_detectionOpenCVArduino制作项目Processing。但是我遇到了一些问题。

代码写得正确但编译完成后,我的笔记本电脑的网络摄像头看不到任何脸,只有黑暗的窗口。

'import hypermedia.video.*;
 import java.awt.Rectangle;
 import processing.video.*;
 OpenCV opencv;


 int contrast_value    = 0;
 int brightness_value  = 0;



 void setup() {

 size( 1000, 500 );

 opencv = new OpenCV( this );
 opencv.capture( width, height );                   // open video stream
 opencv.cascade( OpenCV.CASCADE_FRONTALFACE_ALT );  // load detection 
 description, here-> front face detection : "haarcascade_frontalface_alt.xml"


// print usage
   println( "Drag mouse on X-axis inside this sketch window to change contrast" );
  println( "Drag mouse on Y-axis inside this sketch window to change brightness" );

}


public void stop() {
opencv.stop();
super.stop();
 }



 void draw() {

// grab a new frame
// and convert to gray
opencv.read();
opencv.convert( GRAY );
opencv.contrast( contrast_value );
opencv.brightness( brightness_value );

// proceed detection
Rectangle[] faces = opencv.detect( 1.2, 2, OpenCV.HAAR_DO_CANNY_PRUNING, 40, 40 );

// display the image
image( opencv.image(), 0, 0 );

// draw face area(s)
noFill();
stroke(255,0,0);
for( int i=0; i<faces.length; i++ ) {
    rect( faces[i].x, faces[i].y, faces[i].width, faces[i].height ); 
}
}




 void mouseDragged() {
contrast_value   = (int) map( mouseX, 0, width, -128, 128 );
brightness_value = (int) map( mouseY, 0, width, -128, 128 );
}

输出为黑色窗口。为什么会这样? Here's my output image

1 个答案:

答案 0 :(得分:0)

我从未将OpenCVProcessing一起使用,但我认为你在opencv.capture部分遗漏了一些东西,因为我发现你没有说明任何关于视频流。

Here是实时相机测试的代码......它会传递this,然后是其他内容。

我认为代码的摘录可以解决您的问题:

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();
}

我认为这可能会有所帮助!

来源:OpenCV for Processing on GitHub