Python+Qt Fingerprint Entry Recognition Attendance System

Python+Qt Fingerprint Entry Recognition Attendance System

If you need to install the operating environment or remote debugging, see the personal QQ business card at the bottom of the article, and professional and technical personnel will assist remotely!

foreword

This blog writes code for <<Python+Qt Fingerprint Entry Recognition Attendance System>>, the code is neat, regular and easy to read. The first choice for learning and application recommendation.

Article directory

1. Required tool software

2. Use steps

1. Import library

2. Identify image features

3. Running results

3. Online assistance

1. Required tool software

1. Pycharm, Python

2. Qt, OpenCV

2. Use steps

1. Import library

The code is as follows (example):

# coding:utf-8
import sys
import os
import csv
import cv2
import record
import name
from PyQt5 import QtWidgets
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from shutil import copyfile
from sys import exit
import os
from login import *
from register import *

2. Identify image features

The code is as follows (example):

       name=f.read()
        print("f",name)
        f.close()

        # 均值哈希算法
        def aHash(img):
            # 缩放为8*8
            img = cv2.resize(img, (8, 8), interpolation=cv2.INTER_CUBIC)
            # 转换为灰度图
            gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
            # s为像素和初值为0,hash_str为hash值初值为''
            s = 0
            hash_str = ''
            # 遍历累加求像素和
            for i in range(8):
                for j in range(8):
                    s = s + gray[i, j]
            # 求平均灰度
            avg = s / 64
            # 灰度大于平均值为1相反为0生成图片的hash值
            for i in range(8):
                for j in range(8):
                    if gray[i, j] > avg:
                        hash_str = hash_str + '1'
                    else:
                        hash_str = hash_str + '0'
            return hash_str

        # 差值感知算法
        def dHash(img):
            # 缩放8*8
            img = cv2.resize(img, (9, 8), interpolation=cv2.INTER_CUBIC)
            # 转换灰度图
            gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
            hash_str = ''
            # 每行前一个像素大于后一个像素为1,相反为0,生成哈希
            for i in range(8):
                for j in range(8):
                    if gray[i, j] > gray[i, j + 1]:
                        hash_str = hash_str + '1'
            return hash_str

        # Hash值对比
        def cmpHash(hash1, hash2):
            n = 0
            # hash长度不同则返回-1代表传参出错
            if len(hash1) != len(hash2):
                return -1
            # 遍历判断
            for i in range(len(hash1)):
                # 不相等则n计数+1,n最终为相似度
                if hash1[i] != hash2[i]:
                    n = n + 1
            return n

        import os
        path = "fingerDataBase/"
        file_list = os.listdir(path)
        for file in file_list:
            img1 = cv2.imread('temp/new.jpg')
            BasePath="fingerDataBase/" + str(file)
            print("BasePath: ", BasePath)
            img2 = cv2.imread(BasePath)
            print("img2: ",img2)
            hash1 = aHash(img1)

            hash1 = dHash(img1)
            hash2 = dHash(img2)
            print(hash1)
            print(hash2)
            n = cmpHash(hash1, hash2)
            print("n",n)
            print('差值哈希算法相似度:' + str(n))
            result='相似度:' + str(100-n)+", 通过"

3. The running results are as follows

3. Online assistance:

If you need to install the operating environment or remote debugging, see the personal QQ business card at the bottom of the article, and professional and technical personnel will assist remotely!
1) Remote installation and operation environment, code debugging
2) Qt, C++, Python entry guide
3) Interface beautification
4) Software production

Articles recommended by bloggers: https://blog.csdn.net/alicema1111/article/details/123851014

Personal blog homepage: https://blog.csdn.net/alicema1111?type=blog

Click here for all blogger articles: https://blog.csdn.net/alicema1111?type=blog

Guess you like

Origin blog.csdn.net/alicema1111/article/details/129338432