问题描述
我正在开发一个 OpenCV java 项目,该项目可从图像中检测刚性容器。我对使用 Cascade Trainer GUI 工具自定义 Haar Cascade Classifier 非常陌生。我只在 p 文件夹中添加了 50 张钢丝容器刚性照片,在 n 文件夹中添加了 200 张其他照片。生成 Haar Cascade Classifier XML 文件后,我使用 xml 文件运行了 java 代码,但它没有检测到图像上的电线容器。我使用 Haar Cascade Classifier xml 文件进行人脸检测测试,它可以工作,但不适用于电线容器。难道我做错了什么?请坚持。
这是我使用的代码。
公共类 DetectContainerDemo {
public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
System.out.println("\nRunning Detect containers Demo");
CascadeClassifier contDetector = new CascadeClassifier("data_files//cascade.xml");
Mat image = Imgcodecs.imread("target//testcont2.jpg");
// Detect Container in the image.
// MatOfRect is a special container class for Rect.
MatOfRect contDetections = new MatOfRect();
contDetector.detectMultiScale(image,contDetections);
System.out.println(String.format("Detected %s containers",contDetections.toArray().length));
// Draw a bounding Box around the container.
for (Rect rect : contDetections.toArray()) {
Imgproc.rectangle(image,new Point(rect.x,rect.y),new Point(rect.x + rect.width,rect.y + rect.height),new Scalar(0,255,0));
}
BufferedImage meh = (BufferedImage) HighGui.toBufferedImage(image);
//HighGui.toBufferedImage(m)
File output = new File("target\\test1.png");
try {
ImageIO.write(meh,"png",output);
} catch (IOException e) {
// Todo Auto-generated catch block
e.printstacktrace();
}
}
}
请让我知道这是否可行,或者我做错了。上面的代码几乎加载了 xml 文件并使用 Opencv 库中的 detectMultiScale 方法检测对象。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)