资源简介

自己写的毕业设计,基于openCV车牌识别的小区门禁系统,软件已经全部完成,所有功能都已完善,直接载入图片就可以识别车牌,字符的识别准确率98%以上,可以识别中文

资源截图

代码片段和文件信息

#include “base.h“


void Run_pthread::customEvent(QEvent *pEvent)
{

}

CWinEvent::CWinEvent(int msgtype const char *path) : QEvent(QEvent::Type(QEvent::User+1))
{
    m_Type = msgtype;
    strcpy(m_Path path);
}

CWinEvent::CWinEvent(int msgtype QString plate QString time) : QEvent(QEvent::Type(QEvent::User+1))
{
    m_Type = msgtype;
    m_Plate = plate;
    m_Time = time;
}

CWinEvent::~CWinEvent()
{

}

int CWinEvent::GetType()
{
    return m_Type;
}

char *CWinEvent::GetPath()
{
    return m_Path;
}

QString CWinEvent::GetPlate()
{
    return m_Plate;
}

QString CWinEvent::GetTime()
{
    return m_Time;
}

void update_log(char *msg)
{
    int ret;
    char log[512] = {0};
    FILE *file = NULL;
    file = fopen(“log.txt“ “a+“);
    if(file == NULL)
        qDebug() << “open error“;

    QDateTime curtime = QDateTime::currentDateTime();
    sprintf(log “[%s] %s“ curtime.toString(QString::fromUtf8( “yyyy年MM月dd日 hh:mm:ss:zzz ddd“)).toUtf8().data()
             msg);
    ret = fprintf(file “%s\n“ log);
    if(ret == -1)
        qDebug() << QString::fromUtf8(“日志写入失败“);
    fclose(file);
}

int charge_type(QString plate)
{
    sqlite3 *db;
    sqlite3_stmt *stmt;
    int ret;

    ret = sqlite3_open(“mysqlite.DB3“ &db);
    if(ret != SQLITE_OK)
    {
        qDebug() << QString::fromUtf8(“打开数据库失败“);
        qDebug() << sqlite3_errmsg(db);
        return 0;
    }

    char sql[64] = “select * from OwnersInfo;“;
    sqlite3_prepare_v2(db sql -1 &stmt NULL);
    ret = sqlite3_step(stmt);

    const unsigned char * pplate;
    while( ret != SQLITE_DONE )
    {
      pplate = sqlite3_column_text( stmt1 );
      QString qplate = QString::fromUtf8((char *)pplate);
      if(qplate == plate)
      {
          sqlite3_finalize(stmt);
          sqlite3_close(db);
          return LOCAL;
      }
      ret = sqlite3_step(stmt);
    }
    sqlite3_finalize(stmt);
    //关闭数据库
    sqlite3_close(db);
    return FOREIGN;
}

void insert_InAndOut(QString plate QString time char *type)
{
    sqlite3 *db;
    sqlite3_stmt *stmt;
    int ret;

    ret = sqlite3_open(“mysqlite.DB3“ &db);
    if(ret != SQLITE_OK)
    {
        qDebug() << QString::fromUtf8(“打开数据库失败“);
        qDebug() << sqlite3_errmsg(db);
        return;
    }

    char sql[256] = {0};
    sprintf(sql “insert into InAndOutInfo (plate time type) values(‘%s‘ ‘%s‘ ‘%s‘);“
            plate.toUtf8().data() time.toUtf8().data() type);

    sqlite3_prepare(db sql -1 &stmt NULL);

    ret = sqlite3_step(stmt);
    if(ret != SQLITE_DONE)
    {
        qDebug() << QString::fromUtf8(“插入失败“) << sqlite3_errmsg(db);
    }

    sqlite3_finalize(stmt);
    sqlite3_close(db);
}


评论

共有 条评论