当前位置:网站首页>基于QT的tensorRT加速的yolov5
基于QT的tensorRT加速的yolov5
2022-07-03 03:06:00 【AphilGuo】
个人记录
yolov5Detection.h
#pragma once
#pragma execution_character_set("utf-8")
#include <QtWidgets/QMainWindow>
#include <opencv2/opencv.hpp>
#include "ui_Yolov5Detection.h"
#include <QLabel>
class Yolov5Detection : public QMainWindow
{
Q_OBJECT
public:
Yolov5Detection(QWidget *parent = Q_NULLPTR);
// ~Yolov5Detection();
void ShowImage(QImage& src);
QImage MatToImage(cv::Mat& image);
void YoloDetect(cv::Mat& image);
private:
Ui::Yolov5DetectionClass ui;
cv::Mat img;
cv::Mat c_img;
cv::Mat* temp_img;
QImage src;
QLabel* label;
int click_num=0;
int close_num = 0;
// cv::VideoCapture* capture;
private slots:
void on_OpenImagePushButton_clicked();
void on_DetectPushButton_clicked();
void on_OpenCamPushButton_clicked();
void on_ExitPushButton_clicked();
};
yolov5Detection.cpp
#include "Yolov5Detection.h"
#include <QFileDialog>
#include <QDir>
#include <QPixmap>
#include <QByteArray>
#include <QMessageBox>
#include <QLabel>
#include "Detection.h"
#include "yololayer.h"
#include <opencv2/dnn.hpp>
Yolov5Detection::Yolov5Detection(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
}
void Yolov5Detection::ShowImage(QImage& src)
{
label = new QLabel;
label->setPixmap(QPixmap::fromImage(src));
ui.ShowImageScrollArea->setWidget(label);
}
QImage Yolov5Detection::MatToImage(cv::Mat& img)
{
QImage new_img((uchar*)img.data, img.cols, img.rows, img.cols * 3, QImage::Format_BGR888);
return new_img;
}
void Yolov5Detection::on_OpenImagePushButton_clicked()
{
close_num = 1;
auto strPath = QFileDialog::getOpenFileName(nullptr, "选择图片", QDir::homePath(), "Images (*.jpg *.jpeg *png *bmp)");
this->src.load(strPath);
ShowImage(src);
cv::String imgPath = strPath.toStdString();
img = cv::imread(imgPath);
c_img = img.clone();
click_num = 0;
}
void Yolov5Detection::YoloDetect(cv::Mat& image)
{
Connect connect;
YOLOV5* yolo = connect.Create_YOLOV5_Object();
std::vector<cv::Rect> Boxes;
std::vector<const char*> ClassLables;
yolo->Initialize("./yolov5.engine", 0);
yolo->Detecting(image, Boxes, ClassLables);
connect.Delete_YOLOV5_Object(yolo);
}
void Yolov5Detection::on_DetectPushButton_clicked()
{
temp_img = new cv::Mat();
temp_img = &c_img;
QMessageBox::information(nullptr, "提示", "开始检测");
YoloDetect(*temp_img);
QImage temp = MatToImage(*temp_img);
ShowImage(temp);
click_num = 1;
}
void Yolov5Detection::on_OpenCamPushButton_clicked()
{
close_num = 0;
cv::VideoCapture capture;
capture.open(0);
while(true)
{
cv::Mat frame;
capture >> frame;
c_img = frame;
if (click_num%2==1)
YoloDetect(frame);
QImage temp = MatToImage(frame);
ShowImage(temp);
cv::waitKey(10);
if (close_num == 1)
break;
}
capture.release();
cv::destroyAllWindows();
}
void Yolov5Detection::on_ExitPushButton_clicked()
{
close_num = 1;
QWidget::close();
}
边栏推荐
- How to return ordered keys after counter counts the quantity
- ASP. Net core 6 framework unveiling example demonstration [02]: application development based on routing, MVC and grpc
- Force deduction ----- the minimum path cost in the grid
- Joking about Domain Driven Design (III) -- Dilemma
- Add automatic model generation function to hade
- I2C 子系统(三):I2C Driver
- Chart. JS multitooltip tag - chart js multiTooltip labels
- I2C 子系統(四):I2C debug
- About HTTP cache control
- Check log4j problems using stain analysis
猜你喜欢

Nasvit: neural architecture search of efficient visual converter with gradient conflict perception hypernetwork training

迅雷chrome扩展插件造成服务器返回的数据js解析页面数据异常

Add automatic model generation function to hade

From C to capable -- use the pointer as a function parameter to find out whether the string is a palindrome character

Xiaodi notes

Sous - système I2C (IV): débogage I2C

Deep reinforcement learning for intelligent transportation systems: a survey paper reading notes

左连接,内连接

Your family must be very poor if you fight like this!

The process of connecting MySQL with docker
随机推荐
HW initial preparation
[principles of multithreading and high concurrency: 1_cpu multi-level cache model]
Force freeing memory in PHP
分布式事务
C # general interface call
I2C 子系统(四):I2C debug
Cron表达式介绍
JMeter performance test JDBC request (query database to obtain database data) use "suggestions collection"
sql server 查詢指定錶的錶結構
Unity3d human skin real time rendering real simulated human skin real time rendering "suggestions collection"
Distributed transaction
Kubernetes cluster log and efk architecture log scheme
Sous - système I2C (IV): débogage I2C
当lambda没有输入时,是何含义?
L'index des paramètres d'erreur est sorti de la plage pour les requêtes floues (1 > Nombre de paramètres, qui est 0)
Agile certification (professional scrum Master) simulation exercises
Are there any recommended term life insurance products? I want to buy a term life insurance.
模糊查询时报错Parameter index out of range (1 > number of parameters, which is 0)
C语言初阶-指针详解-庖丁解牛篇
Three.js本地环境搭建