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

【Java-tesseract】OCR图片文本识别

文章目录

  • 一、需求
  • 二、概述
  • 三、部署安装
  • 四、技术细节
  • 五、总结

一、需求

场景需求:是对识别常见的PNG,JPEG,TIFF,GIF图片识别,环境为离线内网。组件要求开源免费,并且可以集成Java生成接口服务。

二、概述

我不做选型对比了,我筛选测试了下Tesseract(v5.5.0)是比较符合我的需求的。其 支持多种图像格式进行光学字符识别(OCR),以下是 Tesseract 支持的主要图像格式:

  1. 常见图像格式:
  • PNG:无损压缩格式,是最常用的图像格式之一,适用于OCR,因为它可以保留图像细节。
  • JPEG(JPG):有损压缩格式,通常用于照片和复杂图像。尽管可能存在质量损失,Tesseract 依然能够处理 JPEG 格式的图像。
  • TIFF:一种无损压缩格式,常用于扫描文档。TIFF 格式通常比 JPEG 更适合OCR,因为它保留了更多细节。
  • BMP:位图格式,通常较大,但Tesseract也支持该格式。
  • GIF:支持的图像格式,尽管在颜色精度和压缩效率方面不如 PNG 或 TIFF。
  1. 支持的颜色模式:
    Tesseract 支持不同的颜色模式来处理图像:
  • RGB:标准的三通道图像,支持彩色图像。
  • Grayscale:灰度图像模式,通常用于文档图像。
  • Black & White (1-bit):黑白图像,通常在扫描的文档或手写文本中使用。
  1. 其他支持的图像格式:
    Tesseract 还支持通过某些图像处理库(如 PIL)处理的其他图像格式。通过 Python 的 pytesseract,你还可以使用一些其他图像格式,如:
  • WEBP:一种新的图像格式,常用于Web图片。
  • PPM/PGM:一个无损的图像格式,通常用于科学计算中。
  • HEIF:高级图像文件格式(如 iPhone 图片),Tesseract 可以通过额外的库来支持。
  1. 图像转换和预处理:
    尽管 Tesseract 支持多种格式,通常对于 OCR 的最佳效果,建议图像为高质量的灰度图像(即灰度模式)。如果原始图像格式过大或质量不高,可以考虑进行预处理,如:
  • 裁剪:去除不必要的边缘区域。
  • 二值化:将图像转换为黑白色调,以提高文字识别的准确性。
  • 去噪:去除背景噪音,有助于提高识别效果。
  • 旋转:如果文档有角度,可以对其进行旋转校正。
  1. 官网地址
  • github:tesseract-ocr地址
  • 官网文档:官网文档
  • 安装包地址:软件发行版下载地址

三、部署安装

我上传了下面两个部署包,提供给无法访问github的同学使用:部署包

  1. windwos下载:下载安装即可
    软件下载
  2. linux部署:需要下载.tar.gz源码包编译
    我这边使用ubuntu24.10容器部署编译了tesseract5.5.0,并且打包成了tar压缩包,需要的同学可以去这里下载。当然也可以自己用gcc编译。注意(该docker没有那种java等,属于一个轻量包,方便后续你进行扩展)
    我上传的文件地址:tesseract.tar
  • 使用方法:
#加载镜像文件
docker load -i tesseract.tar
#运行镜像
docker run -itd --name tesseract -v ./data:/data tesseract:v0
  • 调用服务
    若需要将tesseract提供给外部使用,需要使用java开发接口,通过http将服务暴露给外部使用。
#可以进入容器
docker exec -it tesseract /bin/bash
#执行一下命令解析图片测试,需要图片放到./data中挂载到容器的/data中,-l chi_sim是识别中文
tesseract input_image.png output_text -l chi_sim
  1. 整合包(重量)
    相对上述2,新增了整合了java和tesseract语言包的docker镜像tesseract-java,其可以开箱即用,但是很大有1.81G,需要7Z压缩下。
    整合包地址:整合包地址
    1.使用教程与上述2操作一致,区别如下:
