opencv连续画点时怎么保证前面的点不动 5

 我来答
猪猪将军
2015-10-17 · 交流分享养猪经验,创新创利养猪致富。
猪猪将军
采纳数:44844 获赞数:391509

向TA提问 私信TA
展开全部
  整个项目的结构图:
  编写DetectFaceDemo.java,代码如下:

  [java] view
  plaincopyprint?

  package com.njupt.zhb.test;

  import org.opencv.core.Core;

  import org.opencv.core.Mat;

  import org.opencv.core.MatOfRect;

  import org.opencv.core.Point;

  import org.opencv.core.Rect;

  import org.opencv.core.Scalar;

  import org.opencv.highgui.Highgui;

  import org.opencv.objdetect.CascadeClassifier;

  //

  // Detects faces in an image, draws boxes around them, and writes the results

  // to "faceDetection.png".

  //

  public class DetectFaceDemo {

  public void run() {

  System.out.println("\nRunning DetectFaceDemo");

  System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath());

  // Create a face detector from the cascade file in the resources

  // directory.

  //CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath());

  //Mat image = Highgui.imread(getClass().getResource("lena.png").getPath());

  //注意:源程序的路径会多打印一个‘/’,因此总是出现如下错误

  /*

  * Detected 0 faces Writing faceDetection.png libpng warning: Image

  * width is zero in IHDR libpng warning: Image height is zero in IHDR

  * libpng error: Invalid IHDR data

  */

  //因此,我们将第一个字符去掉

  String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1);

  CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);

  Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1));

  // Detect faces in the image.

  // MatOfRect is a special container class for Rect.

  MatOfRect faceDetections = new MatOfRect();

  faceDetector.detectMultiScale(image, faceDetections);

  System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));

  // Draw a bounding box around each face.

  for (Rect rect : faceDetections.toArray()) {

  Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));

  }

  // Save the visualized detection.

  String filename = "faceDetection.png";

  System.out.println(String.format("Writing %s", filename));

  Highgui.imwrite(filename, image);

  }

  }
  package com.njupt.zhb.test;
  import org.opencv.core.Core;
  import org.opencv.core.Mat;
  import org.opencv.core.MatOfRect;
  import org.opencv.core.Point;
  import org.opencv.core.Rect;
  import org.opencv.core.Scalar;
  import org.opencv.highgui.Highgui;
  import org.opencv.objdetect.CascadeClassifier;

  //
  // Detects faces in an image, draws boxes around them, and writes the results
  // to "faceDetection.png".
  //
  public class DetectFaceDemo {
  public void run() {
  System.out.println("\nRunning DetectFaceDemo");
  System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath());
  // Create a face detector from the cascade file in the resources
  // directory.
  //CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath());
  //Mat image = Highgui.imread(getClass().getResource("lena.png").getPath());
  //注意:源程序的路径会多打印一个‘/’,因此总是出现如下错误
  /*
  * Detected 0 faces Writing faceDetection.png libpng warning: Image
  * width is zero in IHDR libpng warning: Image height is zero in IHDR
  * libpng error: Invalid IHDR data
  */
  //因此,我们将第一个字符去掉
  String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1);
  CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);
  Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1));
  // Detect faces in the image.
  // MatOfRect is a special container class for Rect.
  MatOfRect faceDetections = new MatOfRect();
  faceDetector.detectMultiScale(image, faceDetections);

  System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));

  // Draw a bounding box around each face.
  for (Rect rect : faceDetections.toArray()) {
  Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));
  }

  // Save the visualized detection.
  String filename = "faceDetection.png";
  System.out.println(String.format("Writing %s", filename));
  Highgui.imwrite(filename, image);
  }
  }

  3.编写测试类:

  [java] view
  plaincopyprint?

  package com.njupt.zhb.test;

  public class TestMain {

  public static void main(String[] args) {

  System.out.println("Hello, OpenCV");

  // Load the native library.

  System.loadLibrary("opencv_java246");

  new DetectFaceDemo().run();

  }

  }

  //运行结果:

  //Hello, OpenCV

  //

  //Running DetectFaceDemo

  ///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml

  //Detected 8 faces

  //Writing faceDetection.png
  package com.njupt.zhb.test;
  public class TestMain {
  public static void main(String[] args) {
  System.out.println("Hello, OpenCV");
  // Load the native library.
  System.loadLibrary("opencv_java246");
  new DetectFaceDemo().run();
  }
  }
  //运行结果:
  //Hello, OpenCV
  //
  //Running DetectFaceDemo
  ///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml
  //Detected 8 faces
  //Writing faceDetection.png
