当前位置:   article > 正文

基于Python-opencv的车牌识别系统_pathon 车牌识别

pathon 车牌识别

1.基于python-opencv的车牌识别,代码主要参考CSDN上几篇博主的代码,对预处理部分的代码进行了一定的优化,提高了识别的准确率。

2.重写了一个GUI界面,添加数据导出功能。


使用的模块版本:
PyQt5:5.11.3
opencv-python:3.4.3

运行截图如下:

代码实现步骤:

1.导入工程包

  1. import cv2
  2. import sys, os, xlwt
  3. import numpy as np

2.建立GUI界面,实现将图片导入,和到处识别数据

  1. class Ui_MainWindow(object):
  2. def __init__(self):
  3. self.RowLength = 0
  4. self.Data = [['文件名称', '录入时间', '车牌号码', '车牌类型', '识别耗时', '车牌信息']]
  5. def setupUi(self, MainWindow):
  6. MainWindow.setObjectName("MainWindow")
  7. MainWindow.resize(1213, 670)
  8. MainWindow.setFixedSize(1213, 670) # 设置窗体固定大小
  9. MainWindow.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
  10. self.centralwidget = QtWidgets.QWidget(MainWindow)
  11. self.centralwidget.setObjectName("centralwidget")
  12. self.scrollArea = QtWidgets.QScrollArea(self.centralwidget)
  13. self.scrollArea.setGeometry(QtCore.QRect(690, 10, 511, 491))
  14. self.scrollArea.setWidgetResizable(True)
  15. self.scrollArea.setObjectName("scrollArea")
  16. self.scrollAreaWidgetContents = QtWidgets.QWidget()
  17. self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 509, 489))
  18. self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
  19. self.label_0 = QtWidgets.QLabel(self.scrollAreaWidgetContents)
  20. self.label_0.setGeometry(QtCore.QRect(10, 10, 111, 20))
  21. font = QtGui.QFont()
  22. font.setPointSize(11)
  23. self.label_0.setFont(font)
  24. self.label_0.setObjectName("label_0")
  25. self.label = QtWidgets.QLabel(self.scrollAreaWidgetContents)
  26. self.label.setGeometry(QtCore.QRect(10, 40, 481, 441))
  27. self.label.setObjectName("label")
  28. self.label.setAlignment(Qt.AlignCenter)
  29. self.scrollArea.setWidget(self.scrollAreaWidgetContents)
  30. self.scrollArea_2 = QtWidgets.QScrollArea(self.centralwidget)
  31. self.scrollArea_2.setGeometry(QtCore.QRect(10, 10, 671, 631))
  32. self.scrollArea_2.setWidgetResizable(True)
  33. self.scrollArea_2.setObjectName("scrollArea_2")
  34. self.scrollAreaWidgetContents_1 = QtWidgets.QWidget()
  35. self.scrollAreaWidgetContents_1.setGeometry(QtCore.QRect(0, 0, 669, 629))
  36. self.scrollAreaWidgetContents_1.setObjectName("scrollAreaWidgetContents_1")
  37. self.label_1 = QtWidgets.QLabel(self.scrollAreaWidgetContents_1)
  38. self.label_1.setGeometry(QtCore.QRect(10, 10, 111, 20))
  39. font = QtGui.QFont()
  40. font.setPointSize(11)
  41. self.label_1.setFont(font)
  42. self.label_1.setObjectName("label_1")
  43. self.tableWidget = QtWidgets.QTableWidget(self.scrollAreaWidgetContents_1)
  44. self.tableWidget.setGeometry(QtCore.QRect(10, 40, 651, 581)) # 581))
  45. self.tableWidget.setObjectName("tableWidget")
  46. self.tableWidget.setColumnCount(6)
  47. self.tableWidget.setColumnWidth(0, 140) # 设置1列的宽度
  48. self.tableWidget.setColumnWidth(1, 130) # 设置2列的宽度
  49. self.tableWidget.setColumnWidth(2, 65) # 设置3列的宽度
  50. self.tableWidget.setColumnWidth(3, 75) # 设置4列的宽度
  51. self.tableWidget.setColumnWidth(4, 65) # 设置5列的宽度
  52. self.tableWidget.setColumnWidth(5, 174) # 设置6列的宽度
  53. self.tableWidget.setHorizontalHeaderLabels(["图片名称", "录入时间", "识别耗时", "车牌号码", "车牌类型", "车牌信息"])
  54. self.tableWidget.setRowCount(self.RowLength)
  55. self.tableWidget.verticalHeader().setVisible(False) # 隐藏垂直表头)
  56. # self.tableWidget.setStyleSheet("selection-background-color:blue")
  57. # self.tableWidget.setAlternatingRowColors(True)
  58. self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)
  59. self.tableWidget.raise_()
  60. self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_1)
  61. self.scrollArea_3 = QtWidgets.QScrollArea(self.centralwidget)
  62. self.scrollArea_3.setGeometry(QtCore.QRect(690, 510, 341, 131))
  63. self.scrollArea_3.setWidgetResizable(True)
  64. self.scrollArea_3.setObjectName("scrollArea_3")
  65. self.scrollAreaWidgetContents_3 = QtWidgets.QWidget()
  66. self.scrollAreaWidgetContents_3.setGeometry(QtCore.QRect(0, 0, 339, 129))
  67. self.scrollAreaWidgetContents_3.setObjectName("scrollAreaWidgetContents_3")
  68. self.label_2 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
  69. self.label_2.setGeometry(QtCore.QRect(10, 10, 111, 20))
  70. font = QtGui.QFont()
  71. font.setPointSize(11)
  72. self.label_2.setFont(font)
  73. self.label_2.setObjectName("label_2")
  74. self.label_3 = QtWidgets.QLabel(self.scrollAreaWidgetContents_3)
  75. self.label_3.setGeometry(QtCore.QRect(10, 40, 321, 81))
  76. self.label_3.setObjectName("label_3")
  77. self.scrollArea_3.setWidget(self.scrollAreaWidgetContents_3)
  78. self.scrollArea_4 = QtWidgets.QScrollArea(self.centralwidget)
  79. self.scrollArea_4.setGeometry(QtCore.QRect(1040, 510, 161, 131))
  80. self.scrollArea_4.setWidgetResizable(True)
  81. self.scrollArea_4.setObjectName("scrollArea_4")
  82. self.scrollAreaWidgetContents_4 = QtWidgets.QWidget()
  83. self.scrollAreaWidgetContents_4.setGeometry(QtCore.QRect(0, 0, 159, 129))
  84. self.scrollAreaWidgetContents_4.setObjectName("scrollAreaWidgetContents_4")
  85. self.pushButton_2 = QtWidgets.QPushButton(self.scrollAreaWidgetContents_4)
  86. self.pushButton_2.setGeometry(QtCore.QRect(20, 50, 121, 31))
  87. self.pushButton_2.setObjectName("pushButton_2")
  88. self.pushButton = QtWidgets.QPushButton(self.scrollAreaWidgetContents_4)
  89. self.pushButton.setGeometry(QtCore.QRect(20, 90, 121, 31))
  90. self.pushButton.setObjectName("pushButton")
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/794427
推荐阅读
相关标签
  

闽ICP备14008679号