1.容器中服务端口为8080,启动时你可以将端口暴露出来
2.jar包目录:/home
3.启动命令:sh /home/start.sh start
4.docker run -itd --name tesseract -p 8080:8080 wanchen/tesseract-java:v2
# 原谅我懒,没做成服务。。大家自己实现

2.服务调用

POST:http://服务节点IP:8080/orc/transform
form-data:file

请求

四、技术细节

  1. java代码调用tesseract
package com.develop.guide.service;
import lombok.extern.slf4j.Slf4j;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;
import java.util.concurrent.CompletableFuture;@Slf4j
@Service
public class OCRService {@Value("${ocr.path}")
//    我容器默认/usr/local/share/tessdataprivate String tessDataPath;@Value("${ocr.tempPath}")
//    文件临时存储地址private String tempFilePath;private final Tesseract tesseract;public OCRService() {// 初始化 Tesseract 对象this.tesseract = new Tesseract();tesseract.setDatapath(tessDataPath);//可以选择设置 OCR 语言this.tesseract.setLanguage("eng+chi_sim");}/*** 将接口传输来的文件转换为String* @param multipartFile* @return* @throws Exception*/@Asyncpublic CompletableFuture<String> recognizeTextFromImage(MultipartFile multipartFile){File file = new File(tempFilePath+multipartFile.getOriginalFilename());String result = "";try {multipartFile.transferTo(file);result = tesseract.doOCR(file);} catch (IOException e) {log.error("转换前端文件异常!");throw new RuntimeException(e);} catch (TesseractException e) {log.error("ocr识别异常!");throw new RuntimeException(e);}finally {if (file.exists() && !file.delete()) {log.warn("临时文件删除失败: {}", file.getAbsolutePath());}}return CompletableFuture.completedFuture(result);}}
  1. pom
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.8</version><relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>5.11.0</version></dependency></dependencies>
  1. 接口
package com.develop.guide.controller;import com.develop.guide.service.OCRService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.util.concurrent.ExecutionException;/*** @author wanChen* @ClassName ORCController* @Description:* @Version 1.0*/
@RestController
@RequestMapping("/orc")
public class ORCController {private final OCRService ocrService;@Autowiredpublic ORCController(OCRService ocrService) {this.ocrService = ocrService;}@PostMapping("/transform")public String transform(@RequestParam("file") MultipartFile file) {String result = "无法识别:"+file.getName();try {result = ocrService.recognizeTextFromImage(file).get();} catch (InterruptedException e) {throw new RuntimeException(e);} catch (ExecutionException e) {throw new RuntimeException(e);}return result;}
}
  1. 启动类
package com.develop.guide;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;@SpringBootApplication
@EnableAsync
public class SpringbootGuideApplication {public static void main(String[] args) {SpringApplication.run(SpringbootGuideApplication.class, args);}}

五、总结

Tesseract 5.5.0 的优劣势分析