枫叶朴璐
2015-04-06 · TA获得超过2606个赞
知道大有可为答主
回答量:7573
采纳率:0%
帮助的人:5951万
展开全部
整个项目的结构图:

编写DetectFaceDemo.java,代码如下:

[java] view
plaincopyprint?

package com.njupt.zhb.test;

import org.opencv.core.Core;

import org.opencv.core.Mat;

import org.opencv.core.MatOfRect;

import org.opencv.core.Point;

import org.opencv.core.Rect;

import org.opencv.core.Scalar;

import org.opencv.highgui.Highgui;

import org.opencv.objdetect.CascadeClassifier;

//

// Detects faces in an image, draws boxes around them, and writes the results

// to "faceDetection.png".

//

public class DetectFaceDemo {

public void run() {

System.out.println("\nRunning DetectFaceDemo");

System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath());

// Create a face detector from the cascade file in the resources

// directory.

//CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath());

//Mat image = Highgui.imread(getClass().getResource("lena.png").getPath());

//注意:源程序的路径会多打印一个‘/’,因此总是出现如下错误

/*

* Detected 0 faces Writing faceDetection.png libpng warning: Image

* width is zero in IHDR libpng warning: Image height is zero in IHDR

* libpng error: Invalid IHDR data

*/

//因此,我们将第一个字符去掉

String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1);

CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);

Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1));

// Detect faces in the image.

// MatOfRect is a special container class for Rect.

MatOfRect faceDetections = new MatOfRect();

faceDetector.detectMultiScale(image, faceDetections);

System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));

// Draw a bounding box around each face.

for (Rect rect : faceDetections.toArray()) {

Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));

}

// Save the visualized detection.

String filename = "faceDetection.png";

System.out.println(String.format("Writing %s", filename));

Highgui.imwrite(filename, image);

}

}
package com.njupt.zhb.test;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.highgui.Highgui;
import org.opencv.objdetect.CascadeClassifier;

//
// Detects faces in an image, draws boxes around them, and writes the results
// to "faceDetection.png".
//
public class DetectFaceDemo {
public void run() {
System.out.println("\nRunning DetectFaceDemo");
System.out.println(getClass().getResource("lbpcascade_frontalface.xml").getPath());
// Create a face detector from the cascade file in the resources
// directory.
//CascadeClassifier faceDetector = new CascadeClassifier(getClass().getResource("lbpcascade_frontalface.xml").getPath());
//Mat image = Highgui.imread(getClass().getResource("lena.png").getPath());
//注意:源程序的路径会多打印一个‘/’,因此总是出现如下错误
/*
* Detected 0 faces Writing faceDetection.png libpng warning: Image
* width is zero in IHDR libpng warning: Image height is zero in IHDR
* libpng error: Invalid IHDR data
*/
//因此,我们将第一个字符去掉
String xmlfilePath=getClass().getResource("lbpcascade_frontalface.xml").getPath().substring(1);
CascadeClassifier faceDetector = new CascadeClassifier(xmlfilePath);
Mat image = Highgui.imread(getClass().getResource("we.jpg").getPath().substring(1));
// Detect faces in the image.
// MatOfRect is a special container class for Rect.
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);

System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));

// Draw a bounding box around each face.
for (Rect rect : faceDetections.toArray()) {
Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));
}

// Save the visualized detection.
String filename = "faceDetection.png";
System.out.println(String.format("Writing %s", filename));
Highgui.imwrite(filename, image);
}
}

3.编写测试类:

[java] view
plaincopyprint?

package com.njupt.zhb.test;

public class TestMain {

public static void main(String[] args) {

System.out.println("Hello, OpenCV");

// Load the native library.

System.loadLibrary("opencv_java246");

new DetectFaceDemo().run();

}

}

//运行结果:

//Hello, OpenCV

//

//Running DetectFaceDemo

///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml

//Detected 8 faces

//Writing faceDetection.png
package com.njupt.zhb.test;
public class TestMain {
public static void main(String[] args) {
System.out.println("Hello, OpenCV");
// Load the native library.
System.loadLibrary("opencv_java246");
new DetectFaceDemo().run();
}
}
//运行结果:
//Hello, OpenCV
//
//Running DetectFaceDemo
///E:/eclipse_Jee/workspace/JavaOpenCV246/bin/com/njupt/zhb/test/lbpcascade_frontalface.xml
//Detected 8 faces
//Writing faceDetection.png
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式