- 博客(66)
- 收藏
- 关注
原创 pip install 安装库
在这里,name 是包的名称,version 是版本号,author 和 author_email 是作者的姓名和电子邮件地址,description 是包的描述,license 是许可证。install 命令是 setup.py 的一个子命令,告诉 Python 安装该包。classifiers 参数包含有关包的元数据的其他信息,例如包的状态、受众、支持的 Python 版本等。这里,install_requires 参数用于指定该包的依赖项,可以是其他的 Python 包或库。
2023-03-03 15:59:39
3798
原创 Python类方法
在Python中,@staticmethod 和 @classmethod 是两个常用的装饰器,用于定义类方法。这两个装饰器都可以在类中定义方法,但它们的作用有所不同。
2023-03-02 14:46:58
447
原创 字节序的大端和小端
字节序(Byte Order)是指在多字节的数据类型(如整型、浮点型等)在内存中存储时,字节的排列顺序。大端字节序(Big-Endian):高位字节存储在低位地址,低位字节存储在高位地址。比如整数值 0x12345678,在内存中的存储顺序是:0x12(高位字节) 0x34 0x56 0x78(低位字节)。小端字节序(Little-Endian):低位字节存储在低位地址,高位字节存储在高位地址。
2023-02-28 21:43:42
2265
原创 watchdog库使用
watchdog是一个Python库,用于监控文件系统中的变化,例如新文件的创建、文件内容的修改、文件的删除等。它可以跨平台运行,并且使用简单。在实际应用中,watchdog可以用来监控文件夹,当新的文件被创建时,可以自动触发相应的操作。例如,在一个图像检测应用中,可以使用watchdog监控一个文件夹,当新的图像文件被创建时,可以自动调用图像检测算法进行处理,从而实现自动化的图像检测。watchdog支持多种操作系统,包括Windows、Linux、macOS等。
2023-02-28 17:48:03
661
原创 python找出某个文件夹下某个后缀的文件
你可以将/path/to/folder替换为你要搜索的文件夹路径,将.txt替换为你要搜索的后缀名。该函数接受一个文件夹路径和一个后缀名作为参数,并返回一个包含所有以该后缀名结尾的文件名的列表。这个程序将输出一个包含所有以.pdf结尾的文件名的列表。
2023-02-22 16:41:09
5240
原创 计算机视觉
计算机视觉是人工智能(AI)的一个领域,它使计算机和系统能够从数字图像、视频和其他视觉输入中提取有意义的信息,并根据该信息采取行动或提出建议。如果AI使计算机能够思考,那么计算机视觉使它们能够看、观察和理解。计算机视觉的工作方式与人类视觉类似,只是人类具有先天优势。人类的视觉具有一生的语境训练优势,可以学会如何区分物体、确定它们的距离、判断它们是否在移动以及图像中是否有问题。计算机视觉训练机器来执行这些功能,但它必须在更短的时间内使用摄像机、数据和算法而不是视网膜、视神经和视觉皮层。
2023-02-03 15:57:06
569
原创 转为灰度图
# -*-coding: utf-8 -*-from PIL import Imagefrom pylab import *import matplotlib.pyplot as pltpil_im = Image.open('empire.jpg')gray()subplot(121)title(u'原图')axis('off')imshow(pil_im)pil...
2019-04-13 17:35:45
308
原创 转换图片
# -*- coding: utf-8 -*-from PCV.tools.imtools import get_imlist #导入PCV模块from PIL import Imageimport osimport picklefilelist = get_imlist('convert_images_format_test/') # 获取convert_images_format...
2019-04-13 17:34:51
132
原创 c语言学习笔记47
指向结构体变量的指针定义形式:struct 结构体名 *结构体指针名;例 struct student *p;使用结构体指针变量引用成员形式(*结构体指针名).成员名结构体指针名->成员名结构体变量名.成员名指向结构体的指针变量指向运算符优先级: 1结合方向:从左向右用指向结构体的指针作函数参数用结构体变量的成员作参数-
2016-07-06 22:49:02
252
原创 c语言学习笔记46
C语言允许定义匿名结构,所谓匿名结构,就是不指定结构体的名称,但一定要在结构体定义的同时声明至少一个结构体变量,否则,这种用法没有意义,如:struct{char name[20];int age;}wangwu, lisi;这样便声明创建了两个结构体变量wangwu和lisi,可以通过诸如“wangwu.name”等形式来访问其成员,但这种类型没有名称,因此无法在以后
2016-07-04 22:02:23
247
原创 c语言学习笔记45
结构体变量不能整体引用,只能引用变量成员引用方式: 结构体变量名.成员名可以将一个结构体变量赋值给另一个结构体变量结构体嵌套时逐级引用C语言不允许使用一个数组直接为另一个数组赋值,但使用一个结构体变量为另一个结构体变量赋值是合法的,可以使用赋值操作符(=)将一个结构变量B赋值给另一个结构变量A,这样,结构变量A中的每个成员都将被设置成结构变量B中相应成员的值,即使成员是数组类型
2016-07-03 22:45:05
254
原创 c语言学习笔记44之结构体
初始化形式1struct 结构体名{ 类型标识符 成员名; 类型标识符 成员名; …………….};struct 结构体名 结构体变量={初始数据};形式2struct 结构体名{ 类型标识符 成员名; 类型标识符 成员名; …………
2016-07-02 21:31:02
237
原创 c语言学习笔记43
结构体结构体是一种构造数据类型用途:把不同类型的数据组合成一个整体-------自定义数据类型结构体类型定义struct 结构体名(struct 是关键字,不能省略 合法标识符,可省略){ 类型标志符 成员名; 类型标志符 成员名;(成员类型可以是基本型或构造型) ''''''' }结构体变量...;定义结构体类型的同
2016-07-01 22:41:02
234
原创 c语言学习笔记42
在某些场合,要求输入一个字符串,如果是大小写无关的,问题就来了,比如,在大小写无关意义下,“AB”、“ab”、“aB”、“Ab”都是等价的,这仅仅是两个字母的情况,如果字母更多,情况更复杂,在程序中去一一判断也很不现实,为此,C标准库提供了字符串处理函数strupr,用于将字符串中所有的字母都转换成大写形式,其原型为;char* strupr(字符串);//自己编写字符串函数//求长度
2016-06-30 21:28:09
288
原创 c语言学习笔记41
指针变量的值是可以改变的,而数组名代表一个固定的值(数组首元素的地址),不能改变。int main(){ char *a="I love China!";//不能改为char a[]=“I love China!”; a=a+7; printf(“%s\n”,a); return 0;}字符数组中各元素的值是可以改变的,但字符指针变量指向的字符串常量中的内
2016-06-29 22:37:57
261
原创 c语言学习笔记40之字符串函数
strcmp函数用于对两个C风格字符串进行比较,此处的比较不是比较两个字符串的长度,而是逐个比较字符的ASCII码,举例来说,如果字符串1以字母A开头,而字符串2以B开头,则不论两个字符串长度如何,不论两个字符串后续字串是什么,字符串2“大于”字符串1成立(B的ASCII码66大于A的ASCII码65),如果打头字符相同,则比较第2个字符,依此类推,如果第2个字符相同,则比较第3个字符……如果
2016-06-28 22:14:49
321
原创 c语言学习笔记39字符数组
字符串用一维字符数组存放字符数组具有一维数组的所有特点数组名是指向数组首地址的地址常量数组元素的引用方法可用指针法和下标法数组名作函数参数是地址传递等区别存储格式:字符串结束标志赋值方式与初始化输入输出方式:%s %c用字符数组和字符指针变量都能实现字符串的存储和运算,但它们二者之间是有区别的,不应混为一谈,主要有以下几点。(1) 字符数组由若干个元素
2016-06-27 23:04:49
407
原创 c语言学习笔记38之字符指针
字符指针初始化:把字符串首地址赋给stringchar *string; string=“I love China!”;C语言允许用字符串常量来初始化字符数组:char c[100] ={"C Program"}; char line[10][10] ={{"*"}, {"***"},{"*"}}; 上面的两个例子也可以写成:char c[100] ="C Pro
2016-06-26 21:56:55
327
原创 c语言学习笔记37之字符串
字符数组的定义形式为:char 数组名[ 常量表达式 ];如:char a[100];定义了一个字符数组,名字叫c;a数组的数据类型是char [100],表示a中存储有100个字符元素; 这100个字符元素的名字分别是: a[0],a[1],a[2], ...... ,a[99]字符数组的常见初始化形式如下例:char c[5]={ ‘a’,’b’,’
2016-06-25 22:23:29
718
原创 c语言学习笔记36
代码‑ free函数把指针怎么了#include /*使用printf要包含的头文件*/#include void main(void)/*主函数*/{/*声明一int型指针p,并申请一块动态内存,用其首地址为p初始化*/int *p=(int*)malloc(10*sizeof(int));if(p==NULL) /*防错处理,看内存申请是否成功*/{
2016-06-24 22:39:26
552
原创 c语言学习笔记35之calloc
除了malloc与free外,C语言标准库函数还提供了calloc函数用以动态申请内存,和malloc函数以字节为单位申请内存不同,calloc函数是以目标对象为单位分配的,目标对象可以是数组,也可以是后面会讲到的结构体等。calloc函数的原型为:void* calloc(size_t num, size_t size);malloc()函数返回类型也是void*,需要强制转换才能为
2016-06-23 22:25:26
507
原创 c语言学习笔记34之动态内存分配
先要搞明白一个问题,什么是动态分配,什么是静态分配?举例来说,在声明数组时,必须明确告诉编译器数组的大小,之后编译器就会在内存中为该数组开辟固定大小的内存。有些时候,用户并不确定需要多大的内存,使用多大的数组,为了保险起见,有的用户采用定义一个大数组的方法,开辟的数组大小可能比实际所需大几倍甚至十几倍,这造成了内存的浪费,带来了极大的不便。另一方面,即使用户确切知道要存放的元素个数,但随着问题的深
2016-06-22 22:56:46
321
原创 c语言学习笔记33之void
void *指针是一种特殊的指针,不指向任何类型的数据,如果需要用此地址指向某类型的数据,应先对地址进行类型转换。可以在程序中进行显式的类型转换,也可以由编译系统自动进行隐式转换。无论用哪种转换,大家必须了解要进行类型转换指针变量可以有空值,即该指针变量不指向任何变量,可以这样表示: p=NULL;const取自英文单词constant,是“恒定、不变”的意思,早期的C语言并没有con
2016-06-21 23:19:38
278
原创 c语言学习笔记32
一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址。其概念与以前类似,只是返回的值的类型是指针类型而已定义返回指针值的函数的一般形式为 类型名 *函数名(参数表列);左值的概念, “可放在赋值号左边的都可称为左值”指针变量以及指针变量的间接引用都可作左值,如:int num1=0,num2=0;int* p=&num1;p=&num2;
2016-06-20 23:06:59
178
原创 c语言学习笔记31之函数指针
如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址,称为这个函数的指针。可以定义一个指向函数的指针变量,用来存放某一函数的起始地址,这就意味着此指针变量指向该函数。例如: int (*p)(int,int); 定义p是指向函数的指针变量,它可以指向类型为整型且有两个整型参数的函数。p的类型用int (*)(int,int)表示定义
2016-06-19 22:24:33
199
原创 c语言学习笔记30之函数参数
用指向数组的指针作函数参数一维数组名可以作为函数参数,多维数组名也可作函数参数。用指针变量作形参,以接受实参数组名传递来的地址。可以有两种方法:①一维数组用指向变量的指针变量②二维数组用指向一维数组的指针变量实参数组名是指针常量,但形参数组名是按指针变量处理在函数调用进行虚实结合后,它的值就是实参数组首元素的地址
2016-06-18 22:52:09
484
原创 c语言学习笔记之指针实例
#include int main(){ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23} printf(“%d,%d\n”,a,*a); printf(“%d,%d\n”,a[0],*(a+0)); printf(“%d,%d\n”,&a[0],&a[0][0]); printf(“%d,%d\n
2016-06-17 22:51:13
221
原创 c语言学习笔记29之指针5
指针与数组表 示 形 式 含义 地 址a 二维数组名,指向一维数组a[0],即0行首地址 2000a[0],*(a+0),*a 0行0列元素地址 2
2016-06-16 23:22:13
179
原创 c语言学习笔记28之指针4
对两个毫无关联的指针比较大小是没有意义的,因为指针只代表了“位置”这么一个信息,但是,如果两个指针所指向的元素位于同一个数组(或同一块动态申请的内存中),指针的大小比较反映了元素在数组中的先后关系。若有p=a(p指向数组a),则:p++(或p+=1),表示p指向下一元素。*p++与*(p++)等价。同样优先级,结合方向为自右向左。*(p++) 与*(++p)。前者是先取
2016-06-15 23:12:01
297
原创 c语言学习笔记27之指针3
指针变量的值“指针变量的值”是指针本身存储的数值,这个值将被编译器当作一个地址,而不是 一个一般的数值。在32位程序里,所有类型的指针的值都是一个32位整数,因为32位程序里内存地址长度都为32位。“指针所指向的内存区“就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。一个指针的值是A,即是说该指针指向了以A为首地址的一片内存区域;反之,说一个指针
2016-06-14 23:13:50
228
原创 c语言学习笔记26之指针2
指针变量作为函数参数——地址传递特点:共享内存,“双向”传递指针变量声明后,编译器为其开辟一定的内存空间,即指针变量占据一定的内存空间。不论是何种类型的指针,都占据4个内存字节(这是由32位地址数据决定的)。如果是64位操作系统,指针就是8个字节。指针变量也是变量,占据一定的内存空间,有地址,因此可以用一个指针指向它,这称为指向指针的指针,或二级指针指针类型,指的是
2016-06-13 23:13:14
302
原创 c语言学习笔记25之指针1
指针:一个变量的地址指针变量:专门存放变量地址的变量注意:一.指针是个量,对应着一块内存区域, 二.指针存储的信息是某个内存单元的地址。 三.指针变量必须先赋值,再使用。在声明一个指针后,编译器并不会自动完成其初始化,此时,指针的值是不确定的,也就是说,该指针指向那块内存单元是完全随机的,因此,指针变量的初始化十分重要,直接使用未加初始化的指针变
2016-06-12 23:22:33
235
原创 c语言学习笔记24之内存
从硬件形态上说,内存就是一条形物理设备,从功能上讲,内存是一个数据仓库,程序内在执行前都要被装载到内存中,才能被中央处理器执行。举Windows系统为例,执行安装在硬盘上的某个程序,实际上是将该程序的指令和数据导入内存,供中央处理器执行的过程。内存是由按顺序编号的一系列存储单元组成的,在内存中,每个存储单元都由唯一的地址,通过地址可以方便地在内存单元中存储信息。内存中的数据要靠供电来维持,
2016-06-11 22:03:17
337
原创 c语言实例之函数副本机制
#include #include struct mystruct{ int a[5]; int n;};void change(struct mystruct my1){ my1.n = 100; my1.a[0] = 1000; printf("changen = %p\n",&my1.n); printf("change = %p\n",&my1);}in
2016-06-08 22:27:23
917
原创 c语言实例之函数求参顺序
#include #include int show(int a,int b){ printf("%d\n",a); printf("%d\n",b);}int main(){ int num; num = 100; show(num,++num); //从左往右 打印100 101; //从右往左 打印101 101; system("pause"); re
2016-06-07 23:02:58
328
原创 c语言实例之腾讯面试题
#include #include //腾讯面试问题:有50个台阶,一次走一步或者走两步,有多少种可能double tencent(int n){ if(n==1) { return 1.0; } else if(n==2) { return 2.0; } else { return tencent(n-1)+tencent(n-2); } }do
2016-06-06 23:04:05
449
原创 c语言函数实例1
#includevoid increase(int x,int y,int z)//函数声明{//打印自增前的形参值printf("Before increment in function:\n");printf("x=%d,y=%d,z=%d\n",x,y,z);//将形参自增++x;++y;++z;//打印自增后的形参值printf("After increment
2016-06-05 22:42:35
297
原创 c语言学习笔记23之面向过程的模块化编程
在60年代计算机发展的初期,程序设计是少数聪明人的玩具,程序员可以根据自己的喜好,像捏泥巴一样进行程序设计,注释几乎是一行没有,想到哪写到哪,大多数程序代码组织混乱,可以说只有作者本人可以看懂,有的甚至作者读起来也不知所以,常称为被称为“意大利面条式编程”。这种个人英雄主义的单打独斗在解决小规模问题时勉强可以,但程序规模的不断扩大,一大堆的问题凸现出来:程序质量低下,进度延误,预算严重超支,这
2016-06-04 22:15:17
705
vue基础面试题目,包含各种基础知识
2023-03-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人