Java+OpenCV目标检测

Java+OpenCV目标检测

简介:大学生一枚,加入了学校项目组学习,参与到项目中,最近项目需要,通过各方面的学习,做了一个小小的物体识别的cascade.xml,把自己学到的干货分享出来。

环境:jdk1.8 opencv 3.4.0

首先,我们要有足量的图像,我相信这个各位是有办法收集到自己想要检测的目标的图像的。实际训练过程中,我发现500左右已经可以大体上识别到自己想要的目标,但是如果想要更高的精度,建议在1000+的正面例子,反面例子的话只要里面没有目标图像,可以是任何图像,但是建议根据实际需要,在所处的场景中截取不含正面例子的图像作为反面例子。据了解,正:反最佳比例是1:3左右哦。

下面开始上代码了,我把需要的东西都整合了,只需要图像文件地址就可以把所需的文件生成进行训练的操作。

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;

public class Project{
   
    
    //下面都是文件src,根据自己的实际情况填写
    
    public static String posFilePath = "";//正面例子源文件夹
    public static String posOutPath = "";//正面例子输出文件夹
    public static String posTxtPath = "";//正面例子信息txt文件
    public static String negFilePath = "";//反面例子源文件夹
    public static String NegOutPath = "";//反面例子输出文件夹
    public static String negTxtPath = "";//反面例子信息txt文件

    //修改文件大小为20*20  可自定义设置,根据opencv官方推荐20*20效果最佳,
    //个人建议最大不要超过40*40,太大的话跑不太动
    public static int width = 20 ;
    public static int height = 20 ;

    //导入opencv库
    static {
   
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    }

    public static void renameFiles(String filePath){
   
        File file = new File(filePath);
        File[] files = file.listFiles();
        int i = 0;
        for (File f : files){
   
            f.renameTo(new File(filePath+"\\"+i+".jpg"));
            i++;
        }
    }

    //获取img和txt的过程
    /*
    * 1、对图片缩放至20*20
    * 2、对图片进行灰度处理
    * 3、获取Txt
    * */
    public static void getPosImgAndTxt() throws IOException {
   
        File infile = new File
  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值