  1. 优势:
  • 高精度、多语言支持,适合处理各种语言的 OCR 任务。
  • 开放源代码,社区活跃,灵活且免费的 OCR 工具。
  • 强大的训练和微调能力,适合定制化应用。
  • 支持多种输出格式,能够适应不同的需求。
  • 跨平台支持,适用于 Linux、Windows 和 macOS。
  • 多线程支持,能够提升处理速度,尤其在处理大量图像时。
  1. 劣势:
  • 对图像质量敏感,需要良好的图像质量才能达到最佳效果。
  • 手写文字、特殊字体和复杂文档布局的识别效果较差。
  • 需要大量训练数据,且训练过程较为复杂。
  • 配置和使用相对复杂,特别是在高级功能和定制化应用时。
    总体来说,Tesseract 5.5.0 是一个非常强大且灵活的 OCR 工具,尤其适合需要进行自定义训练、批量 OCR 处理、以及开发开源项目的用户。对于一些特殊的应用场景(如手写识别、复杂布局文档等),可能需要考虑其他商业OCR软件或结合多种技术进行优化。

相关文章:

【Java-tesseract】OCR图片文本识别

文章目录 一、需求二、概述三、部署安装四、技术细节五、总结 一、需求 场景需求:是对识别常见的PNG,JPEG,TIFF,GIF图片识别&#xff0c;环境为离线内网。组件要求开源免费&#xff0c;并且可以集成Java生成接口服务。 二、概述 我不做选型对比了,我筛选测试了下Tesseract(v…...

sqlserver 数据库误删-用mdf和ldf文件恢复

1.准备好需要恢复的文件 2.安装sqlserver数据库&#xff0c;安装设置的实例目录要记清 3.将需要恢复的文件拷到实例所在目录下的DATA文件夹下 D:\安装时的实例目录\MSSQL10_50.MSSQLSERVER\MSSQL\DATA 4.打开 SQL Server Management Stadio执行以下命令 CREATE DATABASE 数…...

机器学习算法基础知识1:决策树

机器学习算法基础知识1&#xff1a;决策树 一、本文内容与前置知识点1. 本文内容2. 前置知识点 二、场景描述三、决策树的训练1. 决策树训练方式&#xff08;1&#xff09;分类原则-Gini&#xff08;2&#xff09;分类原则-entropy&#xff08;3&#xff09;加权系数-样本量&am…...

使用EasyExcel来动态生成表头

本文记录下使用EasyExcel来动态生成表头 文章目录 概述 概述...

梳理你的思路(从OOP到架构设计)_介绍Android的Java层应用框架03

目录 1、认识Android框架的实践技术 4个嫡系基类 誰來創建子類的對象呢? 2、Intent-based Programming 技术 嫡系应用子类之间如何互相沟通呢&#xff1f; 1、认识Android框架的实践技术 4个嫡系基类 • Android框架里提供了4个嫡系的基类&#xff0c;包括&#xff1a;…...

Html——10 关键字和描述

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>淘宝网</title><meta name"keywords" content"我要自学网,自学HTML,自学CSS"/><meta name"description" content"要设置…...

汇编学习笔记

汇编 1. debug指令 -R命令(register) 查看、改变CPU寄存器的内容 r ax 修改AX中的内容 -D命令(display) 查看内存中的内容 -E命令(enter) 改写内存中的内容 -U命令(unassenble反汇编) 将内存中的机器指令翻译成汇编指令 -T命令(trace跟踪) 执行一条机器指令 -A命令…...

【C++】统计正整数的位数:题目解析与代码优化

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述**题目要求&#xff1a;统计正整数的位数** &#x1f4af;我的代码实现**核心逻辑解析** &#x1f4af;老师的代码实现**老师代码逻辑解析** &#x1f4af;我的代码…...

CF2043b-B. Digits

题目链接 题意&#xff1a;给定两个整数n、d&#xff0c;要求找出排列成n!个d之后的数可以被1-9中奇数整除的数 题解&#xff1a; 主要是考察分类讨论&#xff1a; 被3整除&#xff0c;当d能被3整除时一定成立或者n > 3&#xff0c;当n > 3时n!一定包含因数3 被5整除&a…...

[文献阅读]ReAct: Synergizing Reasoning and Acting in Language Models

文章目录 摘要Abstract:思考与行为协同化Reason(Chain of thought)ReAct ReAct如何协同推理 响应Action&#xff08;动作空间&#xff09;协同推理 结果总结 摘要 ReAct: Synergizing Reasoning and Acting in Language Models [2210.03629] ReAct: Synergizing Reasoning an…...

React 高阶组件(HOC)

文章目录 一. 高阶组件&#xff08;HOC&#xff09;的定义二. HOC 的作用和优势三. HOC 的使用方式四. HOC 的注意事项和潜在问题五. 应用场景1. 权限控制与认证2. 数据获取与预加载3. 样式和主题管理4. 性能优化 - 缓存数据或组件渲染结果5. 日志记录与调试辅助 六. 总结 一. …...

module ‘django.db.models‘ has no attribute ‘FieldDoesNotExist‘

module ‘django.db.models’ has no attribute ‘FieldDoesNotExist’ xadmin报错 原因 django与xadmin版本不匹配。 django==3.2.7 xadmin-django==3.0.2解决方案 在xadmin/view/edit.py的388行改为 from django.core import exceptions if self.request_method ==...

仓颉语言实战——1. 类型

仓颉语言实战——1. 类型 仓颉语言&#xff08;Cangjie Language&#xff09;是一个现代化的、简洁而强大的编程语言&#xff0c;它的类型系统为高效开发提供了极大的支持。本篇文章将围绕仓颉语言中的类型系统展开&#xff0c;结合实战代码&#xff0c;帮助开发者快速掌握这一…...

大数据平台开发学习路线及技能

背景 最近项目涉及这方面&#xff0c;特地整理学习路线方便后续学习。 必备技能 一、编程语言 Java&#xff1a;大数据开发的基础语言&#xff0c;具有跨平台能力&#xff0c;可用于编写各种应用。 Python&#xff1a;机器学习和数据分析领域广泛使用的语言&#xff0c;易于…...

python报错ModuleNotFoundError: No module named ‘visdom‘

在用虚拟环境跑深度学习代码时&#xff0c;新建的环境一般会缺少一些库&#xff0c;而一般解决的方法就是直接conda install&#xff0c;但是我在conda install visdom之后&#xff0c;安装是没有任何报错的&#xff0c;conda list里面也有visdom的信息&#xff0c;但是再运行代…...

python-Flask:SQLite数据库路径不正确但是成功访问到了数据库,并对表进行了操作

出现了这个问题&#xff0c;就好像是我要去找在南方的人&#xff0c;然后我刚好不分南北&#xff0c;我认为的方向错了&#xff0c;实则方向对了。 在我针对复盘解决&#xff1a;sqlite3.OperationalError: unrecognized token: “{“-CSDN博客这个内容的时候&#xff0c;又出现…...

阿里云人工智能ACA(七)——计算机视觉基础

一、自然语言处理基本介绍 1. 自然语言处理的定义 1-1 自然语言 人类使用的在社会生活中自然形成的语言 1-2 自然语言处理 目标是让计算机能够理解、解析、生成和处理人类的自然语言 包含自然语言理解和自然语言生成两部分组成 2. 自然语言处理的发展趋势 3.自然语言处理…...

计算机组成(1)——CPU与存储器的连接

目录 CPU与存储器的连接 1.内存条的设计思路 如何读取存储元上是0还是1 存储数据1010 系统的将这些存储元连接起来 2.译码器的原理 3.加入控制电路 4.位扩展 5.字扩展 CPU与存储器的连接 1.内存条的设计思路 内存条&#xff1a;存储体、MAR&#xff08;地址寄存器&am…...

MySQL学习之表查询操作

MySQL学习之表查询操作 准备数据 创建数据表和导入数据 CREATE TABLE user (id INT COMMENT 编号,name VARCHAR (10) COMMENT 姓名,gender CHAR(1) COMMENT 性别,age TINYINT UNSIGNED COMMENT 年龄,phone VARCHAR(11) COMMENT 手机号,idcard CHAR(18) COMMENT 身份证号,addre…...

GitHub 桌面版配置 |可视化界面进行上传到远程仓库 | gitLab 配置【把密码存在本地服务器】

&#x1f947; 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 &#x1f389; 声明: 作为全网 AI 领域 干货最多的博主之一&#xff0c;❤️ 不负光阴不负卿 ❤️ 文章目录 桌面版安装包下载clone 仓库操作如下GitLab 配置不再重复输入账户和密码的两个方…...

六十:HTTP/2与gRPC框架

随着互联网技术的发展&#xff0c;应用程序之间的通信需求日益复杂和多样化。传统的HTTP/1.x协议虽然广泛应用&#xff0c;但在性能和功能方面已经难以满足现代应用的需求。为了解决这些问题&#xff0c;HTTP/2协议和基于其之上的gRPC框架应运而生。本文将介绍HTTP/2协议的特点…...

普通的树形数据primevue的treetable组件的treetable[ ]

1&#xff0c;核心思想就是缺什么属性加什么属性 1.原始数据 原始数据本身就是树状&#xff0c;只是不是TreeNode类型的数组&#xff0c;这样的数据&#xff0c;primevue的treetable组件是展示不出来的&#xff0c;自己把这个数组转成node类型的&#xff0c;会有一个难解决的…...

数据库设计问题记录

唯一性约束和逻辑删除的冲突 问题描述 如果一张表中&#xff0c;存在唯一性约束&#xff0c;比如一些数据中的code&#xff0c;且数据表使用逻辑删除。当删除某行数据的时候&#xff0c;以后再次插入相同code的数据&#xff0c;数据库会报错。 问题分析 在逻辑删除中&#…...

基于springboot的汽车租赁系统丨源码+数据库+万字文档+PPT

作者简介&#xff1a; 作者&#xff1a;学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”&#xff0c;支持远程部署调试、运行安装。 技术框架 开发语言&#xff1a;Java 框架&#xff1a;spring…...

计算机毕业设计hadoop+spark+hive民宿推荐系统 酒店推荐系统 民宿价格预测 酒店价格 预测 机器学习 深度学习 Python爬虫 HDFS集群

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

从0入门自主空中机器人-2-2【无人机硬件选型-PX4篇】

1. 常用资料以及官方网站 无人机飞控PX4用户使用手册&#xff08;无人机基本设置、地面站使用教程、软硬件搭建等&#xff09;&#xff1a;https://docs.px4.io/main/en/ PX4固件开源地址&#xff1a;https://github.com/PX4/PX4-Autopilot 飞控硬件、数传模块、GPS、分电板等…...

渗透测试常用术语总结

一、攻击篇 1&#xff0e;攻击工具 肉鸡 所谓“肉鸡”是一种很形象的比喻&#xff0c;比喻那些可以被攻击者控制的电脑、手机、服务器或者其他摄像头、路由器等智能设备&#xff0c;用于发动网络攻击。 例如在2016年美国东海岸断网事件中&#xff0c;黑客组织控制了大…...

Spring Boot 介绍与应用

什么是 Spring Boot&#xff1f; Spring Boot 是一个用于简化 Spring 应用程序开发和部署的框架&#xff0c;它建立在 Spring 框架的基础之上&#xff0c;但去除了繁琐的配置。Spring Boot 采用“约定优于配置”的原则&#xff0c;默认启用了大量自动配置&#xff0c;使得开发…...

前端:改变鼠标点击物体的颜色

需求&#xff1a; 需要改变图片中某一物体的颜色&#xff0c;该物体是纯色&#xff1b; 鼠标点击哪个物体&#xff0c;哪个物体的颜色变为指定的颜色&#xff0c;利用canvas实现。 演示案例 代码Demo <!DOCTYPE html> <html lang"en"><head>&l…...

基于Android的校园导航系统

基于Android的校园导航系统是一种专为校园环境设计的移动应用程序&#xff0c;旨在帮助学生、教职工及访客快速、准确地找到校园内的目的地。以下是对基于Android的校园导航系统的详细介绍&#xff1a; 一、系统概述 基于Android的校园导航系统通常包括客户端&#xff08;移动…...

ipad如何做副屏(Windows/Mac Moonlight Sunshine)

Windows 被连接主机&#xff08;Windows&#xff09; 要使用的话需要固定ip&#xff0c;不然ip会换来换去&#xff0c;固定ip方法本人博客有记载Github下载Sunshine Sunshine下载地址除了安装路径需要改一下&#xff0c;其他一路点安装完成后会打开Sunshine的Web UI&#xff…...

微信小程序页面传参长度问题

需求&#xff1a;a页面传递参数到b页面&#xff0c;传递的参数是一个对象&#xff0c;需要进行json转换&#xff0c;但在小程序中传递的参数长度是有限制的&#xff0c;因此我们传递的时候可以&#xff0c;但是接收的时候&#xff0c;往往会被自动截取掉超出的部分&#xff0c;…...

Redis 安装部署[主从、哨兵、集群](windows版)

说明&#xff1a;该方式建议仅用于自己研究&#xff0c;不建议用于生产 linux 版本见&#xff1a;Redis 安装部署[主从、哨兵、集群]&#xff08;linux版&#xff09; 一、Redis 下载安装 下载 下载地址&#xff1a;https://github.com/zkteco-home/redis-windows/releases?…...

反应力场的生成物、反应路径分析方法

关注 M r . m a t e r i a l , \color{Violet} \rm Mr.material\ , Mr.material , 更 \color{red}{更} 更 多 \color{blue}{多} 多 精 \color{orange}{精} 精 彩 \color{green}{彩} 彩&#xff01; 主要专栏内容包括&#xff1a; †《LAMMPS小技巧》&#xff1a; ‾ \textbf…...

安卓音频之dumpsys audio

目录 概述 详述 dumpsys audio 1、音频服务生命周期的事件日志 2、音频焦点事件日志 3、音频流音量信息 4、音量组和设备的相关信息 5、铃声模式 6、音频路由 7、其他状态信息 8、播放活动监控信息 9、录音活动记录 10、AudioDeviceBroker 的记录 11、音效&#…...

StableAnimator模型的部署:复旦微软提出可实现高质量和高保真的ID一致性人类视频生成

文章目录 一、项目介绍二、项目部署模型的权重下载提取目标图像的关节点图像&#xff08;这个可以先不看先用官方提供的数据集进行生成&#xff09;提取人脸&#xff08;这个也可以先不看&#xff09;进行图片的生成 三、模型部署报错 一、项目介绍 由复旦、微软、虎牙、CMU的…...

蓝桥杯真题 - 异或和 - 题解

题目链接&#xff1a;https://www.lanqiao.cn/problems/3549/learning/ 个人评价&#xff1a;难度 3 星&#xff08;满星&#xff1a;5&#xff09; 前置知识&#xff1a;树状数组&#xff0c;dfs 序 整体思路 查询以节点 x x x 为根的子树下所有节点异或和&#xff0c;用 …...

【ES6复习笔记】let 和 const 命令(1)

ES6 中的 let 和 const 关键字 1. let 关键字 let 关键字用于声明一个变量&#xff0c;它具有块级作用域&#xff0c;这意味着变量只在声明它的块内有效。与 var 不同&#xff0c;let 不允许在同一作用域内重复声明同一个变量。 2. const 关键字 const 关键字用于声明一个常…...

ReconFusion: 3D Reconstruction with Diffusion Priors 论文解读

目录 一、概述 二、相关工作 1、稀疏视角NeRF 2、用于视角合成的回归模型 3、用于视角合成的生成模型 4、2D扩散用于3D生成 三、ReconFusion 四、实验 一、概述 提出可以利用三张图片生成实景三维重建的方法ReconFusion。并且在合成数据集和多视图数据集上进行训练&…...

企业安装加密软件有什么好处?

加密软件为企业的安全提供了很多便利&#xff0c;从以下几点我们看看比较重要的几个优点&#xff1a; 1、数据保护&#xff1a;企业通常拥有大量的商业机密、客户数据、技术文档等敏感信息。加密软件可以对这些信息进行加密处理&#xff0c;防止未经授权的人员访问。即使数据被…...

Linux(Centos 7.6)目录结构详解

Linux(Centos 7.6)是一个操作系统&#xff0c;其核心设计理念是将一切资源抽象为文件&#xff0c;即一切皆文件。比如系统中的硬件设备硬盘、网络接口等都被视为文件。Windows系统一般是分为C、D、E盘。而Linux(Centos 7.6)是以斜线"/"作为文件系统的开始目录&#x…...

GXUOJ-算法-第二次作业

1.矩阵连&#xff08;链&#xff09;乘 问题描述 GXUOJ | 矩阵连乘 代码解答 #include<bits/stdc.h> using namespace std;const int N50; int m[N][N]; int p[N]; int n;int main(){cin>>n;//m[i][j] 存储的是从第 i 个矩阵到第 j 个矩阵这一段矩阵链相乘的最小…...

BGP基础配置

使用直连接口IP地址来建立EBGP对等体关系 1、启动BGP协议 [r1]bgp 100 ----启动BGP协议&#xff0c;并且规定其AS号2、配置设备的RID数值&#xff0c;一般选择设备的loopback接口的IP地址 [r1-bgp]router-id 1.1.1.13、配置BGP对等体信息&#xff0c;包含了对等体的IP地址以及…...

瑞芯微全新芯片平台RK3506优势详解,高集成低功耗,为工业而生 触觉智能测评

RK3506是瑞芯微Rockchip在2024年第四季度全新推出的Arm嵌入式芯片平台&#xff0c;三核Cortex-A7单核Cortex-M0多核异构设计&#xff0c;CPU频率达1.5Ghz, M0 MCU为200Mhz。 而RK3506芯片平台下的工业级芯片型号RK3506J&#xff0c;具备-40-85℃的工业宽温性能、发热量小&#…...

Alice与Bob

Alice与Bob factordb.com 用上面链接可以直接分解 得到101999和966233 按照要求让小的放前面大的放后面得到 接着进行MD5的32位小写哈希 MD5在线加密/解密/破解—MD5在线 flag{d450209323a847c8d01c6be47c81811a}...

【玩转MacBook】Git安装

Git 官网也提到了MacBook 可以使用 Homebrew 安装 Git&#xff0c;所以在此使用 Homebrew 安装。 1、安装 Homebrew 执行安装脚本 在 Terminal 中执行如下命令&#xff1a; /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.…...

【IC验证】verilog及systemverilog特殊特性的分析

verilog及systemverilog特殊特性的分析 1.概述2.赋值延迟&#xff08;0&#xff09;总结&#xff08;1&#xff09;情况一&#xff1a;initial中进行阻塞赋值和非阻塞赋值&#xff08;不延迟&#xff09;a代码b 电路图c 结果 &#xff08;2&#xff09;时钟a 代码b 电路图c 结果…...

Apollo中间件技术:从入门到精通

一、引言 在Java开发的微服务架构中&#xff0c;配置管理是一个不可或缺的重要环节。随着服务数量的增加和部署环境的复杂化&#xff0c;传统的手动配置管理方式已难以满足需求。Apollo作为一款开源的分布式配置中心&#xff0c;凭借其强大的功能和灵活的架构&#xff0c;成为…...

汽车行业的MES系统方案(附案例资料合集)

针对汽车行业的MES系统方案&#xff0c;以下是一些关键点和实施案例&#xff1a; 核心功能&#xff1a; 实时监控&#xff1a;MES系统通过传感器和物联网技术实时监控生产线上的每一个环节&#xff0c;确保信息的及时传递。数据分析&#xff1a;系统对收集的数据进行深度分析&a…...

Python入门:7.Pythond的内置容器

引言 Python 提供了强大的内置容器&#xff08;container&#xff09;类型&#xff0c;用于存储和操作数据。容器是 Python 数据结构的核心部分&#xff0c;理解它们对于写出高效、可读的代码至关重要。在这篇博客中&#xff0c;我们将详细介绍 Python 的五种主要内置容器&…...