- 博客(39)
- 收藏
- 关注
原创 关于Pybind的详细安装与配置过程
入职前有关Pybind的学习,用时接近一天,终于把这块拿下了,心累!!!必须记录下来!一、pybind相关基本知识pybind11是一个轻量级的仅头文件库,是一个只有标题的库,因此不需要链接任何特殊的库,主要用于创建现有C++代码的Python绑定。可将pybind11库视为Boost.Python的一个小型自包含版本,其中剥离了与绑定生成无关的所有内容,依赖于python(2.7或3.5+)和C++标准库。pybind11核心功能:pybind11可以将C++功能映射到Python。pybind1
2022-05-27 18:05:39
6675
6
原创 Python实现斐波那契数列
斐波那契数列,又称为黄金分割数列、“兔子数列”,数列格式为:1、1、2、3、5、8、13、21、34…python实现:#递归方式生成前20项lis=[]for i in range(20): if i==0 or i==1: # 第1,2项都为1 lis.append(i) else: lis.append(lis[i-2]+lis[i-1]) # 从第三项开始每项值为前两项值之和print(lis)如上!!!...
2021-10-07 14:39:00
1486
原创 python实现二分法
二分法和猜数游戏类似,猜的时候猜中间的那个数,折半查找。就数组来说,数组越长,梯度下降越快,二分查找优势越明显。python代码实现:def sun_search(list,item):low=0high=len(list)-1n=0while low<=high:mid=int((low+high)/2)guess=list[mid]n+=1if list[mid]==item:print(n)return midif list[mid]<item:lo...
2021-09-25 20:12:54
342
原创 python实现冒泡排序
冒泡排序是比较经典的一种排序方法。冒泡排序主要就是从序列的左端开始重复比较相邻两个元素的大小,根据比较的结果来判断是否需要交换两个元素的位置,最终使得序列元素满足升序或降序排列。python实现:def bubble_sort(list):# 冒泡排序n=len(list)flag=False # 外层循环控制每轮的比较次数 for i in range(n-1): # 内层循环用于比较元素并交换 for j in range(n-i-1): ...
2021-09-25 19:57:40
228
原创 python实现冒泡排序
冒泡排序是比较经典的一种排序方法。冒泡排序主要就是从序列的左端开始重复比较相邻两个元素的大小,根据比较的结果来判断是否需要交换两个元素的位置,最终使得序列元素满足升序或降序排列。 python实现:def bubble_sort(list):# 冒泡排序n=len(list)flag=False # 外层循环控制每轮的比较次数 for i in range(n-1): # 内层循环用于比较元素并交换 for j in range(n-i-1): ...
2021-09-25 19:52:40
282
原创 Python-基本文件操作
一 创建和打开文件:open()函数功能:1.打开一个不存在的文件时先创建该文件(mode的参数值指定w、w+等)。格式为:file=open(‘message.txt’,‘w’)2. 以二进制形式打开文件。file=open(‘picture.png’,‘rb’)3. 打开文件时指定编码方式。file=open(‘notice.txt’,encoding=‘utf-8’)二 关闭文件:file.close()注意:如果在打开文件时抛出异常,将导致文件不能被及时关闭,为避免这种i情况,可以使用py
2021-09-14 21:50:31
98
原创 python调试
1.使用断点进行调试。2.使用assert语句(断言)进行调试。实例如下:通常情况下,assert语句可以和异常处理语句结合使用,所以代码可以修改为:assert语句只在调试阶段有用,可以关闭assert语句:python -O moudle.py如上!!!!...
2021-09-14 17:02:03
115
原创 以主程序的形式执行
在与该模块同级的目录下创建一个main.py模块,调用以上模块:结果:由结果可以看出,导入模块后,不仅输出了全局变量的值,而且模块中原有的测试代码也被执行了。如果要是只输出全局变量的值,可以将以上模块修改为:再次执行main.py,结果为;...
2021-09-14 16:21:09
215
原创 面向对象(2)
(2)双下划线:表示私有属性。只允许定义该方法的类本身进行访问,且不能通过类的实例进行访问。但是可以通过“类的实例名.类名__xxx”访问,但是不能直接通过实例名+属性名访问。(3)首尾双下划线:表示定义特殊方法,一般是系统定义名字,如__init__().二 属性(上一节属性将返回所存储的值,本节的属性则是一种特殊的属性)创建用于计算的属性通过@property(装饰器)将一个方法转化为属性,从而实现用于计算的属性。将方法转换为属性后,可直接通过犯法名来访问方法。语法格式为:为属性添加
2021-09-14 15:56:52
95
原创 面向对象(1)
python中,世间万物皆对象!通常将对象分为两部分:静态部分(属性)、动态部分(行为)。而类是封装对象的属性和行为的载体!!python中,类是一种抽象概念,在勒种,可以定义每个对象共有的属性和方法,而对象是类的实例。面向对象的三大基本特征:(1)封装:将对象的属性和行为封装起来,而载体就是类。思想是对客户隐藏程序实现细节。(2)继承:子类通过继承复用父类的属性和行为的同时,添加了子类特有的属性和行为,实现重复利用。如平行四边形和四边形的关系。(3)多态:将父类对象应用于子类的特征。一 类
2021-09-14 15:03:10
97
原创 python-函数
一 创建函数:def–不详解二 参数调用形参:定义函数时,函数名后边括号中的参数为‘形式参数’;实参:调用函数时,函数名后边括号中的参数为‘实际参数’。根据实际参数的类型不同,分为:(1)将实际参数的值传递给形式参数(实际参数为不可变对象)(2)将实际参数的引用传递给形式参数(实际参数为可变对象)其基本区别为:值传递后,形参改变,实参值不变;引用传递后,形参和实参均改变。举例;...
2021-09-09 21:30:10
196
原创 有关matlab裁剪图片方面
涉及到matlab裁剪图片,遇到一些小疑惑:imcrop的用法该函数用于图像裁剪,格式为I = imcrop(image)和I = imcrop(image, rect),这里的image可以是灰度图像,也可以是RGB图像。rect是设定图像尺寸,如XZ=imcrop(XZ,[100,200,700,100]):前两个数是裁剪图像左上角坐标;后两个数中,700是宽,100是高。之前查资料时有的说后两个数是图像右下角坐标,结果走了弯路~~~另外,matlab工作区显示裁剪图像尺寸为100700,相当于
2021-04-01 11:26:55
1484
原创 python:解决imshow出来的图像太大的问题
原本的显示图像的代码:cv2.imshow("findCorners", img)cv2.waitKey(0)cv2.destroyAllWindows()结果:修改后:# # 显示cv2.namedWindow('findCorners', 0) cv2.resizeWindow('findCorners', 700, 900) # 自己设定窗口图片的大小cv2.imshow("findCorners", img)cv2.waitKey(0)cv2.destroyAll
2020-09-28 16:11:32
22785
4
原创 c++给对象赋值
在c++中,只能给变量赋值,而不能给类型赋值,如:int = 5; //错误int x;x=5 //正确同样,不能给类赋值,而是先定义一个类对象,然后将值赋给改对象:Cat .itsAge = 5; //错误Cat Firsty;Firsty.itsAge=5; //正确如何访问类成员?定义一个世纪的Cat对象(如Firsty),就可以使用‘.’来访问该对象的成员。比如将50赋给Firsty的成员变量weight:Firsty.itsweight=50;声明类:cl
2020-09-21 21:18:03
1876
原创 python打包多类型文件
环境win10, python3.7,pyinstaller3.6一 下载pyinstaller(1)cmd中pip install pyinstaller(2)pycharm中file—settings—project Interpreter----右上角‘+’----搜索puinstaller----install package成功即可!二 主程序打包打开cmd,cd到程序文件夹位置由于文件夹中有多个子文件夹,包含多个程序,找到主程序的位置,使用命令行:pyinstaller -F
2020-09-21 10:31:42
923
2
原创 关于C++常量
C++有两种常量:字面常量与符号常量两种定义符号常量的方法:(1)用#define定义常量:# define students 15注意:这里的students没有特定类型。编译器只能在程序中看到15,而不是students。(2)用const定义:const unsigned short int students = 15优点是规定了常量的类型,这使得编译器可以根据其类型来正确使用它。...
2020-09-15 20:15:26
153
原创 python解决图片路径中有中文的情况
我们常用的cv2.imread()只能读取路径是英文的图片,如果出现图片路径带中文的情况,cv2.imread()就无法成功读取了, 需要用到cv2.imencode()!image = 'D:\监控软件报警图片\image.jpg'image = cv2.imdecode(np.fromfile(image, dtype=np.uint8), -1) print(image)此外,如果要保存图片的话,使用cv2.imwrite()同样无法成功,要使用cv2.imencode():p_path
2020-09-15 16:00:53
2493
原创 对于python 子类继承父类的理解
一直不太能理解子类父类之间继承关系的运用,用以下代码来说明:class Cat():def __init__(self): self.name = '猫' self.age = 4 self.color = newColordef run(self): print(self.name,'--在跑')def getName(self): return self.namedef getAge(self): return self.ageclass bosi(Cat
2020-09-08 21:01:34
463
原创 python中关于类的创建
一 创建类在面向对象的程序设计中,类是创建对象的基础,描述了所创建对象共有的树形和方法。定义一个类,格式如下:class 类名: 属性列表 方法列表# ------------------------------class Cat(): name = 'tesila' # 属性 age = 3 # 方法 def sleep(self): print() 注意:类的函数(方法)的参数都
2020-09-08 19:56:41
454
原创 关于python的集合操作
集合类型数据结构包括可变集合与不可变集合。创建可变集合的方式有:(1)使用花括号创建(传入元素必须是不可变的)set = {'A','B','C'}(2)使用函数set创建set1 = set([1,2,3]) #输出为{1,23}创建不可变集合:set2 = frozenset([1,2,3])并集:A|B 或是A.union(B)交集:A&B 或是A. intersection(B)差集:A-B 或是A.difference(B)异或集:A^B 或是A.sym
2020-09-08 10:53:19
207
原创 python批量修改文件夹中的图片名称
有时候需要修改文件夹中所有图片的名字,手动修改太麻烦,浪费时间。于是找到某大神的一段代码~~~path = "../rocker2"fileList = os.listdir(path) # 待修改文件夹print("修改前:" + str(fileList)) # 输出文件夹中包含的文件os.chdir(path) # 将当前工作目录修改为待修改文件夹的位置num =1 # 名称变量for fileName in fileList: # 遍历文件夹中所有文件 pat = ".
2020-09-08 09:25:05
1379
1
原创 python视频转图片
def getframe(videoPath, svPath): cap = cv2.VideoCapture(videoPath) numFrame = 0 while True: if cap.grab(): flag, frame = cap.retrieve() if not flag: continue else: # cv
2020-09-07 16:46:41
138
原创 python图片转视频
def makevideo(path, fps): """ 将图片合成视频. path: 视频路径,fps: 帧率 """ fourcc = cv2.VideoWriter_fourcc(*"mp4v") path1 = 'C:/Users/Administrator/Desktop/rocker1' # 图像文件夹路径 im = Image.open('C:/Users/Administrator/Desktop/rocker1/rocker1.jpg') # 其中一
2020-09-07 16:42:52
779
原创 Python中字典的相关操作
在python中,字典是属于映射类型的数据结构,其元素都具有与之对应且唯一的键,字典主要通过键来访问对应的元素。此外,元素在字典中没有严格的顺序关系。注意:字典中的键必须使用不可变数据类型的对象,如数字,字符串,元组等,且键是不允许重复的。;而值是一颗任意类型的,且在字典中可以重复。一 字典的创建(1)使用{}创建。这种方法与列表中的[]类似,不再赘述。(2)使用dict函数创建。dict函数的作用是指上主要是将包含双值子序列的序列对象转化为字典类型。双值子序列就是只包含两个元素的序列,如(“age
2020-09-07 16:38:17
177
原创 python中关于列表插入和删除操作
一 增添列表元素:(1)append:该元素会被追加到列表尾部。list.append(a)注意:append一次只能追加一个元素。(2)extend:能够将另一个列表添加到列表末尾,相当于两个列表进行拼接。list1.extend(list2)list1+=list2以上两种格式得到的效果相同。(3)insert:能够向列表中添加一个元素,并可以在指定位置添加。list.insert(3,'a') # 在列表中第4个位置添加a二 删除元素列表:(1)del:可以将列表中提取出
2020-09-05 15:38:35
992
1
原创 python的切片操作
对列表进行处理的时候,处理要提取当中某个元素外,还可能需要提取列表中的字列表元素,这就需要通过列表的切片操作来完成。具体切片的操作格式为sequence_name[start????step].当步长值为正数时,表示切片从左往右提取元素;若为负数,则表示从右往左方向提取。步长为正:mylist[2:7:2] 步长为负:mylist[-2:-7:-2] 列表反转:mylist[::-1] # 提取从右往左之间的全体元素,步长为1...
2020-09-05 15:05:50
266
原创 关于python的字符比较
字符的比较本质是字符的ASCII编码的比较。python提纲了两个可以进行字符与编码转换的函数(1)ord函数:将ASCII字符转换为对应的数值print(ord('a')) # 97(2)chr函数:将数值转换为对应的ASCII字符print(chr(97)) # a...
2020-09-04 14:39:29
500
原创 关于python字符串的基本操作
字符串基本操作:(1)提取指定位置的字符:只需要在变量后面使用[]将字符索引括起来。索引包括正索引和负索引,正索引是从左到右标记,从0开始;负索引是从右向左标记,从-1开始。(2)字符串切片:就是截取字符串的片段,形成子字符串。切片方式为s[i:j],i表示截取字符串的开始索引,j代表结束索引。注意:在截取字符串时将包含其实字符,但不包含结束字符,是一个半开闭区域。...
2020-09-04 14:13:12
285
原创 python中的数据类型
python中有6个标准的数据类型:数字(number),字符串(string),列表(list),字典(dictionary),集合(sets)。python3支持的数值型数据类型有int, float. bool complex分为数值型数据和字符型数据
2020-09-04 10:57:27
90
原创 python中关于变量与内存地址的关系
当我们创建一个变量时,在及其的内存中,系统会自动给该变量分配一块内存,用于存放变量值。这样说不好理解,直接用代码来说明:x = 4id(x) # 查看变量x指向的内存地址:30834096Ly = x # 将变量x重新赋给另一个新变量yid(y) # 地址为30834096Lx = 2 # 对变量x重新赋值print(x, y) id(x) # 地址为30834144Lid(x) # 地址为30834096L可以看出,一个变量在初次赋值是后获得一块内存空间来存放变量值,
2020-09-04 10:33:37
1372
原创 关于python的编码方式UTF-8
python3安装后,系统默认其源码文件为UTF-8编码,这样系统执行该文件时就不会出错。所以为源文件指定特定的字符编码是尤为重要的。指定方法是:在文件的首行或第二行(否则不会被及其解释)插入一行特殊的注释行,格式如下:#-*-coding:utf-8-*-其他格式如:#coding:utf-8#coding=utf-8也是可以的!!注意:此编码声明是以#开头,但不属于注释行!!...
2020-09-04 10:02:38
633
原创 python中的input函数
input():input函数的形参prompt是一个字符串,input函数的返回值是字符串型的。例如:mm = input('input your character:')print(mm)
2020-09-03 21:33:26
320
原创 python改变某像素值
最基础的例子,将BGR图像在(0,0)处的像素转化为白像素:普通的python数组转换:import cvimport numpy as npimg=cv.imread(“mupic.png”)img[0,0]=[255,255,255]现使用numpy.array函数来转换:将坐标(150,120)的当前蓝色值变为255(改变特定像素的蓝色值):import cvimport numpy as npimg=cv.imread(“mupic.png”)print(img.item(1
2020-09-03 12:36:29
2104
原创 python中定时器的用法
关于定时器这块一直是迷迷瞪瞪的,到现在也没有彻底理解,在网上找到一些大神写的代码,记录在这里,以备不时之需!!**Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器startTimer,一种是使用QTimer类我的理解是定时器主要是以下这几行:self.syf = QtCore.QTimer()self.syf.start(30)self.syf.timeout.connect(self.AlertPicShow)其中: self.syf.timeout.connect(s
2020-09-02 09:12:33
1407
原创 python运行时报错AttributeError: ‘NoneType‘ object has no attribute ‘shape‘
用python显示图片时报出错误:AttributeError: ‘NoneType’ object has no attribute ‘shape’检查了图片的路径发现没有错误,然后将图片路径中的中文格式换掉,运行正常!!
2020-08-31 11:02:54
2371
原创 Python中图片相对路径的设置操作
本人环境win10, python3.7相对路径的相对意思是不完整路径,这个相对指的就是相对于当前文件夹路径,其实就是你编写的这个py文件所放的文件夹路径。绝对路径:由于绝对路径在自己电脑上使用比较方便,其他电脑使用时图片的绝对路径可能会发生变化,导致程序出错。因此设置为相对路径比价保险。一开始, 设置成 first_frame = cv2.imread(’./images/video11.jpg’)会报错,错误提示为:Traceback (most recent call last):Fi
2020-08-27 16:57:13
4073
2
原创 error C2061: 语法错误: 标识符“noexcept”
本人环境VS2017.我在.c 文件中使用了#include using namespace std;生成的错误是:1>d:\visual studio2017\vc\tools\msvc\14.16.27023\include\cmath(244): error C2061: 语法错误: 标识符“noexcept”1>d:\visual studio2017\vc\tools\msvc\14.16.27023\include\cmath(244): error C2059: 语法错
2020-08-19 16:56:59
3521
2
原创 利用python播放本地视频文件
python结合opencv播放视频文件,代码如下:视频处理video = cv2.VideoCapture(“C:/Users/Administrator/Desktopideo.mp4”)if not video.isOpened():print(“Could not open video”)sys.exit()while True:ok, frame = video.read()if ok:cv2.imshow(“Tracking”, frame)if cv2.waitKey(10
2020-07-29 16:59:04
7161
3
原创 顺序结构代码出现闪退问题的解决方法之一
如果程序是顺序结构,在没有按照既定步骤进行操作的话会导致程序奔溃,出现闪退现象。解决如下: 【注】本人环境是win10,python3.7 首先通过setCheckable函数设置QT按钮属性,true为选中,否则未被选中。类似: 可选择的按钮按下之...
2020-04-02 22:53:15
498
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人