- 博客(77)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 opencv-1.入门图像处理
1.用opencv打开图片:imread()功能就是载入一张图片。该函数经常配合imshow( )函数一起使用,imshow( )函数功能就是把你刚才载入的图片显示出来。import cv2img = cv2.imread('D:\\qqfiles\\MobileFile\\thumb\\betsy.JPG')cv2.imshow('image',img)cv2.waitKey(0) # 使图片停留用于观察,没有这一行代码,图片会在展示瞬间后消失2.用opencv打开视频:imp
2021-11-07 19:37:16
5135
5
原创 流量矩阵常见的两种估计方法对比
通过计算144个OD对在一周时间内的总流量值(每5分钟采样)可以看出,SG与GG的上限值对应的OD流为大流量OD,下限值对应的OD为小流量OD。我们通过观察每个OD周六日两天的流量的情况来判断OD是否存在潮汐效应,选取real_OD数组中第1440-2016行,有很多存在流量为0的OD则认为其存在潮汐效应。算法好的时候,数据应该是附和万有引力模型的,从论文中的图6的累计分布函数中simplegravity对应的上下限可以得出结论:当OD流较大时,简单重力模型估计效果较好。
2022-09-21 11:19:48
1687
3
原创 估计流量矩阵的方法
自于牛顿的万有引力模型,它是一种简单的流量矩阵估计算法。在牛顿万有引力定律中指出,地球上任何两个物体都是相互吸引的,引力的大小跟这两个物体的质量乘积成正比,跟它们的距离的平方成反比,揭示了地球上万物之间引力和质量,距离的关系。重力模型是一种附加链路信息反演方法。公式为:Xij是矩阵元素,表示从i节点到j节点流动元素的量,Ri表示的是离开节点i所相关的排斥因素是一个参数。Aj表示进入节点j所相关的吸引因素也是一个参数。fij表示从节点i到节点j的摩擦因素。
2022-08-22 13:07:02
2368
原创 3.FSDR学习-文章解读
一.引言梳理语义分割:从像素级别来理解图像的。将标签或类别与图片的每个像素关联的一种深度学习算法。它用来识别构成可区分类别的像素集合。例如,自动驾驶汽车需要识别车辆、行人、交通信号、人行道和其他道路特征。有些类似ps抠图...
2022-04-30 11:30:27
297
原创 1.线性表算法题
1.顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删除的元素,空出位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。算法大致思想是扫描整个顺序表寻找最小值,辅助变量k为记录最小值位置方便最后填补。出错点在最后需要删除最后一个元素(L.length–)属实语文理解水平不行了。。。bool DeleteElem(SqList &L,int &e){ if(L.length==0){ printf(“出错了!”); return false; } in
2022-04-18 21:09:40
643
原创 数据结构(补充)22.顺序表
一.顺序表的定义:线性表的顺序存储又叫顺序表,它由一组地址连续的存储单元依次存储线性表中的数据元素。特点:逻辑上相邻的两元素在物理位置上也相邻。线性表中任意元素都可以随机存取(随机访问)。通常用高级语言中的数组来描述。存储密度高,每个结点只存储数据元素。二.定义顺序表(静态数组):define MaxSize 50 //假设线性表的最大长度为50typedef struct{ ELemType data[MaxSize]; //顺序表元素 int length; //顺序表当
2022-04-15 19:06:45
1134
原创 Java基础编程
函数题:6-1本题要求实现一个函数,判盘输入的整数是否是偶数,如果是偶数,返回true,否则返回false。函数接口定义:public static boolean isOdd(int data)说明:其中 data 是用户传入的参数。 data 的值不超过int的范围。函数须返回 true 或者 false。public static boolean isOdd(int data){ if(data%2==0) return true; else return
2022-04-13 15:31:25
2034
原创 2.FSDR学习-摘要梳理后篇
一.研究方向图片风格迁移:风格迁移(style transfer),指的是保留图片内容(content),将图片转换为目标风格(style)。目前的风格迁移几乎大部分都是在GAN(生成对抗网络)的基础上组合AdaIn(适应性实体正则化),加上vgg网络构成的感知损失(content loss)等来进行优化;还有较为经典的pixel2pixel、cycle gan等利用成对数据或者cycle loss进行图像翻译(Image Translation)任务等。风格迁移后,普通的城市照片可以拥有各种各样的
2022-03-06 19:44:03
2601
原创 1.FSDR学习-摘要解读
一.标题解读FSDR: Frequency Space Domain Randomization for Domain Generalization用于域泛化的频域域随机化此论文发表在CVPR2021,它的归类为域泛化。域泛化问题感觉是一个工业上很常见的问题。数据可能来自多个不同的数据源。或者说你的训练集是高清图像进行训练,实际的测试集却是较为模糊的图片。很多情况会导致训练域与实际的测试域不匹配的问题。Frequency Space:频率空间Domain:领域Randomization:
2022-03-04 20:58:31
3365
原创 软件工程-需求工程
一.需求的类型:用户需求:从客户角度,采用自然语言配合图表对目标系统应提供的服务以及系统操作要受到的约束进行声明。自然语言,图表,直观图形系统要求:一种结构化文档,要运用一些专业的模型详细描述系统的功能及其约束。系统需求文档也称为功能描述。图形化,数学系统模型二.功能需求与非功能需求:功能需求:对系统应提供的功能,系统在特定的输入下做出的反应及特定条件下的行为描述。某种情况下还要包括系统不应该做什么。描述系统应提供的功能或服务功能需求描述应该具备全面性(包括所有
2022-02-13 18:51:38
1538
原创 利用pipe()与dup()编写代码,将ps-ef命令的标准输出作为标准输出连接到wc-l命令
1.dup2的作用是用来复制一个文件的描述符,经常用来重定向进程的stdin、stdout和stderr。dup2函数成功返回时,目标描述符(dup2函数的第二个参数)将变成源描述符(dup2函数的第一个参数)的复制品,换句话说,两个文件描述符现在都指向同一个文件,并且是函数第一个参数指向的文件。2.建立一个管道,然后将应用程序分成两个进程:一个子进程和一个父进程。接下来,在子进程中首先关闭文件描述符,然后用execlp函数把子进程的映像替换为命令ps -ef的进程映像。3.在父进程中使用dup2
2022-02-13 18:51:06
1036
1
原创 UML-1.用例图 用例表
用例图:用例图(Use Case Diagram)是用于描述某某角色通过某某系统能做什么事情。当需要对系统整体或者某一部分功能进行行为建模时,就能够使用用例图了。1、主角表示执行者(Actor),其表示的是与当前系统交互交互的人或者其他系统。2、用例能够表示系统能够为执行者提供什么功能。3、用例是以动词加名词的形式,也就是动宾结构。4、外边框表示系统边界,要注明是什么系统,外边框可以不画。5、线条有三种:无箭头的,指向用例的箭头,指向执行者的箭头。箭头可以有两种解释:1、数据流向箭头指
2022-02-13 18:49:52
5839
原创 java游戏实战chess-3.Piece类之knight
一.Piece类Piece代表棋子类,每一枚棋子都有对应的位置坐标和对应的阵营(Alliance)(黑子或者白子)。我们需要限制棋子的移动位置,限制因素有很多,比如它所属阵营,它的本身属性,移动的位置处是否有其他子占用等等。所以我们需要定义棋子的合法移动抽象方法(calculateLegalMoves)来计算合法移动。public class abstract Piece{ protected final int piecePosition; protected final Alliance pi
2022-02-13 18:45:35
2432
原创 java游戏实战chess-2.Tile类
棋盘布局分析:国际象棋棋盘有64个格子,我们通过Tile类表示格子,通过构造函数,当我们构造一个新的tile实例时,对应的会产生一个tile坐标,这个坐标即为传递给构造函数的相应内容。我们把这个类定义为抽象类,只需在子类中定义即可。我们还需要判断某个tile是否被占用,如果未被占用,需要返回null。我们创建EmptyTile类表示空格子,它会调用父类的构造函数。Tile类分析:第一版:tile=OccupiedTile+EmptyTile将格子分为被占用和未被占用两类(注意tile是抽象类不能被
2022-01-03 19:31:04
2199
原创 java游戏实战chess-1.简介
在网上找到一些大牛们之前做好的chess游戏,打算用代码的角度来下一盘棋。成果见下图:试了一下手,移动棋子操作不是很顺畅,但是基本满足了国际象棋的要求,包括王车易位,吃过路兵,还支持人人交互,人机交互,棋盘颜色自定义,棋子风格选择,记录移动位置等。代码难点也是下棋的难点,每一种棋子都有约束:路径约束,棋子与棋子相克约束,黑白棋约束。例如小兵只能一次单走一个或者两个格子,还不能走到有棋子的格子。更为复杂的吃
2022-01-02 22:01:02
2455
转载 python贪吃蛇小游戏
import pygameimport randomimport sysSCREEN, dirction_node = 600, {pygame.K_LEFT: ['left', -25], pygame.K_RIGHT: ['right', 25], pygame.K_UP: ['top', -25], pygame.K_DOWN: ['top', 25]} # 屏幕尺寸,移动的定义class Snake: # 蛇类 de
2021-11-08 21:39:42
198
原创 Linux守护进程
守护进程test.c#include<unistd.h> #include<signal.h> #include<stdio.h> #include<stdlib.h> #include<sys/param.h> #include<sys/types.h> #include<sys/stat.h> #include<time.h> void daemon(){ int pid; int i;
2021-11-02 15:38:32
115
转载 python turtle画表情包
之前在GitHub上有看到有用turtle画玫瑰的,csdn上也有很多类似的代码,挑了一个画表情包代码留存。(因为是我平常最喜欢用的)使用海龟绘图可以编写重复执行简单动作的程序画出精细复杂的形状。(官方解释)import turtle# 画指定的任意圆弧def arc(sa, ea, x, y, r): # start angle,end angle,circle center,radius turtle.penup() turtle.goto(x, y) turtle.s
2021-10-31 21:45:27
2542
4
原创 RFID-系统安全问题逻辑解决方法:hash锁 随机hash锁 hash链
RFID系统面临很大的安全问题,在逻辑方法上,可以通过hash锁,随机hash锁,hash链来解决。一.hash锁:1.抵制标签未授权访问的安全隐私技术,采用hash散列函数给标签加锁,成本较低。2.散列冲突:由于散列算法将任意长的输入变换成固定长的输出,且散列值的空间远小于输入的空间,导致多个输入值对应同一个输出值。3.工作机制:锁定标签:(1)读写器随机产生一个标签的K,计算metaID=Hash(K),并将metaID发送给标签。(2)标签将metaID存储下来,进入锁定状态。(3
2021-10-29 16:02:36
7783
1
原创 Linux内核编译与系统调用的踩雷点~
这个实验搞了我很久,虽然最后成功了,但是付出的代价是重装了windows系统以及重装Linux系统三次。以及我丢失的两个实验报告和n个软件(对于程序员来。。。不说了)。其实实验本身不难,只是雷点太多,有幸我都踩了一遍。1.先看根目录 /:至少可用40G。我后来给了55G,装完之后发现可用只有40多G。(这个就是在make-j4那里容易死掉的,编译两小时你告我没地方了…)原因是/usr/src这个目录在根目录下,我们编译内核的东西都在这个地方。2.如果编译成功了,恭喜你,你可能会被kill在第二个雷区。
2021-10-26 21:28:24
214
原创 关于数据库连接不上用户的问题~
cmd命令行中进入MySQL,alter user 'myuser'@'%' identified with mysql_native_password by '你的密码';flush privileges;命令行结果如下:数据库结果如下:连接成功!
2021-10-20 09:42:39
299
原创 数据结构-21.图的存储与遍历
邻接矩阵法:#define MaxVertexNum 100 //顶点数目最大值typedef struct char Vex[MaxVertexNum]; //顶点表 int Edge[MaxVertexNum][MaxVertexNum]; //二维数组存储边的信息 int Vexnum,arcnum; //图的当前顶点数和边数/arc:弧}MGraph;这种存储方法导致空间复杂度很高。达到O(n^2),适用于稠密图。...
2021-10-10 20:07:00
103
2
原创 数据结构-20.二叉排序树BST
一.定义和查找指定值:二叉排序树又称二叉查找树。Binary Search Tree左子树<根节点<右子树非递归算法:常数级空间即可O(1)//定义二叉排序树typedef struct BSTNode{ int val; struct BSTNode *lChild,*rchild;}BSTNode,*BSTree;BSTNode* BST_Search(BSTree T,int key){ while(T!=NULL&&T->val!=key)
2021-10-09 11:16:24
131
2
原创 LeetCode-94. 二叉树的中序遍历
关于递归:关于递归三要素:1.确定递归函数的参数和返回值:确定哪些参数是递归的过程中需要处理的,然后在递归函数里加上这个参数,并且确定每次递归的返回值是什么进而确定递归函数的返回值类型。2.确定终止条件:递归算法运行时经常会遇到栈溢出的错误。因为没写终止条件或者终止条件写的不对,如果递归没有终止,操作系统的内存栈必然就会溢出。3.确定单层递归的逻辑:确定每一层递归需要处理的信息,就会重复调用自己来实现递归的过程。对应此题:1.只需打印结点的数值,所以递归函数的返回类型就是void。2.递
2021-10-08 16:57:02
60
原创 数据结构-19.在线索二叉树中找前驱和后继
中序线索二叉树找中序后继:在中序线索二叉树中找到指定结点*p的中序后继next1.若p->tag=1,则next=p->rchild2.若p->tag=0,则next=p的右子树中最左下结点。//找到以p为根的子树中,第一个被中序遍历的结点ThreadNode *Firstnode(ThreadNode *p){ //循环找到最左下结点(不一定是叶子结点) while(p->ltag==0) p=p->lchild; return p;}//在中序线索二
2021-10-08 15:13:24
1141
原创 Java-19.简单知识点
一.第一个程序:1.java程序严格区分大小写2.javac 文件名.java3.java 类名先编译后运行,编译后生成字节码文件。二.基本数据类型:int:32bit,4byte(-21亿-21亿)byte:java中最小的数据单元。8bit(-128-127之间)short:16bit。(-32768-32767) 2bytelong:64bit。8Bytechar:16bit。unicode标准。可以存放数字,但实际是字符。fioat:单精度小数,32bit,4byte。d
2021-10-07 11:54:41
97
原创 Java-18.异常
异常的基本概念:1.异常是错误,运行时异常。2.抛异常,创建一个错误对象,把错误对象丢出来。3.捕获异常,默认由JVM来把错误信息进行捕获,打印出来,JVM会终止程序的执行。异常的分类:RuntimeException:运行时异常,一般不手动处理。其他Exception必须经过手动处理。Error:一般指系统级错误。异常的处理:try…catch…package obb;public class test { public static void main(String[] arg
2021-10-07 09:21:57
124
原创 Java-17.值传递与址传递
值传递:把变量的值作为参数进行传递。址传递:把变量直接最为参数传递。Java里面是值传递,所以传参数改变值是要注意用址传递。值传递:package obb;public class Animals { String color; public Animals(String color) { this.color = color; } }package obb;public class Cat extends Animals{ String name; public C
2021-10-06 16:15:37
99
原创 Java-16.toString+instanceof
默认:包名+类名+地址package obb;public class Cat { String name; String color; public Cat(String name, String color) { this.name = name; this.color = color; } public static void main(String[] args) { Cat a=new Cat("Betsy","pink"); System.out.println(
2021-10-06 11:03:44
78
原创 Java-15.小练习
现在有两种数据库,一个是Mysql数据库,另一个是Oracle数据库。设计一个可以根据用户输入来自动选择数据库,并执行增删改查操作。需求:在main里,根据用户输入信号系统自动创建一个MysqlDao或者OracleDao,然后执行增删改查操作。public interface IDAO { void add(); void del(); void upd(); void sel(); void connect();}public abstract class AbstractDao
2021-10-05 21:55:57
66
原创 Java-14.equals和==
==是判断左右两端的数据是否一致equals:object类提供的一个方法,用来判断两个对象是否相等equals:可以自己重写字符串的判断一定要用equals来判断
2021-10-05 11:50:04
69
原创 数据结构-18.线索二叉树
一.线索二叉树的定义://线索二叉树结点typedef struct ThreadNode{ ElemType data; struct TheadNode *lchild,*rchild; int ltag,rtag; //左右线索标志}ThreadNode,*ThreadTree;
2021-10-04 20:32:06
109
原创 数据结构-17.二叉树的层次遍厉-由遍历序列构造二叉树
算法思想:1.初始化一个辅助队列2.根结点入队3.若队列非空,则队头结点出队,访问该结点,并将其左右孩子插入队尾4.重复3直到队列为空//二叉树结点(链式存储)typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;//链式队列结点typedef struct LinkNode{ BiTNode *data; //存指针而不是结点 struct LinkNode *ne
2021-10-04 10:22:35
183
原创 关于C语言中typedef struct问题
1.struct tag:定义一个struct:struct tag { int a; int b;} Tag1;这里的tag只是一个标签,并不是类型,而struct tag才是一个完整的类型,定义变量需要:struct tag variable;而上面的Tag1在定义struct结构体的时候定义的一个变量。2.typedef struct:typedef struct { int a; int b;}name;这里的name是一个struct类型的别
2021-10-04 09:53:38
380
原创 数据结构-16.二叉树的先序中序后序遍历
typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;先序遍历:(递归)void PreOrder(BiTree T){ if(T!=NULL){ visit(T); //访问根结点(打印) PreOrder(T->lchild); //递归遍历左子树 PreOrder(T->rchild); //递归遍历右子树 }}中序遍历:(递归)voi
2021-10-03 10:28:21
114
原创 数据结构-15.二叉树的顺序存储
顺序存储:可以让第一个位置空缺,保证数组下标和结点编号一致。#define MaxSize 100struct TreeNode{ ElemType value; bool isEmpty; //结点是否为空};TreeNode t[MaxSize];for(int i=0;i<MaxSize;i++){ t[i].isEmpty=true;}定义一个长度为MaxSize的数组t,按照从上至下,从左到右的顺序依次存储完全二叉树中的各个结点。根结点标号为1i的左孩子:2I
2021-10-03 09:30:39
354
2
原创 Java-13.成员变量初始值
成员变量初始值:java中的所有变量必须先声明,后赋值才能使用。java中的成员变量,在创建对象的时候,都会执行一次初始化操作,都会给一个默认值。基本数据类型默认值都是0,包括boolean->false引用数据类型:nullnull表示空,什么都没有,只是占位。package test;public class data { public byte a; public short b; public int c; public long d; public char e;
2021-10-02 21:43:49
956
原创 LeetCode-*143.重排列表
重排链表给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0 → L1 → … → Ln-1 → Ln请将其重新排列后变为:L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入: head = [1,2,3,4]输出: [1,4,2,3]示例 2:输入: head = [1,2,3,4,5]输出: [1,5,2,4,3]提示:链表的长度范围为 [1, 5 * 104].
2021-10-01 09:37:52
104
原创 LeetCode-206.反转链表
示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]示例 2:输入:head = [1,2]输出:[2,1]示例 3:输入:head = []输出:[]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?相当于将指向(箭头)倒置,很简单的思路。注意保存当前结点的next结点。/** * Definition for si
2021-09-30 21:55:11
75
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人