自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (9)
  • 收藏
  • 关注

原创 ffmpeg的简单使用(压缩、切割、合并、格式转换等)

转换视频格式:ffmpeg -i a.mpg -y -qscale 0 n1.mp4压缩视频:ffmpeg -i a.mp4 -vcodec libx264 -crf 20 1.mp4

2020-08-03 15:50:36 783

原创 数据结构15: 有序表抽象数据类型

目录一、什么是有序表orderedlist ?二、orderedlist定义的操作1、search方法2、add方法3、所有代码四、链表实现的算法分析一、什么是有序表orderedlist ?有序表是一种数据项依照某种可比性质(如整数大小、字母表先后)来决定在列表中的位置。越小的数据项越靠近列表的头,越靠前。二、orderedlist定义的操作有序表数据定义的操作如下:List(): 创建一个空的有序表add(item): 添加一个数据项到列表中.

2020-08-31 20:27:51 588

原创 数据结构14:无序表抽象数据类型(链表)(二)

一、无序表unorderlist的链表实现1、无序表的add方法接下来考虑如何向无序表中添加数据项,实现add方法。由于无序表并没有限定数据项之间的顺序,因此新的数据项可以添加到原表的任何位置。按照实现的性能考虑,我们首先想到的肯定是最容易加入的位置。那么,哪里是最容易加入的位置呢?由链表的结构我们知道,要访问到整条链上的所有数据项,都必须从表头的head开始,沿着next链接逐个向后查找,所以添加数据项最快捷的位置是表头,也就是整个链的首位置。代码实现: def add

2020-08-30 17:05:45 308

原创 数据结构13:无序表抽象数据类型(链表)(一)

