- 博客(19)
- 资源 (2)
- 收藏
- 关注
原创 【项目实训】成绩识别录入系统--登录功能基本实现 (四)
前言分别编写前后端代码,实现教职工的登陆,测试前后端的数据交互一、后端代码控制层接收数据,调用service层进行账号密码判断,service层调用dao层访问数据库。部分代码:控制层@RestControllerpublic class LoginController { @Autowired UserService userService; @RequestMapping("/") public String hello(){ re.
2022-04-20 19:37:43
1059
原创 【项目实训】成绩识别录入系统--项目基本环境搭建 (三)
目录一、初步打算二、环境搭建1.node.js2.vue环境安装3.后端基本设置总结一、初步打算项目前后端分离前端框架:Vue后端框架:Springboot数据库:mysql语言:java 1.8版本二、环境搭建1.node.js2.vue环境安装项目相关配置:npm run dev完成3.后端基本设置使用maven管理项目总结简单进行了部分环境配置,近期预计实现登录功能...
2022-04-19 21:46:26
1148
原创 【项目实训】成绩识别录入系统--opencv实现图片矫正 (二)
opencv实现图片矫正一、图片校正实现二、效果测试总结一、图片校正实现部分代码if len(contours2) == 4: c4 = contours2.reshape(4, 2) if fclock[0]: print "c4=", c4 c4list = c4.tolist() c4list.reverse() c4 = np.array(c4list) c5 = np.zeros((
2022-04-11 23:19:11
2801
原创 【项目实训】成绩识别录入系统--opencv实现图片矫正 (一)
近期任务实现对表格照片内容的识别算法。我的分工:利用python的opencv库实现对照片中的表格的校正,并与小组成员进行代码整合与测试。一、初步分析拍照时因为镜头角度等原因,容易导致图像出现倾斜、变形等情况,为了方便后续处理我们常常需要进行图像矫正,其中主要技术原理是两种变换类型–仿射变换(Affine Transformation)和透视变换(Perspective Transformation)。本程序主要使用opencv技术实现图像识别之前的透视变换。二、思路与部分代码首先对图像做简.
2022-03-17 09:29:06
426
原创 2021SC@SDUSC SQLite源码分析(十三)————SQL 命令编译过程梳理
2021SC@SDUSC SQLite源码分析(十三)————SQL 命令编译过程梳理一、 sqlite3_exec()函数二、SQL 语句编译的调用层次一 sqlite3_prepare()二 sqlite3LockAndPrepare()三 sqlite3Prepare()四 sqlite3RunParser()五 sqlite3Parser()根据以往博客与小组讨论与资料查找,对命令的编译过程进行梳理,以对SQLite项目有个整体的理解。一、 sqlite3_exec()函数位于legacy.
2021-12-27 11:40:09
678
原创 2021SC@SDUSC SQLite源码分析(十二)————SQLite 数据库文件打开过程
2021SC@SDUSC SQLite源码分析(十二)————SQLite 数据库文件打开过程前言过程分析官方文档中的过程介绍逐步分析前言基于前面的博客分析和小组内成员的讨论,对数据库文件的打开过程做出分析与总结过程分析官方文档中的过程介绍逐步分析1、main():位于 shell.c从命令行参数中得到数据库名,如果数据库文件存在,则打开它。2、open_db():位于 shell.c功能:确认数据库是否已经打开。如果已打开,则什么都不做。如果没有,则打开它。如果打开失败,输
2021-12-23 19:58:31
819
原创 2021SC@SDUSC SQLite源码分析(十一)————SQLite RTree实现
2021SC@SDUSC SQLite源码分析(十一)————SQLite RTree实现一、插入涉及函数二、删除相关函数一、插入涉及函数一、ChooseLeaf用来定位插入记录的叶结点/*** This function implements the ChooseLeaf algorithm from Gutman[84].** ChooseSubTree in r*tree terminology.*/static int ChooseLeaf( Rtree *pRtree, .
2021-12-16 16:24:23
298
原创 2021SC@SDUSC SQLite源码分析(十)————SQLite Rtree特点与实现
2021SC@SDUSC SQLite源码分析(十)————SQLite Rtree特点与实现R树特点一、R树虚表结构二、查找1.Rtree 游标2.有关函数R树特点R-树中各子树的所有空间允许重叠。若叶结点不是根结点,则每个叶结点所包含的索引记录个数介于m与M之间.若非叶结点不是根结点,则其中包含的子结点个数介于m与M之间.根结点至少有两个子结点一、R树虚表结构1.Node表存储结点信息,根结点nodeno为1(nodeno int, data BLOB)2.Parent表存储结点.
2021-12-09 15:38:24
313
原创 计算机网络 逆向路径转发
如果已知广播源的生成树或者汇集树,逆向路径转发的意义是什么?概念:汇集树:最优化原则,从所有源端到目的端的最佳路由集合,形成了以目的地为根的树,这样的一棵树成为汇集树。个人理解:逆向路径转发不需要知道广播源汇集树,只需知道广播数据包到来的线路是否是自己经常用来转发到 数据包发送方 的线路,即只需查看自身路由表。如果已知生成树,则不需要使用逆向路径转发,只需转发给树中其他节点,广播的数据包更少,但要求知道生成树,比如采用链路状态路由算法 LSR 可以用这种方法(所有路由器知道完整网络拓扑),但用
2021-12-04 20:21:51
2667
原创 2021SC@SDUSC SQLite源码分析(九)————SQLite Rtree结构
2021SC@SDUSC SQLite源码分析(九)————SQLite Rtree结构前言一、Rtree是什么?二、Rtree使用三、Rtree结构节点结构节点单元结构前言 Rtree位于sqlite源码的ext文件夹下,之前并未接触过此概念。查阅资料后写下此篇博客作为记录。一、Rtree是什么?Rtree的概念源于Toni Guttman:Rtree:A Dynamic Index structure for spatial Searching,Proc.1984 ACM SI.
2021-12-02 20:26:52
806
原创 2021SC@SDUSC SQLite源码分析(八)————SQLite虚拟机指令集
2021SC@SDUSC SQLite源码分析(八)————SQLite虚拟机指令集为了执行一个SQL语句,SQLite库首先解析SQL,分析该语句,然后生成简短的程序来执行该语句。产生的程序将由SQLite库实现的虚拟机来执行。虚拟机的源代码是vdbe.c文件。所有操作码的定义都包含在源文件注释中,下面是几个操作码指令实例分析一、OP_Column解析当前游标指定的记录的数据p1为当前游标索引号,p2为列号case OP_Column: { u32 payloadSize; /*
2021-11-25 18:29:49
709
原创 2021SC@SDUSC SQLite源码分析(七)————VDBE结构分析
2021SC@SDUSC SQLite源码分析(七)————VDBE结构分析一、vdbeInt.h1.结构概览2.虚拟机框架对象二、解释引擎VDBE是SQLite的核心。用户程序发出的SQL语句请求,由前端编译器处理,生成字节代码程序,然后由VM解释执行。VM执行时,又会调用B-tree模块的相关的接口,并输出执行的结果。一、vdbeInt.h是vdbe.c的私有头文件,定义了VDBE的常用数据结构。主要包含一些结构体和方法的声明或者预定义1.结构概览struct VdbeCursor(v
2021-11-18 19:41:41
1676
原创 2021SC@SDUSC SQLite源码分析(六)————b树增删改查API
2021SC@SDUSC SQLite源码分析(六)————b树增删改查API一、sqlite3BtreeInsert二、sqlite3BtreeDelete一、sqlite3BtreeInsert在b-树的适当位置插入一个新记录。新记录的内容由pX对象描述。pCur游标仅用于定义记录应该插入到哪个表中,以及被留在哪个表中,之后将指向一个随机位置。源码:int sqlite3BtreeInsert( BtCursor *pCur, /* Insert data
2021-11-10 20:30:07
908
1
原创 2021SC@SDUSC SQLite源码分析(五)————VDBE初步分析
2021SC@SDUSC2021SC@SDUSC SQLite源码分析(四)————sqlite的虚拟机前言一、初步分析二、 VdbeCursor 结构三、VDBE字节码编程语言前言代码生成器生成的代码由虚拟机来执行。关于虚拟机更详细的信息可参考http://sqlite.org/opcode.html 。虚拟机实现一个专为操作数据库文件而设计的抽象计算引擎。它有一个存储中间数据的存储栈,每条指令包含一个操作码和不超过三个额外的操作数。提示:以下是本篇文章正文内容,下面案例可供参考一、初步
2021-11-03 19:33:53
412
原创 2021SC@SDUSC SQLite源码分析(四)————sqlite中的cell概念
2021SC@SDUSC B树中的cell概念一、cell是什么?二、cell与溢出页结构1.溢出页的意义2.溢出页的定义三、cell与空间管理1.自由页的管理2.页内空间管理一、cell是什么?sqlite数据库文件被分为固定大小的页,所有的页由B+树模块管理。每个页要么是树中的页(内部页或者叶子页),要么是溢出页,或者是自由页(自由页通过单链表组织起来)。树中的页(内部页和叶子页)被分成许多cell,一个cell包括一个(或者一部分)负载。Cell是已分配或者已释放的磁盘空间集合。页的内容见往
2021-10-27 17:57:39
408
原创 2021SC@SDUSC SQLite源码分析(三)————B树API与游标
2021SC@SDUSC SQLite源码分析(三)————B树与内存的页一、B-tree模块的API二、API功能分析三 、关于游标一、B-tree模块的APIB-tree模块有自己的API,它们是独立于sqlite外部API的。这些API主要是针对SQLite需求量身定做的,因此对于其他的数据库并不适用。要想更加了解SQLite内部机制,先了解这些API是很有必要的。B-tree的另一个优点是本身事务机制、pager处理事务、锁以及日志文件,并为B-tree模块提供支持。B-tree API根据目
2021-10-20 21:00:02
445
原创 2021SC@SDUSC SQLite源码分析(二)————B树与内存的页
2021SC@SDUSC一、BtShared结构分析二、内存中的页文件头pager模块把数据库文件抽象为基于页的文件。而B+树模块在基于页的文件之上抽象出基于行的数据项。表中的行可以通过很多种形式组织起来,例如输入顺序、相关性、哈希表、键值序列。SQLite使用B+树来组织一个表中所有的行,不同的表有不同的B+树。SQLite把索引视为一个表,并且把索引存储在一个B树里,不同的索引有不同的B树。B树和B+树很像,都是一种键值序列数据结构。SQLite不使用其他的组织行(数据项)的方法。所以,一个数
2021-10-13 08:47:51
399
原创 2021SC@SDUSC SQLite源码分析(一)————SQLite内核结构与功能分析
2021sc@sdusc一、内核概述二、VDBE与B-tree的关系2.读入数据总结一、内核概述为了能更好的理解 SQLite,我们先从总的结构上讨论了内核,从全局把握 SQLite 很重要。SQLite 的内核实现不是很难,但是也不是很简单。本次主要讨论虚拟机(Virtual Machine)。VDBE 是 SQLite 的核心,它的上层模块和下层模块都是本质上都是为它服务的。它的实现位于 vbde.c, vdbe.h, vdbeapi.c, vdbeInt.h, 和 vdbemem.c 几个文件中
2021-10-07 23:50:44
482
原创 2021SC@SDUSC SQLite源码分析——综述与分工
SQLite源码分析——综述与分工SQLite基本介绍SQLite体系结构SQLite安装与源码下载初步分析与分工2021SC@SDUSCSQLite基本介绍SQLite是一款轻型数据库,是遵守ACID的关系数据库系统,SQLite是C语言编写的开源嵌入式数据库引擎。它完全独立,不具有外部依赖性。SQLite支持多数SQL92标准,可以在所有主要的操作系统上运行,并且支持大多数计算机语言。SQLite体系结构SQLite拥有一个精致的、模块化的体系结构,并引进了一些独特的方法进行关系型数据库的管理
2021-09-28 21:34:32
301
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人