利用cnocr库完成中文扫描pdf文件的文字识别
很多pdf文件文字识别软件都会收费,免费的网页版可能会带来信息泄露,还有一些类似于腾讯AI
和百度AI
的接口都有调用次数限制,因此,利用识别正确率极高且免费的cnocr
库来自己动手做个pdf
文件文字识别程序就是一个很不错的选择。以下程序利用pymupdf
打开pdf
文件并将页面图像数据读出,然后用numpy
将pymupdf
读取的页面图像转换为cnocr
能够接受的np.ndarray
格式的图像数据,再由cnocr
进行文字识别。numpy
、pymupdf
和cnocr
库的安装都可以用pip install
指令简单完成,不多赘述。
import numpy as np
from cnocr import CnOcr
from pymupdf import pymupdfdef pdf2txt(input_file, output_file, start_page=0, page_count=-1):"""将扫描的pdf文件中指定的页面范围内的内容转换成文本文件:param input_file: 要识别的pdf文件的相对或绝对路径,包含文件名的字符串:param output_file: 保存识别结果的txt文件的相对或绝对路径:param start_page: 识别起始页面,默认为第1页:param page_count: 识别的页数,默认为所有页面:return:"""pdf = pymupdf.open(input_file)count = pdf.page_countif start_page < 0:start_page = 0if page_count < 0 or page_count + start_page > count:end_page = countelse:end_page = page_count + start_page# 如CnOcr的识别模型尚未下载,以下语句执行时CnOcr会自动下载模型并解压到用户目录下的AppData\\Roaming\\cnocr\\cnocr版本号下# 也可以在初始化时指定rec_model_fp参数给出模型所在的相对路径或绝对路径指定识别模型,如以下示例(因以下路径是我的电脑上的默认路径,# 因此下面两行代码与ocr = CnOcr()完全等价ocr = CnOcr(rec_model_fp='C:\\Users\\asus\\AppData\\Roaming\\cnocr\\2.3\\densenet_lite_136-gru''\\cnocr-v2.3-densenet_lite_136-gru-epoch=004-ft-model.onnx')print(start_page, end_page)with open(output_file, 'w', encoding='utf-8') as f:for i in range(start_page, end_page):page = pdf[i]pix = page.get_pixmap()width = pix.widthheight = pix.height# pixmap转换为nympy.ndarray,供CnOcr识别image = np.frombuffer(pix.samples, dtype=np.uint8).reshape(height, width, pix.n)res = ocr.ocr(image)string_list = []for val in res:# 注意这是2.2版本以后的cnocr读取识别结果的方式与2.1版本已经不同# 如果cnocr识别结果总是一些textscoreposition字符串,那就是用了老版的方式string_list.append(val['text'])ocr_result_string = '\n'.join(string_list)f.write(ocr_result_string) # 这行代码自带文件关闭功能,不需要再写 f.close()print(f'page{i + 1} finished.')pdf.close()input_file = f'test.pdf'
output_file = 'test.txt'
pdf2txt(input_file, output_file, 500, 522)
需要注意的是,在读取cnocr的识别结果时,如果安装的cnocr版本低于2.2,那么
以上代码中的
for val in res:string_list.append(val['text'])
要改成下面这样:
for i in range(len(res)):for j in res[i]:string_list.append(j)
但是2.2版本以后的cnocr
如果仍然用以上方式,那么取出的识别结果将是一串“textscoreposition
”。
下面是以上程序识别曹植集校注中一页的结果:
(本冥指隐蔽偏鲜之处。此言卡太后即使在独处之时也很谨慎,在隐
游之处电依礼行。
5〔诚(juon))洁也。〔荐)进献。〔三牲)牛、羊、猪,指祭
品。此吉请净地进献祭品。(视)条配时主持条礼之人。
3〔宜享斯祜]应该享受知此之服。精:棋。宋本作“”。〔煤
社〕即受桶。(肉特)锅奖。(勉)月“免。即超免
四〔会街尽礼)条祀折特时湖尽礼数。笃)厚,指调情加重。
[密)痊愈。(终)指生命到终点。
等〔遗州)南植自指。(在收)指在优伤久病之中。(部)指下太
后去世的内信。〔东藩)洛阳东面的藩国。曹植时时东阿王。东阿在洛
阳东。[郊甸)郊野。丁本:《艺文类聚》作“晗。”家本亦作“除”。
哈指田地里的小路、与筹义同。(中原)原野之中。
中(皇址]望号。[迁)肉去。[峡复) 经常来看我。
等〔岁字)空貌,即人去限空。(巡省阶除)在宫中的小道上巡视。
(仿佛碳轩在窗户间仿佛着见了下太行的身影容舰。银轩:窗户。
就【韩梨)指下太后的居室。(儿益)儿席。座席。〔效故)改变
原承的样子。
2〔酷指您伤全做。斯)如此。(墙)。(魏部)指邺。曹操
界于都,下太后的是权专运到部与曹操合养。(日包)指邺。〔隧)&
道。〔魄)《艺文类聚》、宋本俱作“将”。
3(叹息露兴)叹息之气粥如雾气兴起,形容送师人之多。〔幅
(r而))灵车。
容车饰驾,以合北展®
0丁本:“《文选》颜廷年《宋元泉后哀策文》李注引《上宜后请
&》.
-469.
原始扫描页面100%缩放图像如下:
可见准确率也还勉强可以接受。如果将图像做个对比度增强并适当放大再识别,还可以进一步提高准确率。下面是使用OpenCV将图片放大2倍后的识别结果,对比可以看出准确率有所提高:
(本冥〕指隐蔽偏解之处。此言卡太后即使在独处之时也很谨慎,在隐
游之处也依礼间行。
S(砖(juon))洁也。〔荐〕进献。(三牲〕牛、羊、猪.指祭
品。此言洁净地进献祭品。(祝〕祭祀时主持祭礼之人。
3(宜享斯祜)应该享受知此之福。精:摄、宋本作“猪”。〔蒙
社〕即受福。〔凶咎)祸火。〔勉)月“免”.即避免。
四〔云传尽礼)条祀祈传时湖尽礼数。笃)厚,指病情加重。
(疮)经。〔终)指生命到终点。
多〔逸弧)曹植自指。(在款)指在优伤久病之中。(讳)指下太
后去世的内信。〔东洛)洛阳东面的等国。、曹植时村东阿王。东阿在洛
阳东。(郊甸)郊野。丁本:《艺文类聚》作“峰。”宋本亦作“时”。
哈指田地里的小路。与年义同。(中原)原野之中。
9(皇址)皇号。[迁〕肉去。[峡复〕经常来看我。
0〔岁凯)空貌,即人去屋空。〔巡省阶涂)在宫中的小道上巡视。
(仿佛候轩)在窗户间仿佛看见了卡太后的身影容颜。领轩:窗户。
就〔韩蟹)指下太后的店室。〔儿流)儿席。座席。〔烫故)改变
原来的样子。
心〔酷)指悲伤至极。〔斯)如此。(秦)到。〔魏都)指邺。曹操
养于郎,下太后的是框要运到第与曹操合养。(旧色)指邺。(能)众
道。〔魄)《艺文类聚》、宋木供作“将”。
3(叹息露兴)叹息之气宛如雾气兴起,形容送葬人之多。〔幅
(r而))灵车。
容车饰驾,以合北辰®
0丁本:“《文选》颜廷年《宋元皇后哀策文》李注引《上宣后请
表.”
.469.
真正要提高识别准确率,需要出钱买它的专业版预训练模型,但对于我这种坚决的白嫖党来说,即使售价1分钱,花出去我也觉得掉面子——还不如忍受腾讯AI百度AI限制次数限制文件大小去搞免费识别,话说我用百度AI接口识别的同一页内容结果如下(代码参阅https://blog.csdn.net/yivifu/article/details/116836686):
〔幽冥〕指隐蔽偏僻之处。此言卞太后即使在独处之时也很谨慎,在隐
僻之处也依礼而行。
②〔蠲(juān)〕洁也。〔荐〕进献。〔三牲〕牛、羊、猪,指祭
品。此言洁净地进献祭品。〔祝〕祭祀时主持祭礼之人。
〔宜享斯祜〕应该享受如此之福。祜:福。宋本作“祐”。〔蒙
祉〕即受福。〔凶咎〕祸灾。〔勉〕同“免”,即避免。
②〔尝祷尽礼〕祭祀祈祷时竭尽礼数。〔笃〕厚,指病情加重。
〔痊〕痊愈。〔终〕指生命到终点。
②〔遗孤〕曹植自指。〔在疚〕指在忧伤久病之中。〔讳〕指卞太
后去世的凶信。〔东藩〕洛阳东面的藩国。曹植时封东阿王,东阿在洛
阳东。〔郊甸〕郊野。丁本:“《艺文类聚》作‘畛’。”宋本亦作“畛”,
畛指田地里的小路。与郊义同。〔中原〕原野之中。
②9〔皇妣〕皇母。〔迁〕离去。〔顾复〕经常来看我。
③〔寥廓〕空貌,即人去屋空。〔巡省阶涂〕在宫中的小道上巡视。
[仿佛棂轩〕在窗户间仿佛看见了卞太后的身影容颜。棂轩:窗户。
③〔帏幄〕指卞太后的居室。〔几筵〕几席,座席。〔毁故〕改变
原来的样子。
〔酷〕指悲伤至极。〔斯〕如此。〔臻〕到。〔魏都〕指邺。曹操
葬于邺,卞太后的灵柩要运到邺与曹操合葬。〔旧邑〕指邺。〔隧〕墓
道。〔魄〕《艺文类聚》、宋本俱作“将”。
③〔叹息雾兴〕叹息之气宛如雾气兴起,形容送葬人之多。〔輀
(ér而)〕灵车。
容车饰驾,以合北辰①。
①丁本:“《文选》颜延年《宋元皇后哀策文》李注引《上宣后诔
表》。”
·469.
几乎没有错误!用腾讯的ocrdemo(https://ocrdemo.cloud.tencent.com/)识别,更是连格式都能基本保持。
相关文章:
利用cnocr库完成中文扫描pdf文件的文字识别
很多pdf文件文字识别软件都会收费,免费的网页版可能会带来信息泄露,还有一些类似于腾讯AI和百度AI的接口都有调用次数限制,因此,利用识别正确率极高且免费的cnocr库来自己动手做个pdf文件文字识别程序就是一个很不错的选择。以下程…...
el-table ToggleRowSelection实现取消选中没效果(virtual-scroll)
场景: 就是在虚拟列表el-table选中之后 点击查询 默认之前选中的 现象: 就是实现选中, 但是无法去除勾选等等 问题发现: 看定位的数据 有多个一样的,我想着勾选之前 先去掉勾选 ,但是没效果或者说“相同的…...
Vue入门到精通:运行环境
Vue入门到精通:运行环境 Vue3的运行环境搭建主要有两种方法:一种是直接在页面中引入Vue库,另一种是通过脚手架工具创建Vue项目。 (一)页面直接引入Vue库 页面直接引入Vue库的方法,是指在HTML网页中通过s…...
LNK2001: virtual struct QMetaObject const 错误的解决方法和原因
目录 1.现象 2.原因分析 3.解决方法 3.1.方法1 3.2.方法2 1.现象 今天调整了下工程目录结构(环境是VS2019Qt5.12.12),重新编译突然出现以下错误: 没有修改代码,怎么就出现这个错误了呢?从上面的错误来看,其实就是…...
电脑win11家庭版升级专业版和企业版相关事项
我的是零刻ser9,自带win11家庭版,但是我有远程操控需求,想用windows系统自带的远程连接功能,所以需要升级为专业版。然后在系统激活页面通过更改序列号方式,淘宝几块钱买了个序列号升级成功专业版了。但是,…...
用户认证系统登录界面
下面是使用HTML和JavaScript实现的一个中文版登录界面,包含登录、注册和修改密码功能。注册成功后会显示提示信息,在登录成功后进入一个大大的欢迎页面。 1.代码展示 <!DOCTYPE html> <html lang"zh-CN"> <head><meta …...
深圳国威HB1910数字IP程控交换机 generate.php 远程命令执行漏洞复现
0x01 产品描述: 深圳国威主营国威模拟、数字、IP 交换机、语音网关、IP 电话机及各种电话机。深圳国威电子有限公司HB1910是一款功能强大的网络通信设备,适用于各种企业通信需求。 0x02 漏洞描述: 深圳国威电子有限公司HB1910数字IP程控交换机generate.php存在远程命令执行…...
客户端(浏览器)vue3本地预览txt,doc,docx,pptx,pdf,xlsx,csv,
预览文件 1、入口文件preview/index.vue2、预览txt3、预览doc4、预览pdf5、预览pptx6、预览xlsx7、预览csv 1、入口文件preview/index.vue 预览样式,如pdf 文件目录如图所示: 代码如下 <template><div class"preview-wrap" ref&…...
(八)机器学习 - 线性回归
线性回归(Linear Regression)是一种统计学方法,用于建立一个或多个自变量(解释变量)与因变量(响应变量)之间的线性关系。线性回归的目的是通过最小化预测误差来找到最佳的线性拟合模型ÿ…...
Springboot 整合 Java DL4J 打造金融风险评估系统
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s…...
CSDN博客:如何使用Python的`datasets`库转换音频采样率
CSDN博客:如何使用Python的datasets库转换音频采样率 什么是采样率?代码用途:调整音频数据的采样率完整代码示例代码详解运行结果(示例)总结 在这篇文章中,我们将学习如何使用Python的datasets库对音频数据…...
geoserver(1) 发布sql 图层 支持自定义参数
前提使用postgis 数据库支持关联 join 支持 in,not in,like,及其他sql原生函数 新增sql图层 编写自定义sql 编辑sql语句必须输出带有geom数据 正则表达式去除 设置id以及坐标参考系 预览sql图层效果 拼接sql参数 http://xxx.com/geoserver/weather/wms?SERVICEWMS&VERSI…...
从 Router 到 Navigation:HarmonyOS 路由框架的全面升级与迁移指南
在本教程中,我们深入探讨了 Router 和 Navigation 在 HarmonyOS 中的用法差异及如何从 Router 切换到 Navigation 的方法。重点涵盖了页面跳转、转场动画、生命周期管理以及跨包路由的实现。 页面结构对比 Router 页面结构 每个页面需要使用 Entry 注解。 页面需要…...
http1.1 vs http2.0 速度对比实测
首先对比一下http1.1 vs http2.0 区别: 1. 连接管理: HTTP/1.1: 每个请求/响应都需要一个独立的 TCP 连接,虽然可以使用持久连接(keep-alive)来复用连接,但仍然存在请求队头阻塞(Head-of-Line…...
uniappp配置导航栏自定义按钮(解决首次加载图标失败问题)
1.引入iconfont的图标,只保留这两个文件 2.App.vue引入到全局中 import "./static/fonts/iconfont.css"3.pages.json中配置text为图标对应的unicode {"path": "pages/invite/invite","style": {"h5": {"…...
vue运行项目时local有显示 但是network却显示unavailable
问题描述 日常开发中 和后端本地调试时 后端需要使用你的本地去访问页面 可运行项目时会出现network显示unavailable的情况 解决方式 1.其实这只是vue脚手架对于ip地址获取的方式兼容上有一些问题 但其实是不影响ip访问本地的 你可以直接cmd内ipconfig去查看自己的ip然后…...
【Java学习笔记】JUnit
一、为什么需要 JUnit 二、基本介绍 三、实现方法 第一次添加: 在需要测试的方法处输入 Test注解,快捷键AltInsert选择添加版本(常用JUnit5.4) 出现绿色箭头可进行测试和编译...
Next.js配置教程:构建自定义服务器
更多有关Next.js教程,请查阅: 【目录】Next.js 独立开发系列教程-CSDN博客 目录 前言 1. 什么是自定义服务器? 2. 配置自定义服务器 2.1 基础配置 2.2 集成不同的服务器框架 使用Fastify 使用Koa 3. 自定义服务器的高级功能 3.1 路…...
el-table 动态计算合并行
原始表格及代码 <el-table:data"tableData"class"myTable"header-row-class-name"tableHead" ><el-table-column prop"date" label"日期"> </el-table-column><el-table-column prop"name" …...
【杭州电商商城系统开发建设】
杭州电商商城系统开发建设是一项综合性的工程,它涉及到多个方面的内容。以下是对杭州电商商城系统开发建设的详细分析: 需求分析:深入了解用户需求,包括用户群体特征、购物习惯、支付偏好等,为系统设计提供基础。明确…...
架构实践05-互联网架构模板
零、文章目录 架构实践05-互联网架构模板 1、技术演进的方向 (1)技术演进的方向判断 潮流派:热衷于新技术,紧跟技术潮流,但可能面临技术不成熟的风险和学习成本。保守派:强调稳定,对新技术持…...
家校通小程序实战教程10部门管理前后端连接
目录 1 加载后端的数据2 为什么不直接给变量赋值3 保存部门信息4 最终的效果5 总结 现在部门管理已经完成了后端功能和前端开发,就需要在前端调用后端的数据完成界面的展示,而且在录入部门信息后需要提交到数据库里,本篇我们介绍一下前后端如…...
【前端面试题】书、定位问题、困难
看过什么书 《JavaScript 高级程序设计(第 4 版)》(作者:Matt Frisbie) 这是一本深入学习 JavaScript 语言的经典书籍。它详细地涵盖了 JavaScript 的高级特性,包括原型链、闭包、异步编程等复杂概念。以闭…...
VSCode设置字体
参考文章:【面向小白】vscode最佳实践(2)—— 字体设置(fira code更纱黑体),这篇文章末尾给了安装字体的链接。 配置的字体还是很好看的。 ‘Fira Code Retina’, ‘Sarasa Mono Sc’ 需要注意的一个点&am…...
《机器学习》2.4假设检验 t分布 F分布
目录 t发布 注意是这个东西服从t分布 数据服从t分布通常是在以下情况下: 以下是一些具体的例子,说明在何种情况下数据会服从t分布: t检验 交叉验证t检验 样本方差编辑 F分布(fisher Friedman检验是一种非参数统计方法&a…...
Mysql之视图
MySQL 视图(View) 1. 概念 视图是一个虚拟的表,它是基于 SELECT 查询的结果集。视图不存储实际数据,而是动态地从基表中提取数据。视图可以简化复杂查询、提高数据安全性(限制访问特定列或行)以及提供数据…...
kafka学习笔记
kafka消息中间件精讲 - B站动力节点 JDK17在Windows安装及环境变量配置超详细的教程 Windows 多版本java 装多个版本jdk Windows同时安装多个JDK jdk17下载与安装教程(win10),超详细 jdk17-archive-downloads 如何在IDEA中配置指定JDK版…...
【保姆级教程】基于OpenCV+Python的人脸识别上课签到系统
【保姆级教程】基于OpenCVPython的人脸识别上课签到系统 一、软件安装及环境配置1. 安装IDE:PyCharm2. 搭建Python的环境3. 新建项目、安装插件、库 二、源文件编写1. 采集人脸.py2. 训练模型.py3. 生成表格.py4. 识别签到.py5. 创建图形界面.py 三、相关函数分析1.…...
LVS能否实现两台服务器的负载均衡
LVS能否实现两台服务器的负载均衡 是的,LVS(Linux Virtual Server)可以实现两台服务器的负载均衡,并且它非常适合这种场景。 LVS(Linux Virtual Server)简介: LVS 是一种基于 Linux 的负载均…...
智能人体安全防护:3D 视觉技术原理、系统架构与代码实现剖析
随着工业化程度的提高,生产安全已成为企业关注的重点。尤其是在一些存在禁区的工业厂区和车间,人员误入或违规进入将带来严重的安全隐患。为了解决这一问题,迈尔微视推出了智能人体安全检测解决方案,为企业提供全方位的人员安全监…...
JAVA后端实现全国区县下拉选择--树形结构
设计图如图: 直接上代码 数据库中的格式: JAVA实体类: Data public class SysAreaZoningDO {private Long districtId;private Long parentId;private String districtName;private List<SysAreaZoningDO> children; } MapperSQL语句…...
DVWA及其他常见网络靶场
常见网络靶场 Metasploitable2 介绍: Metasploitable2 是一个用于安全培训和测试渗透测试工具的虚拟靶机。它故意配置了许多已知的安全漏洞,涵盖了操作系统、网络服务等多个方面。基于 Ubuntu Linux 操作系统构建,包含了如 Apache、MySQL、FT…...
API接口安全:电商数据保护的坚固防线
随着电子商务的蓬勃发展,电商平台的数据安全和隐私保护成为了至关重要的议题。API(应用程序编程接口)作为电商平台与外部系统交互的桥梁,其安全性直接关系到整个平台的数据保护能力。本文将从API接口安全的重要性、面临的安全威胁…...
springboot437校园悬赏任务平台(论文+源码)_kaic
摘 要 使用旧方法对校园悬赏任务平台的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在校园悬赏任务平台的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的校…...
可视化报表如何制作?一文详解如何用报表工具开发可视化报表
在如今这个数据驱动的商业时代,众多企业正如火如荼地推进数字化转型,力求在激烈的市场竞争中占据先机。然而,随着业务规模的扩大和运营复杂度的提升,企业的数据量爆炸式增长,传统报表格式单一、信息呈现密集且不易解读…...
STM32 HAL库之SDIO例程 Micro SD卡 - 2
1、硬件图 2、示例代码 根据提示配置SDCLK为72/3 24MHz。 static void MX_SDIO_SD_Init(void) {/* USER CODE BEGIN SDIO_Init 0 */SD_InitTypeDef Init;Init.ClockEdge SDIO_CLOCK_EDGE_RISING;Init.ClockBypass SDIO_CLOCK_BYPASS_DISABLE;Init.ClockPo…...
架构实践02-高性能架构模式
零、文章目录 架构实践02-高性能架构模式 1、 高性能数据库集群:读写分离 (1)引言 背景:随着业务的发展和数据的增长,单个数据库服务器难以满足需求,必须考虑数据库集群。目的:介绍高性能数…...
leetcode-73.矩阵置零-day5
class Solution {public void setZeroes(int[][] mat) {int m mat.length, n mat[0].length;// 1. 扫描「首行」和「首列」记录「首行」和「首列」是否该被置零boolean r0 false, c0 false;for (int i 0; i < m; i) {if (mat[i][0] 0) {r0 true;break;}}for (int j …...
Docker与虚拟机:虚拟化技术的差异解析
在信息技术飞速发展的今天,虚拟化技术已成为现代IT架构不可或缺的一部分。而虚拟化从技术层面划分则分为以下几种: 完全虚拟化:虚拟机能够完全模拟底层硬件的特权指令的执行过程,客户操作系统无须进行修改。 硬件辅助虚拟化&#…...
数据结构——ST表
ST表的定义 ST表,又名稀疏表,是一种基于倍增思想,用于解决可重复贡献问题的数据结构 倍增思想 这里列举一个去寻找一个区间内的最大值的例子 因为每次会将将区间增大一倍,所以才被称之为倍增思想 ,这种思想十分好用…...
flutter命令行直接指定设备
> flutter driver Found 3 connected devices:sdk gphone16k x86 64 (mobile) • emulator-5554 • android-x64 • Android 15 (API 35) (emulator)Linux (desktop) • linux • linux-x64 • Ubuntu 22.04.5 LTS 6.8.0-49-genericChrome (…...
【STM32】RTT-Studio中HAL库开发教程九:FLASH中的OPT
文章目录 一、概要二、内部FLASH排布三、内部FLASH主要特色四、OTP函数介绍五、测试验证 一、概要 STM32系列是一款强大而灵活的微控制器,它的片内Flash存储器可以用来存储有关代码和数据,在实际应用中,我们也需要对这个存储器进行读写操作。…...
COLA学习之代码规范(二)
小伙伴们,你们好,我是老寇,上一节,我们学习了DDD相关术语,继续跟老寇学习COLA代码规范 代码规范 包命名 层次包名功能必选Adapter层web处理页面请求Controller否Adapter层wireless处理无线端适配否Adapter层wap处理…...
【优选算法】二分算法(在排序数组中查找元素的第一个和最后一个位置,寻找峰值,寻找排序数组中的最小值)
二分算法简介: 提到二分我们可能都会想起二分查找,二分查找要求待查找的数组是有序的,与我们今天讲的二分算法不同,并不是数组元素严格按照有序排列才可以使用二分算法,只要数组中有一个点可以将数组分为两个部分&…...
数据结构-排序(来自于王道)
排序的基本概念 插入排序 在这个算法中,除了输入的数组本身,没有使用额外的数据结构来存储数据,所有的操作都是在原数组上进行的。因此,无论输入数组的大小 n 是多少,算法执行过程中所占用的额外空间是固定的ÿ…...
用 Python 实现经典的 2048 游戏:一步步带你打造属于你的小游戏!
用 Python 实现经典的 2048 游戏:一步步带你打造属于你的小游戏!(结尾附完整代码) 简介 2048 是一个简单而又令人上瘾的数字拼图游戏。玩家通过滑动方块使相同数字的方块合并,目标是创造出数字 2048!在这篇…...
《C++:计算机视觉图像识别与目标检测算法优化的利器》
在当今科技飞速发展的时代,计算机视觉领域正经历着前所未有的变革与突破。图像识别和目标检测作为其中的核心技术,广泛应用于安防监控、自动驾驶、智能医疗等众多领域,其重要性不言而喻。而 C语言,凭借其卓越的性能、高效的资源控…...
医学分割数据集白内障严重程度分割数据集labelme格式719张3类别
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):719 标注数量(json文件个数):719 标注类别数:3 标注类别名称:["normal","severe","mi…...
VirtIO实现原理之数据结构与数据传输演示(4)
接前一篇文章:VirtIO实现原理之数据结构与数据传输演示(3) 本文内容参考: VirtIO实现原理——vring数据结构-CSDN博客 VirtIO实现原理——数据传输演示-CSDN博客 特此致谢! 一、数据结构总览 2. 相关数据结构 前文书介绍了《Virtual I/O Device (VIRTIO) Version 1.3…...
C语言:详解指针最终篇(3)
一.字符指针变量 在指针的类型中我们知道有一种指针类型为字符指针char*。一般我们这样使用: 我们来看另一种使用方式: 这个常量字符串就相当于它本身首字符的地址,收地址加上方括号下标就可以访问该表达式中对应下标的元素。可以把该表达式…...