python车辆识别硬件_Opencv python之车辆识别项目
图片车辆识别
根据文章搭建好环境后开始进行做项目linkimport sys
import cv2
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon, QPalette, QPixmap, QBrush, QRegExpValidator
class mainWin(QWidget):
def __init__(self):
"""
构造函数
"""
super().__init__()
self.initUI()
self.openBtn.clicked.connect(self.openFile) # 信号和槽
self.grayBtn.clicked.connect(self.imgGray) # 信号和槽
self.carCheckBtn.clicked.connect(self.carCheck)
def initUI(self):
# 设置窗口得大小
self.setFixedSize(860, 600)
# 图标和背景
self.setWindowTitle("车辆检测")
self.setWindowIcon(QIcon("img/icon.jpg")) # 图标
# 标签
self.leftLab = QLabel("原图:", self)
self.leftLab.setGeometry(10, 50, 400, 400) # 设置绝对位置
self.leftLab.setStyleSheet("background:white")
self.newLab = QLabel("新图:", self)
self.newLab.setGeometry(420, 50, 400, 400) # 设置绝对位置
self.newLab.setStyleSheet("background-color:white")
# 按钮
self.openBtn = QPushButton(" 打开文件", self)
self.openBtn.setGeometry(10, 10, 80, 30)
self.grayBtn = QPushButton(" 灰度处理", self)
self.grayBtn.setGeometry(100, 10, 80, 30)
self.carCheckBtn = QPushButton(" 视频检测", self)
self.carCheckBtn.setGeometry(200, 10, 80, 30)
打开文件方法def openFile(self):
"""
打开文件的处理函数
:return;
:return:
"""
print("打开图片")
self.img,imgType = QFileDialog.getOpenFileName(self, "打开图片", "", "*.jpg;;*.png;;ALL FILES(*)")
print(self.img)
#jpg = QPixmap(self.img)
self.leftLab.setPixmap(QPixmap(self.img))
self.leftLab.setScaledContents(True)def imgGray(self):
print("灰度")
img1 = cv2.imread(self.img)
#1. 灰度化处理
img_gray = cv2.cvtColor(img1, cv2.COLOR_RGB2GRAY)
# BGR = cv2.cvtColor(module,cv2.COLOR_BGR2RGB)# 转化为RGB格式
# ret,thresh = cv2.threshold(gray, 200, 255, cv2.THRESH_BINARY)#二值化
#2. 加载级联分类器
car_detector = cv2.CascadeClassifier("./cars.xml")
"""
image--图片像素数据
scaleFactor=None,缩放比例
minNeighbors=None,2 写2就是3
flags =None, 标志位 用什么来进行检测
minSize=None,最小的尺寸
maxSize=None,最大的尺寸
self, image, scaleFactor=None, minNeighbors=None, flags=None, minSize=None, maxSize=None
"""
#3. 检测车辆 多尺度检测,得到车辆的坐标定位
cars = car_detector.detectMultiScale(img_gray, 1.05, 2, cv2.CASCADE_SCALE_IMAGE, (20,20), (100,100))
print(cars)
#(274 46 28 28) --(x,y,w,h)
#4. 在车的定位上画图
for(x, y, w, h) in cars:
print(x, y, w, h)
#img, pt1, pt2, color, thickness = None, lineType = None, shift = None
cv2.rectangle(img1,(x,y), (x+w, y+h), (255, 255, 255), 1, cv2.LINE_AA)
# 保存图片
img_gray_name = "3.png" # 文件名
cv2.imwrite(img_gray_name, img1) # 保存
# 显示再控件上面
self.newLab.setPixmap(QPixmap(img_gray_name))
self.newLab.setScaledContents(True)
视频车辆识别
视频打开且识别方法def carCheck(self):
print("车流检测")
# parent: QWidget = None, caption: str = '', directory: str = '', filter:
#1. 选择视频
video, videoType = QFileDialog.getOpenFileName(self, "打开视频", "", "*.mp4")
print(video, videoType)
# video --打开的视频filename
#2. 读取加载视频
cap = cv2.VideoCapture(video)
#3.读取一帧图片
while True:
status,img = cap.read()
if status:
# 灰度
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
# 2. 加载级联分类器
car_detector = cv2.CascadeClassifier("./cars.xml")
cars = car_detector.detectMultiScale(gray, 1.2, 2, cv2.CASCADE_SCALE_IMAGE, (25, 25), (200, 200))
# 画框框
for (x, y, w, h) in cars:
print(x, y, w, h)
# img, pt1, pt2, color, thickness = None, lineType = None, shift = None
cv2.rectangle(img, (x, y), (x + w, y + h), (255, 255, 255), 1, cv2.LINE_AA)
print("实时车流量", len(cars))
text = 'car number: '+str(len(cars))
# 添加文字
cv2.putText(img, text, (350, 100), cv2.FONT_HERSHEY_SIMPLEX, 1.2, (255, 255, 0), 2)
cv2.imshow("opencv", img)
key = cv2.waitKey(10) # 延时并且监听按键
if key == 27:
break
else:
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
主函数if __name__ == "__main__":
app = QApplication(sys.argv) #创建一个应用程序
win = mainWin() #实例化对象
win.show() #显示窗口
sys.exit(app.exec_())
python车辆识别硬件_Opencv python之车辆识别项目相关推荐
- python车牌字符分割_OpenCV+Python识别车牌和字符分割的实现
本篇文章主要基于python语言和OpenCV库(cv2)进行车牌区域识别和字符分割,开篇之前针对在python中安装opencv的环境这里不做介绍,可以自行安装配置! 车牌号检测需要大致分为四个部分 ...
- python仿真智能驾驶_opencv+python智能车道检测,助力无人驾驶
近年来,基于人工智能的车道检测算法得到了广泛的研讨.与传统的基于特征的方法相比,许多方法表现出了优越的功能.但是,当使用具有应战性的图像时,其准确率通常仍在低80%或高90%之间,甚至更低. 准确牢靠 ...
- python视频人脸检测_OpenCV + python 实现人脸检测(基于照片和视频进行检测)
OpenCV + python 实现人脸检测(基于照片和视频进行检测) Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征 ...
- python opencv 录制视频_OpenCV Python 录制视频
学到实用OpenCV调用笔记本电脑的摄像头,并录制视频保存到本地硬盘的时候,出现了一点故障,那就是获取到的文件总是为0KB.经过一番查找,终于找到了解决办法. 调用摄像头 调用摄像头作为本实验的基础是 ...
- python腐蚀膨胀代码_OpenCV+python实现膨胀和腐蚀的示例
1,概念及原理: 膨胀(Dilating) (或) (1)将图像 A 与任意形状的内核 (B),通常为正方形或圆形,进行卷积. (2)内核 B 有一个可定义的 锚点, 通常定义为内核中心点. (3)进 ...
- python实现运动模糊图像_OpenCV+Python实现图像运动模糊和高斯模糊
原标题:OpenCV+Python实现图像运动模糊和高斯模糊 运动模糊:由于相机和物体之间的相对运动造成的模糊,又称为动态模糊 OpenCV+Python实现运动模糊,主要用到的函数是cv2.filt ...
- python实现运动模糊图像_OpenCV+Python实现图像运动模糊和高斯模糊!它是编程界的PS!...
运动模糊: 由于相机和物体之间的相对运动造成的模糊,又称为动态模糊 OpenCV+Python实现运动模糊,主要用到的函数是cv2.filter2D(): # coding: utf-8 import ...
- python制作七夕礼物_OpenCV+Python制作程序七夕(情人节)礼物
1. 按 不知不觉七夕就过去了! 如果有对象,祝早生贵子!没有对象,祝早结连理! (搞笑一下,祝大家幸福美满吧,嘿嘿嘿) 给大家准备了一份已经写好的代码,利用Python+OpenCV+OpenPyX ...
- python opencv压缩图片_OpenCV Python 缩放图片
By 凌顺 2019年9月12日 本示例使用的OpenCV版本是:4.1.1 运行Python的编辑器:Jupyter notebook 示例目的 使用OpneCV的cv2.resize()函数对图片 ...
最新文章
- 3D点云补全算法汇总及最新进展
- 替换Android系统镜像system.img的方法
- 摩托罗拉移动员裁员重点是研发
- [javaweb] servlet的生命周期 (二)
- 语言 重量计算_R语言 第五章 高级绘图工具(4)
- VC6 + OpenCV1.0实现图片缩放显示
- php 依赖注入框架,依赖注入模式(Dependency Injection)
- PAT (Top Level) Practise 1008 Airline Routes(Tarjan模版题)
- 【Elasticsearch】Elasticsearch 缓存深度剖析:一次提高一种缓存的查询速度
- 人脸识别的三个评测标准
- sha2 替换sha1 时间表
- 细说static关键字及其应用
- 服务器接显示器重影,学生能够选择影音服务器中的考试试卷进行自测测试结束系统将自动批阅并显示标.doc...
- Oracle 根据汉字返回对应拼音的 函数
- python将word表格转写入excel
- 【经典论文解读】YOLO 目标检测
- 如何用c语言添加背景图片,如何实现在单文档的窗口背景上贴上图片?
- Win7计划任务命令
- 最全的 JVM 面试知识点(一):运行时数据区
- 用 C# 编写 USB 存储设备使用痕迹检测和删除工具
热门文章
- Android之严苛模式(StrictMode)
- Android之Timer和TimerTask的介绍
- 企业有了程序员为什么还要用 低代码/无代码
- 地理模块化施工的优点_模块化建筑适合学校的6个原因
- 围棋经典棋谱_秀秀老师:茶艺师也要学好围棋
- java黄油刀_一篇文章玩转ButterKnife,让代码更简洁
- vue2 怎么用vite_vue3vite简介
- 触发器及其应用实验报告总结_调机技巧总结: 先快后慢射胶法及其应用
- cad快捷命令大全_最全CAD快捷键命令大全(图文版、文字版、键盘版)
- 众望所归!中国机器狗能【后空翻】了。。。