OpenCV# 16 汽车识别

该程序主要功能是识别图片中的汽车。

主要程序主要是3行代码

createCarImagesFile();//似乎是为另外一个汽车识别训练器产生标记文件
            createNegativeImagesFile();//似乎是为测试文件产生训练集合
            useTrainedData();//和15类似

这个程序和15类似,为加强自己的记忆,再次做一次描述

1、打开图片,灰度化之后做直方图均衡

var grayImage = new Mat();
            Cv2.CvtColor(srcImage, grayImage, ColorConversionCodes.BGRA2GRAY);
            Cv2.EqualizeHist(grayImage, grayImage);

2、根据训练好的文件调用级联分类器CascadeClassifier的detectMultiScale多尺度监测

var cascade = new CascadeClassifier(@"..\..\CarsInfo\data\cascade.xml");

            var cars = cascade.DetectMultiScale(
                image: grayImage,
                scaleFactor: 1.1,
                minNeighbors: 2,
                flags: HaarDetectionType.DoRoughSearch | HaarDetectionType.ScaleImage,
                minSize: new Size(30, 30)
                );

3、查找rect并在图片上面绘制

foreach (var carRect in cars)

Cv2.Rectangle(srcImage, carRect, color, 3);

完毕

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是使用OpenCV进行汽车识别模型训练的简单步骤: 1. 收集和准备数据 首先,需要收集一些汽车的图片数据,并将其分为训练集和测试集。确保数据集中包含不同角度、不同颜色和不同大小的车辆图片。 2. 安装OpenCV 在开始训练模型之前,需要安装OpenCV库。可以通过以下命令在Java项目中添加OpenCV依赖: ```xml <dependency> <groupId>org.openpnp</groupId> <artifactId>opencv</artifactId> <version>3.4.0-1</version> </dependency> ``` 3. 提取特征 使用OpenCV的Haar特征分类器,可以提取车辆图片的特征。可以使用OpenCV自带的`opencv_createsamples`工具来创建正样本和负样本,然后使用`opencv_traincascade`工具来训练Haar分类器。 4. 训练模型 在提取特征后,可以使用OpenCV训练Haar分类器。训练过程可能需要一些时间,具体时间取决于数据集的大小和计算机的性能。训练完后,将生成一个XML文件,其中包含训练好的模型。 5. 测试模型 可以使用测试集测试训练好的模型。可以使用OpenCV的`CascadeClassifier`类来加载训练好的XML文件,并使用`detectMultiScale`方法来检测汽车。 ```java CascadeClassifier carDetector = new CascadeClassifier("path/to/trained/model.xml"); Mat image = Imgcodecs.imread("path/to/test/image.jpg"); MatOfRect cars = new MatOfRect(); carDetector.detectMultiScale(image, cars); ``` 以上是使用OpenCV训练汽车识别模型的大致步骤,具体实现细节可能因数据集和任务而异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

健忘的松鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值