我想对100个车牌图片进行识别,main函数怎么改 public static void main(String[] args) { // 多张车牌图片路径 String[] imgPaths = {"res/image/test_image/plate_locate.jpg", "res/image/test_image/test.jpg", "res/image/test_image/plate_detect.jpg", "res/general_test/京A88731.jpg"}; int sum = imgPaths.length; // 总共处理的图片数量 int errNum = 0; // 识别错误的数量 int sumTime = 0; // 总耗时 long longTime = 0; // 最长处理时长 for (int i = 0; i < sum; i++) { opencv_core.Mat src = opencv_imgcodecs.imread(imgPaths[i]); String[] ret = multiPlateRecognise(src); long now = System.currentTimeMillis(); System.err.println(Arrays.toString(ret)); long s = System.currentTimeMillis() - now; if (s > longTime) { longTime = s; } sumTime += s; boolean flag =false;//是否有一个车牌号识别错误 for (String plate:ret) { if (plate != null && !"苏EUK722".equals(plate) && !"苏A0CP56".equals(plate) && !"沪BS7821".equals(plate) && !"京A88731".equals(plate)) { flag = true; break; } } if (flag) { errNum++; } } BigDecimal errSum = new BigDecimal(errNum); BigDecimal sumNum = new BigDecimal(sum); BigDecimal c = sumNum.subtract(errSum).divide(sumNum,2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)); System.err.println("总耗时:" + sumTime + "ms,平均处理时长:" + sumTime/sum + "ms,错误数量:" + errNum + ",正确识别率:" + c + "%"); } }
时间: 2024-02-14 21:16:33 浏览: 21
如果想对100个车牌图片进行识别,可以修改imgPaths数组中的路径,将其替换为100张车牌图片的路径,例如:
```
String[] imgPaths = {"res/image/test_image/plate_locate.jpg", "res/image/test_image/test.jpg", "res/image/test_image/plate_detect.jpg", "res/general_test/京A88731.jpg", "path/to/image1.jpg", "path/to/image2.jpg", ..., "path/to/image100.jpg"};
```
然后在循环中,将sum的值修改为100即可:
```
int sum = 100; // 总共处理的图片数量
```
运行程序即可对100张车牌图片进行识别并输出结果。
相关问题
封装一个汽车类,包含车牌号和车的价格以及修改价格的方法。java编写一个测试类,对汽车对象进行操作,根据折扣数修改汽车的价格,最后输出修改过后的汽车信息。
好的,以下是Java的实现方式:
```java
public class Car {
private String plateNumber;
private double price;
public Car(String plateNumber, double price) {
this.plateNumber = plateNumber;
this.price = price;
}
public void setPrice(double discount) {
this.price = this.price * discount;
}
public String getInfo() {
return "Plate number: " + this.plateNumber + ", Price: " + this.price;
}
}
```
在这个例子中,我们定义了一个名为 Car 的类,包含车牌号和价格属性以及修改价格的方法。我们使用构造函数 Car 来初始化一个实例对象,包含车牌号 plateNumber 和价格 price。
setPrice 方法接收一个 discount 参数,用于设置折扣数。我们将价格 price 乘以折扣数 discount,来得到修改后的价格。
getInfo 方法用于返回汽车信息,包括车牌号和价格。
接下来,我们编写一个测试类来操作 Car 对象:
```java
public class CarTest {
public static void main(String[] args) {
Car car1 = new Car("A12345", 100000);
System.out.println(car1.getInfo());
car1.setPrice(0.9); // 打9折
System.out.println(car1.getInfo());
}
}
```
在测试类中,我们创建了一个名为 car1 的汽车对象,并使用 getInfo 方法输出其信息。之后,我们调用 setPrice 方法,将 car1 的价格打九折,再次使用 getInfo 方法输出修改过后的信息。
输出结果如下:
```
Plate number: A12345, Price: 100000.0
Plate number: A12345, Price: 90000.0
```
以上就是Java中封装一个汽车类并编写一个测试类来操作汽车对象的示例。
用Java设计一个停车场信息管理系统,能够实现对停车位的信息管理(车位号、车主姓名、性别、年龄、 车牌号)。包含增删改查,最后,停车信息输出到out.txt中,下次打开可以读取数据的代码...
好的,我会为您解答这个问题。
首先,我们需要设计一个停车位信息的类,属性包括车位号、车主姓名、性别、年龄、车牌号。代码如下:
```java
public class ParkingInfo {
private int parkingNumber;
private String ownerName;
private String gender;
private int age;
private String carNumber;
// 构造函数
public ParkingInfo(int parkingNumber, String ownerName, String gender, int age, String carNumber) {
this.parkingNumber = parkingNumber;
this.ownerName = ownerName;
this.gender = gender;
this.age = age;
this.carNumber = carNumber;
}
// getter和setter方法
public int getParkingNumber() {
return parkingNumber;
}
public void setParkingNumber(int parkingNumber) {
this.parkingNumber = parkingNumber;
}
public String getOwnerName() {
return ownerName;
}
public void setOwnerName(String ownerName) {
this.ownerName = ownerName;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getCarNumber() {
return carNumber;
}
public void setCarNumber(String carNumber) {
this.carNumber = carNumber;
}
}
```
接下来,我们设计一个停车场信息管理系统类,包含增删改查和输出到文件的方法。代码如下:
```java
import java.io.*;
public class ParkingManagementSystem {
private ParkingInfo[] parkingInfoList;
private int size;
// 构造函数
public ParkingManagementSystem() {
parkingInfoList = new ParkingInfo[100];
size = 0;
}
// 增加停车信息
public void addParkingInfo(ParkingInfo parkingInfo) {
parkingInfoList[size] = parkingInfo;
size++;
}
// 删除停车信息
public void deleteParkingInfo(int parkingNumber) {
for (int i = 0; i < size; i++) {
if (parkingInfoList[i].getParkingNumber() == parkingNumber) {
for (int j = i; j < size - 1; j++) {
parkingInfoList[j] = parkingInfoList[j + 1];
}
size--;
break;
}
}
}
// 修改停车信息
public void modifyParkingInfo(int parkingNumber, ParkingInfo newParkingInfo) {
for (int i = 0; i < size; i++) {
if (parkingInfoList[i].getParkingNumber() == parkingNumber) {
parkingInfoList[i] = newParkingInfo;
break;
}
}
}
// 查找停车信息
public ParkingInfo searchParkingInfo(int parkingNumber) {
for (int i = 0; i < size; i++) {
if (parkingInfoList[i].getParkingNumber() == parkingNumber) {
return parkingInfoList[i];
}
}
return null;
}
// 输出到文件
public void outputToFile() {
try {
FileWriter fileWriter = new FileWriter("out.txt");
for (int i = 0; i < size; i++) {
fileWriter.write(parkingInfoList[i].getParkingNumber() + " ");
fileWriter.write(parkingInfoList[i].getOwnerName() + " ");
fileWriter.write(parkingInfoList[i].getGender() + " ");
fileWriter.write(parkingInfoList[i].getAge() + " ");
fileWriter.write(parkingInfoList[i].getCarNumber() + "\n");
}
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 从文件中读取数据
public void readFromFile() {
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader("out.txt"));
String line;
while ((line = bufferedReader.readLine()) != null) {
String[] splitLine = line.split(" ");
ParkingInfo parkingInfo = new ParkingInfo(Integer.parseInt(splitLine[0]), splitLine[1], splitLine[2], Integer.parseInt(splitLine[3]), splitLine[4]);
addParkingInfo(parkingInfo);
}
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
最后,我们可以在主函数中测试我们的停车场信息管理系统。代码如下:
```java
public class Main {
public static void main(String[] args) {
ParkingManagementSystem parkingManagementSystem = new ParkingManagementSystem();
// 增加停车信息
ParkingInfo parkingInfo1 = new ParkingInfo(1, "张三", "男", 30, "粤A12345");
ParkingInfo parkingInfo2 = new ParkingInfo(2, "李四", "女", 25, "粤B23456");
ParkingInfo parkingInfo3 = new ParkingInfo(3, "王五", "男", 35, "粤C34567");
parkingManagementSystem.addParkingInfo(parkingInfo1);
parkingManagementSystem.addParkingInfo(parkingInfo2);
parkingManagementSystem.addParkingInfo(parkingInfo3);
// 删除停车信息
parkingManagementSystem.deleteParkingInfo(2);
// 修改停车信息
ParkingInfo newParkingInfo = new ParkingInfo(1, "张三", "男", 30, "粤D45678");
parkingManagementSystem.modifyParkingInfo(1, newParkingInfo);
// 查找停车信息
ParkingInfo parkingInfo = parkingManagementSystem.searchParkingInfo(1);
if (parkingInfo != null) {
System.out.println(parkingInfo.getOwnerName() + " " + parkingInfo.getCarNumber());
}
// 输出到文件
parkingManagementSystem.outputToFile();
// 读取文件中的数据
parkingManagementSystem.readFromFile();
// 查看停车信息
for (int i = 0; i < parkingManagementSystem.size; i++) {
System.out.println(parkingManagementSystem.parkingInfoList[i].getOwnerName() + " " + parkingManagementSystem.parkingInfoList[i].getCarNumber());
}
}
}
```
以上就是用Java设计一个停车场信息管理系统的全部内容。