资源简介
opencv,python,工业反色二维码,自动识别,记录长度不合格数据
代码片段和文件信息
“““
这是最新版数二维码实时识别程序,已通过opencv函数实现摄像头颜色翻转和实时扫描
“““
import time
import ctypes
import sys
from cv2 import cv2 as cv2 # 在vscode里面直接import cv2会显示代码有问题,其实是没问题的,这种导入方式可以避免;
import pyzbar.pyzbar as pyzbar
import csv
“““这一部分是用来设置windows下颜色的“““
# 句柄号
STD_OUTPUT_HANDLE = -11
# 错误显示,前景色
FOREGROUND_RED = 0x04 # 红
FOREGROUND_GREEN = 0x02 # 绿
FOREGROUND_BLUE = 0x01 # 蓝
FOREGROUND_INTENSITY = 0x08 # 加亮
# 错误显示,背景色
BACKGROUND_WHITE = 0x47 # 白
BACKGROUND_INTENSITY = 0x80 # 加亮
color_error = FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_WHITE | BACKGROUND_INTENSITY
std_out_handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
def set_cmd_color(color handle=std_out_handle):
bool = ctypes.windll.kernel32.SetConsoleTextAttribute(handle color)
return bool
def reset_color():
set_cmd_color(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)
def print_color_text(color text):
set_cmd_color(color)
sys.stdout.write(‘%s\n‘ % text) # ==> print(text)
reset_color()
PATH_OK = “OK_record.csv“
found_ok = set()
duration = 2015
freq = 3000
check_num_config_path = “config.txt“ # 此文档为设置监测用字符位数,目前为30可依据需要更改,需要重启程序才可以
cam_config_path = “cam_config.txt“ # 此文档为设置摄像头序号,PC写1,笔记本写2。
with open(check_num_config_path “r“) as f:
check_data = f.readline()
print(f“当前数据长度限制为:{check_data}“)
with open(cam_config_path “r“) as l:
cam_info = l.readline()
print(f“检测到摄像头配置文件,当前使用摄像头序号为:{cam_info}“)
print(“摄像头唯一时,建议将该数字设置为1,笔记本建议设置为2“)
check_num = check_data
cam_num = cam_info
PATH_NOK = “NOK_record.csv“
found_nok = set()
capture = cv2.VideoCapture(0 cv2.CAP_DSHOW)
def main():
while True:
ret frame = capture.read() # 从摄像头获取每一帧
frame_gray = cv2.cvtColor(frame cv2.COLOR_BGR2GRAY) # 对帧进行灰度化
ret1 mask = cv2.threshold(frame_gray 175 255 cv2.THRESH_BINARY) # 对灰度化之后的帧进行二值化
mask_inv = cv2.bitwise_not(mask) # 对二值化后的图像取反,直接生成黑白页面
barcodes = pyzbar.decode(mask_inv) # 对每一帧进行解码
for barcode in barcodes:
barcode_data = barcode.data.decode(“utf-8“)
if len(barcode_data) != int(check_num):
# print(f“错误数据**bad_data**:\t{barcode_data}\t字符长度为:{len(barcode_data)}“)
# print_color_text(color_error f“错误数据**bad_data**:\t{barcode_data}\t字符长度为:{len(barcode_data)}“)
bad_data = barcode_data
# winsound.Beep(freq duration)
if bad_data not in found_nok:
with open(PATH_NOK “a+“) as f:
csv_write = csv.writer(f)
date = [bad_data time.strftime(“%Y-%m-%d %H:%M:%S“ time.localtime()) “长度“ len(barcode_data)]
csv_write.writerow(date)
print_color_text(color_error f“错误数据**bad_data**:\t{barcode_data}\t字符长度为:{len(barcode_data)}该数据已加入错误记录“)
found_nok.add(bad_data)
- 上一篇:python员工管理器
- 下一篇:图片分类,图像识别,目标检测
相关资源
- python员工管理器
- python实现A*和双向A*(启发式搜索)
- Python经典题目100道题
- Python Visual Basic 混合开发
- 亲密数对.py
- 人脸检测和识别(opencv3+python)
- python检测图片是否有人脸
- 12306抢票代码(基于python2)
- python简单爬虫
- python 画黄花代码(基于Turtle)
- python 常用方法实现()
- python 经典款打飞机
- 知网爬虫软件(python)
- python实现一元线性回归.py
- python3环境搭建教程.ppt
- python合并多个mp4视频文件成一个mp4文
- 中山大学-自然语言处理-中文分词项目
- Python其它开发工具的安装与使用.ppt
- Computer Vision with Python 3
- python入门全套PPT
- a*算法的python版
- python爬虫爬取微博热搜
- 二维码识别+RGB识别+色环识别+通过串
- python爬虫爬取旅游信息(附源码,c
- python爬虫爬取豆瓣电影信息
- 网页遥控小车 Python web (基于RPi.GPI
- python 采集360的图片地址到文本文件
- Python简单小游戏 五子棋
- python基础题库(附答案).docx(共54页
- Python RC4算法
评论
共有 条评论