当前位置: 首页 > news >正文

互感器铭牌图像识别系统

互感器铭牌图像识别系统

下面是一个完整的互感器铭牌图像识别系统,使用Python实现。该系统能够自动识别互感器铭牌图像中的关键信息,包括型号、序列号、额定参数等。

系统设计思路

互感器铭牌识别流程:

  1. 图像预处理:增强图像质量,提高识别准确率
  2. 文本区域检测:定位铭牌中的文字区域
  3. OCR识别:提取文字内容
  4. 信息解析:从识别结果中提取关键参数
  5. 结果验证:检查识别结果的合理性
import cv2
import numpy as np
import pytesseract
import re
import os
import matplotlib.pyplot as plt
from PIL import Image
from skimage import exposure, filters
from difflib import SequenceMatcher
from datetime import datetime
import json# 设置Tesseract路径(根据实际安装路径修改)
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'class TransformerPlateRecognizer:def __init__(self):self.recognized_data = {"model": None,"serial_number": None,"rated_voltage": None,"rated_current": None,"accuracy_class": None,"manufacturer": None,"production_date": None,"frequency": None,"insulation_level": None}self.common_manufacturers = ["ABB", "Siemens", "Schneider", "GE", "Mitsubishi", "Toshiba", "Hitachi", "Hyundai"]self.debug = Falseself.image_path = Noneself.preprocessed_image = Nonedef preprocess_image(self, image_path):"""图像预处理:增强对比度、降噪、二值化等"""self.image_path = image_path# 读取图像img = cv2.imread(image_path)if img is None:raise ValueError(f"无法读取图像: {image_path}")# 转换为灰度图gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 对比度增强 - CLAHEclahe = cv2.createCLAHE(clipLimit=3.0, tileGridSize=(8, 8))enhanced = clahe.apply(gray)# 降噪 - 非局部均值去噪denoised = cv2.fastNlMeansDenoising(enhanced, None, h=10, templateWindowSize=7, searchWindowSize=21)# 自适应阈值二值化binary = cv2.adaptiveThreshold(denoised, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)# 形态学操作 - 开运算去除小噪点kernel = np.ones((1, 1), np.uint8)processed = cv2.morphologyEx(binary, cv2.MORPH_OPEN, kernel)self.preprocessed_image = processedreturn processeddef detect_text_regions(self):"""检测文本区域"""if self.preprocessed_image is None:raise RuntimeError("请先预处理图像")# 使用轮廓检测找到文本区域contours, _ = cv2.findContours(self.preprocessed_image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 筛选出可能是文本的区域text_regions = []for contour in contours:x, y, w, h = cv2.boundingRect(contour)# 过滤掉太小的区域if w < 15 or h < 15:continue# 过滤掉太宽或太高的区域(可能是线条)if w > 5 * h or h > 3 * w:continuetext_regions.append((x, y, w, h))# 合并重叠的区域merged_regions = []text_regions = sorted(text_regions, key=lambda r: r[1])  # 按y坐标排序for region in text_regions:x, y, w, h = regionmerged = Falsefor i, merged_region in enumerate(merged_regions):mx, my, mw, mh = merged_region# 检查是否重叠if (x < mx + mw and x + w > mx and y < my + mh and y + h > my):# 合并区域nx = min(x, mx)ny = min(y, my)nw = max(x + w, mx + mw) - nxnh = max(y + h, my + mh) - nymerged_regions[i] = (nx, ny, nw, nh)merged = Truebreakif not merged:merged_regions.append(region)# 按从上到下、从左到右排序merged_regions = sorted(merged_regions, key=lambda r: (r[1], r[0]))# 绘制检测到的区域(调试用)if self.debug:debug_img = cv2.cvtColor(self.preprocessed_image, cv2.COLOR_GRAY2BGR)for (x, y, w, h) in merged_regions:cv2.rectangle(debug_img, (x, y), (x + w, y + h), (0, 255, 0), 2)plt.figure(figsize=(12, 8))plt.imshow(cv2.cvtColor(debug_img, cv2.COLOR_BGR2RGB))plt.t
http://www.lryc.cn/news/572891.html

相关文章:

  • 【系统规划与管理师第二版】1.2 信息技术及其发展
  • 阿里巴巴开源的 分布式事务解决方案Seata
  • A028自动升降机+S71200+HMI+主电路图+外部接线图+流程图+IO分配表
  • HTTP与HTTPS深度解析:从明文传输到安全通信的演进之路
  • Hadoop 技术生态体系
  • 京运通601908,一只值得长期跟踪操作的波段投资标的,两个指标即可做好
  • 迅为RK3562开发板Android 设置系统默认不锁屏
  • [论文阅读] 人工智能+软件工程 | 用大语言模型架起软件需求形式化的桥梁
  • 游戏架构中的第三方SDK集成艺术:构建安全高效的接入体系
  • subprocess.check_output和stdout有什么不同 还有run和popen
  • Docker 常用运维命令
  • 【系统规划与管理师第二版】1.3 新一代信息技术及发展
  • React ahooks——useRequest
  • 空壳V3.0,免费10开!
  • PowerShell批量处理文件名称/内容的修改
  • 【量化】策略交易之相对强弱指数策略(RSI)
  • websocket入门到实战(详解websocket,实战聊天室,消息推送,springboot+vue)
  • 【Docker基础】Docker镜像管理:docker commit详解
  • 【flink】 flink 读取debezium-json数据获取数据操作类型op/rowkind方法
  • “地标界爱马仕”再拓疆域:世酒中菜联袂赤水金钗石斛定义中国GI
  • GM DC Monitor v2.0 卸载教程
  • 通达信 多空寻龙指标系统:精准捕捉趋势转折与强势启动信号 幅图指标
  • Java八股文——消息队列「场景篇」
  • 思辨场域丨AR技术如何重塑未来学术会议体验?
  • 汽车加气站操作工考试题库含答案【最新】
  • 华为 FreeArc耳机不弹窗?
  • 容器技术人们与DOCKER环境部署
  • OSPF 路由协议基础实验
  • ZeroSearch:阿里开源无需外接搜索引擎的RL框架,显著提升LLM的搜索能力!!
  • AMHS工程项目中-MCS-STKC之间的office 测试场景的介绍