一、什么是无序表在前面基本数据结构的讨论中,采用python list实现了多种线性数据结构,主要包括栈、队列、双端队列,可以发现列表list是一种简单强大的数据集结构,提供了丰富的操作接口。什么是列表呢?列表其实是一种数据项按照相对位置存放的数据集。特别的,被称为“无序表(unordered list)”,其中的数据项只按照存放位置来索引,如第一个、第二个等(这里假设表中不存在重复的数据项)。例如一个考试分数的集合“54,26,93,17,77,31”,如果用无序表来表示的话,就是[54

2020-08-29 22:20:15 825

原创 数据结构12:双端队列与回文词判定

目录一、什么是双端队列二、双端队列Deque定义的操作:三、双端队列的python实现四、回文词判定五、回文词判定代码实现一、什么是双端队列双端队列Deque是一种有序的数据集跟队列相似,其两端可以称为“首端”与“尾端”,区别是:双端队列Deque中数据项可以从队首加入,也可以从队尾加入,数据项也可以从两端移除。因此,从某种意义上说,双端队列集成了栈和队列的能力。双端队列不具有内在的“后进先出”或者“先进先出”的特性,如果用双端队列来模拟栈或者队列,需要由使用者.

2020-08-28 18:45:57 639

原创 数据结果11:队列的应用(热土豆问题)

热土豆问题(击鼓传花的土豆版本)传烫手的热土豆,鼓声停的时候,手里有土豆的小孩出列。如果去掉鼓,改为传过固定人数,就成了“现代版的”约瑟夫问题。算法用队列来实现热土豆问题的算法,参加游戏的人名列表,以及传土豆次数,算法返回最后剩下的人名。实现过程:程序采用队列来存放所有参加游戏的人名,按照传递土豆方向排到队尾 游戏开始,只需要将队首的人出队,随即再到队尾入队,就完成了土豆的一次传递在游戏的过程中,队首始终是持有土豆的人。传递num次之后,将队首的人移除,不在乎入队,如此反复

2020-08-27 18:52:33 984

原创 数据结构10:队列抽象数据类型

一、什么队列队列是有次序的数据集合,其特征是:新数据项的添加总发生在一端,通常称为“尾rear端” 现存数据的一处总发生在另一端,通常称为“首front端”当数据项加入队列时,首先出现在队尾,随着队首数据项的移除,它逐渐接近队首。新加入的数据项必须在数据集的末尾等待,而等待时间最长的数据项则是队首,这种次序安排的原则称为FIFO(First-in-first-out),队列仅有一个出口和一个入口:不允许数据项直接插入队列中,也不允许从中间移除数据项。生活中常见的队列:打印机的打印队列、进

2020-08-26 18:45:00 1709

原创 数据结构9:后缀表达式求值

前面介绍了中缀表达式转化为后缀表达式,那么后缀表达式怎么求值的呢?一、算法原理与中缀转化为后缀的问题不同,在对后缀表达式从左到右扫描的过程中,由于操作符在操作数的后面,所以要暂存操作数,碰到操作符的时候,再把暂存的两个操作数取出来,进行实际的计算。仍然是栈的特性:操作符之作用于与它最近的两个操作数。如“456*+”:先扫描到4和5两个操作数,但是此时不知道这两个操作数要进行什么样的操作,所以暂存起来。 继续扫描,碰到了操作数6,还是不知道怎么计算,仍然暂存。 直到“*”,现在知道是栈

2020-08-26 17:34:25 3327

原创 数据结构8:表达式转换(二)

目录通用的中缀转换后缀算法A+B*C(A+B)*C算法流程代码实现通用的中缀转换后缀算法先来说一下“通用”是什么意思。上一节说到,我们在把中缀表达式转化为前缀后缀表达式的时候需要先把中缀表达式转化为全括号的形式,有的小伙伴可能会觉得有点麻烦,那么是不是可以跳过这一步呢?当然是可以的,这就是“通用”的转化算法。A+B*C首先我们看中缀表达式A+B*C,它的后缀表达式是什么呢?很简单,是ABC*+,在这里,大家观察: 操作数ABC的顺序没有改变。 .

2020-08-25 20:57:50 326

原创 数据结构7:表达式转换(一)

中缀表达式什么是中缀表达式对于这样的表达式:B*C,我们真容易知道这是B乘以C,这种操作符(operator)介于操作数(operand)中间的表示方法,称为“中缀表示法”。 但是有时候中缀表示法会引起混淆,比如"A+B*C",是A+B然后再乘以C,还是B*C然后再加A呢?中缀表达式中的优先级人们引入了操作符“优先级”的概念来消除混淆,规定:1、高优先级的操作符先计算。2、相同优先级的操作符从左到右依次计算。这样的话,A+B*C就不存在上面提到的疑义了。同时,引入了括号来表示强制优先级.

2020-08-21 20:15:21 1505

原创 数据结构6:栈的应用(十进制转化为二进制)

十进制转化为二进制,采用的是“除以2求余数”的算法,就是将整数不断除以2,每次得到的玉树就是由低到高的二进制这个“除以2”的过程得到的余数是从低到高的次序,而输出则是从高到低,所以需要一个栈来反转次序。十进制转化为二进制代码实现:class Stack(): """定义一个栈""" def __init__(self): self.items = [] def isEmpty(self): return self.items()

2020-08-19 20:50:20 3984

原创 数据结构5:栈的应用(简单括号匹配)

我们都写过这样的表达式:(5 + 4) * (8 + 9) / ( 4 + 3),括号的使用必须遵循平衡的原则:1、每个开括号要恰好对应一个闭括号;2、每对开闭括号要正确的嵌套正确的括号:((())), ((()))错误的括号:(((((()), ()))对括号是否正确匹配的识别,是很多语言编译器的基础算法下面看看如何构造括号匹配识别算法从左到右扫描括号串,最新打开的左括号,应该匹配最先遇到的右括号,这样,第一个左括号(最早打开),就应该匹配最后一个右括号(最后遇到),这种次序反转的识别,

2020-08-19 20:24:41 251

原创 数据结构4:栈抽象数据类型

什么是栈?栈(stack),是一种有序数据项的集合,数据项的加入和移除都发生在同一端。 发生加入或移除的一端是栈顶,另一端是栈底。 日常生活中有很多栈的应用,如盘子、托盘、书堆等等栈的特性距离栈底越近的数据项 , 留在栈中的时间 就越长,最新加入栈的数据项会被最先移除这种次序通常称为 “ 后进先出 LIFO ” :Lat in First out,这是一种基于数据项保存时间的次序,时间越短的离栈顶越近,时间越长的离栈底越近总结起来很简单,就是早放进去的,后取出,在栈离的时间就越..

2020-08-18 20:32:16 621

原创 数据结构3:线性结构

什么是线性结构?线性结构是一种有序数据项的结合,其中每个数据项都有唯一的前驱和后继。这句话是什么意思呢?其实就是说,线性结构就是放在一起的有序的数据,其中每个数据都有唯一的前项和后项。比如我们排队的时候,所有排队的人组成了一个线性结构,每个人就是其中的数据项,每个人的前面和后面都有其他人(第一个和最后一个除外),具有这种性质的数据集就是线性结构。线性结构总有两端,不同的情况下称呼也不同,有时候成为“左”“右”端、“前”“后”端、“顶”“底”端。两端的称呼怎么都可以,关键是的区别是数据项.

2020-08-18 19:56:45 537

原创 数据结构2:python数据类型的性能(list和dict)

1、这里主要讨论python两种数据类型上各种操作的大O数量级:列表和字典主要通过运行试验来估计其各种操作运行时间数量级2、比较list和dict的操作列表的各种操作的实现方法有很多(比如append,可以有多种实现方法),那么具体的,是如何选择哪种实现方法呢? 起始总的方案就是,让最常用的操作性能最好,牺牲不太常用的操作。80/20准则:80%的功能其使用率只有20%。(简单来说,就是保证那些常用的骚操作性能好一点,不太常用的操作可以性能弱一点)3、List列表数据类型的常用操

2020-08-17 21:14:42 657

原创 数据结构1:大O表示法

一个算法所实施的操作数量或步骤数可作为独立于具体程序/机器的度量指标,就是说算法执行的操作的步骤数。那么问题来了,这个操作选择什么比较好呢?因为这个操作可以是赋值语句,也可以是其它的。其实主要就是用的赋值语句,为什么呢?原因主要有以下几点:一条赋值语句同时包含了(表达式)计算和(变量)存储两个基本资源,而计算机主要干的事情就是计算和存储。 仔细观察程序设计语言特性,除了与计算资源无关的定义语句外,主要就是三种控制流语句和赋值语句,而控制流仅仅起了组织语句的作用,并不实施处理。例如:def

2020-08-16 16:26:44 2124

原创 pytorch实现VGG网络

pytorch实现vgg网络:class vgg(nn.Module): def __init__(self, n_class=1000): super(vgg, self).__init__() self.n_class = n_class self.features = nn.Sequential( # conv1 nn.Conv2d(in_channels=3, out_channels=6

2020-08-14 15:25:50 464

转载 pytorch搭建网络的几种方法

pytorch搭建网络的几种方法:https://blog.csdn.net/qq_37385726/article/details/81740233感谢作者

2020-08-14 15:22:15 323

image_stitching.zip

基于opencv实现多张图像的全景拼接,有效避免鬼影现象,可直接运行。

2020-12-15

图像离散傅里叶变换,C++实现,可直接运行

图像离散傅里叶变换,C++实现,可直接运行,调用OpenCV。

2020-12-11

猫狗分类数据集(百度网盘下载)

猫狗分类数据集,kaggle比赛数据,包括训练数据和测试数据,训练数据共25000张图像,百度网盘下载,需要的朋友可以下载。

2020-11-16

VOC0712.txt

VOC2007和2012的百度网盘下载地址

2020-06-19

opencv_contrib_python-3.4.2.17-cp37-cp37m-manylinux1_x86_64.whl

opencv-python安装包,Linux系统,python3.7用,版本是3.4.5.20

2020-03-26

Pyrex-0.9.9.tar.gz

pyrex安装包,linux系统亲测可用,windows和mac没有试,下载之后直接安装就可以

2020-03-26

深度学习Pytorch实战计算机视觉

深度学习Pytorch实战计算机视觉,高清版本,需要的朋友可以下载

2019-01-30

numpy-1.13.0+mkl-cp35-cp35m-win_amd64

python35的numpy+mkl安装包,numpy-1.13.0+mkl-cp35-cp35m-win_amd64

2019-01-30

图像处理的常见滤波方法,matlab代码

包含图像处理中常用的几种滤波方法,有matlab代码和ppt讲解,包含均值滤波,中值滤波,高斯滤波,双边滤波,有示例演示。

2017-09-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除