- 博客(57)
- 收藏
- 关注
转载 yolov5模型转换部署安卓端
参考记录历经三天将自己的yolov5模型部署到Android安卓手机YOLOv5学习记录(二): 模型转化及Android端部署非常感谢以上作者~首先,安装onnx:pip install onnxpt转onnxpython export.py --data data/HGI_30_detection.yaml --weights runs/train/exp14/weights/best.pt --train安装简化工具:pip install onnx-simplifie
2022-05-07 10:48:48
2756
3
转载 yolov5unicode
https://blog.youkuaiyun.com/qq_16763983/article/details/117967450记录yolov5出现UnicodeDecodeError中gbk解码问题的解决
2022-03-24 16:20:50
229
原创 修改pycharmz终端pip install的labelme线条粗细
首先,找到pip install labelme的安装位置其次,找到labelme文件夹进入labelme文件夹,找到shape.py最后修改线条宽度 及线条粗细:参考:关于labelme标注线粗细和节点大小问题
2021-12-30 10:36:14
2428
原创 将labellimg中的voc数据集 转换为 yolov5数据集遇到的一系列问题记录
没有按照我出现问题的顺序记录,这篇文章如果能帮到你,我就很开心1.问题: UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xb9 in position 37: illegal multibyte sequence解答:open(xxx,xxxx, encoding=‘UTF-8’)(增加指定编码方式 utf-8)我自己已有voc数据集:我想做的是将其转换为yolov5可以训练的数据集,参考文章:YOLOv5 实现目标检测(训练自己的数据集实现
2021-09-26 15:24:16
1325
原创 vector二维数组前缀和与积分图
这篇博客写的很清楚前缀和与差分此篇博客记录个人错误之处重置大小int m = matrix.size(); int n = matrix[0].size(); matrixs.resize(m + 1); for (int k = 0; k < m + 1; k++) { matrixs[k].resize(n + 1); }这里m+1*n+1矩阵,默认初始化元素为0,或者matrixs = vector<vector<int>>(m + 1, vec
2021-07-14 11:39:47
259
原创 2021-06-03
%本实验主要用于理解复指数信号实部、虚部、幅值以及相角的概念n = [0:20];% alpha = -0.1 + 0.3j; %复指数信号的表达形式一% x = exp(alpha*n);x = 0.9.^n.*exp(j*(pi/3)*n); %复指数信号的表达形式二 subplot(2,2,1);stem(n,real(x),'filled');title('real part');xlabel('n');ylim([-3,2]); subplot(2.
2021-07-13 15:03:26
99
原创 2021-06-01
matlab绘制高斯分布函数图像:y = gaussmf(x,[sig c]) %sig c 分别指方差、期望,即高斯分布函数的参数x = 0:0.1:10;y = gaussmf(x,[2 5]);plot(x,y)xlabel('gaussmf, P=[2 5]')ylabel('gaussmf')如图所示:已知一组数据可以使用某函数求概率密度曲线a=0;b=2*pi;alpha=a+(b-a)*rand(1,15);%uniformly disributed from 0
2021-07-13 15:02:58
147
原创 unorder_map multiset例题分析
unorder_map multimap等是可以一个key对应多个value元素这里介绍一下迭代器:比如使用迭代器遍历vector一维数组并输出:vector<int>:iterator it;for(it=array.begin(); it != array.end(); it++){ cout << *it; //这里可以看出it类似指针且一些容器函数返回值也是迭代器,所以使用容器函数时需注 意你需要传迭代器还是容器中的元素}unorder_map
2021-07-08 21:51:27
204
原创 BME280测湿度温度
树莓派开发笔记(八):GPIO口的I2C使用(BME280三合一传感器:温度、湿度、气压测量)C中int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t区别C++中explicit关键字的使用
2021-05-05 21:15:39
931
原创 vector.size()返回无符号整型数字
无符号与有符号整型区别:1.有符号(1)表示正数时,最高位为符号位(符号位为0),最大的正数是 0111 1111 1111 1111 1111 1111 1111 1111 即2^31 -1 = 2147483647(2)当表示负数时,最高位为符号位(符号位为1),最小的负数是 1000 0000 0000 0000 0000 0000 0000 0000 而在计算机中是以补码的形式存储的,C语言规定 1000 0000 0000 0000 0000 0000 0000 0000 的补码为-2147
2021-04-17 11:28:41
547
原创 C++vector实例 ,vector二维数组初始化赋值及函数参数
给定一个 n × n 的矩阵,求它顺时针旋转 90 度的结果,且必须在原矩阵上修改(in-place)。怎样能够尽量不创建额外储存空间呢?#pragma once#ifndef MATRIX_H_INCLUDE#define MATRIX_H_INCLUDE#include <vector>using namespace std;class Matrix{public:Matrix(); ~Matrix(); void rotate(vector<vecto
2021-04-16 21:45:43
3561
原创 C/C++变量函数定义声明
声明与定义区别:(1)是否需要分配存储空间(2)在一个作用域中可以重复声明,但不能重复定义。这是由(1)决定的,可以重复几次告诉编译器某个变量、函数已经在别处定义了,但不能重复多次地让编译器为同一个变量、函数分配不同的存储空间。1.变量(1)声明:一种是需要建立存储空间的。例如:int a /int a = 0;。在声明的时候就已经建立了存储空间。这种声明是"定义性声明(defining declaration)",即我们平时所说的“定义”。(2)定义:另一种是不需要建立存储空间的,只是告诉编译
2021-04-12 19:53:04
610
转载 远程登陆树莓派,运行程序提示No protocol specified QXcbConnection: Could not connect to display :10.0
添加链接描述进入root目录下 可以试一试 sudo su root
2021-03-31 12:34:10
709
原创 python中numpy科学计算库部分函数介绍集合
array详解asarray用法数据类型对象dtypetype dtype astype 区别zeros用法numpy中ndarray对象numpy.place(arr, mask, vals)NaN(not a number),在数学表示上表示一个无法表示的数,这里一般还会有另一个表述inf,inf和nan的不同在于,inf是一个超过浮点表示范围的浮点数(其本质仍然是一个数,只是他无穷大,因此无法用浮点数表示,比如1/0),而nan则一般表示一个非浮点数(比如无理数)。numpy中nan或
2021-03-28 14:15:55
954
原创 弧度 频率 角频率 相位 初相位
弧度百度百科定义:用弧长与半径之比度量对应圆心角角度的方式,叫做弧度制,用符号rad表示,读作弧度。等于半径长的圆弧所对的圆心角叫做1弧度的角。由于圆弧长短与圆半径之比,不因为圆的大小而改变,所以弧度数也是一个与圆的半径无关的量。度跟弧度之间的换算180度=π弧度 由此 1度=π/180 弧度 ( ≈0.017453弧度 ) 因此, 弧度=度×π/180 例如: 90°=90×π/180 =π/2 弧度 60°=60×π/180 =π/3 弧度
2021-03-23 17:15:03
12355
原创 qt5绘图设备
#ifndef WIDGET_H#define WIDGET_H#include <QWidget>namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: explicit Widget(QWidget *parent = 0); ~Widget();protected: void paintEvent(QPaintEvent *);pri
2021-03-14 17:31:32
108
原创 python多线程
# 一、初识进程# 线程是依赖于进程,一个进程简单理解为一个应用程序,# 每个进程默认都会包含一个主线程# 线程是程序执行的路径,它可以实现进程并发的多任务处理# 二、线程的作用# 1.节省资源开销# 2.充分利用CPU资源# 3.尤其是在GUI中,如果耗时操作不使用线程就会造成整个程序的阻塞# 三、后台线程import threadingimport timedef sleeper(n, name): print('我是{}准备睡觉\n'.format(name))
2021-03-12 11:28:38
155
原创 python变量域 global关键字
Python变量的作用域一共有4种,分别是:L (Local) 局部作用域E (Enclosing) 闭包函数外的函数中G (Global) 全局作用域B (Built-in) 内建作用域 以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。对于全局变量的修改,如果全局变量是int或者str,那么如果想要在函数中对函数变量进行修改,则需要先在函数内,声明其为global,再进行修改如果是list
2021-03-11 22:26:24
163
原创 python函数可变参数
Python函数还接收一种参数叫做可变参数,可变参数即任意个参数的意思,可变参数通常使用*args来表示。def func(*args): print('args length = {}, args = {}'.format(len(args), args))func('a') # ==> args length = 1, args = ('a',)func('a', 'b') # ==> args length = 2, args = ('a', 'b')func('a',
2021-03-10 16:32:12
2471
1
原创 pyqt5自定义下拉列表复选框模板样式
效果: def __init__(self, parent=None): # 设置自定义样式 super(WidgetGallry, self).__init__(parent) self.originalPalette = QApplication.palette() # 下拉列表 style_comboBox = QComboBox() style_comboBox.addItems(QStyleFa
2021-03-10 11:08:19
1441
原创 python获取对象信息
除了name和gender外,可以提供任意额外的关键字参数,并绑定到实例,注:以下是代码,对于函数参数为任意可变参数未完全理解class Person(object): def __init__(self, name, gender, **kwargs): self.name = name self.gender = gender for k, v in kwargs.items(): setattr(self, k, v)
2021-03-09 15:00:09
258
原创 python多态
类具有继承关系,并且子类类型可以向上转型看做父类类型,如果我们从 Person 派生出 Student和Teacher ,并都写了一个who() 方法:class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def who(self): return 'I am a Person, my name is %s'
2021-03-09 14:33:24
147
原创 python继承判断类型
判断类型 isinstance(object, class)class Person(object): def __init__(self, name, gender): self.name = name self.gender = genderclass Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name
2021-03-09 09:27:19
167
原创 python访问限制及实例方法、类方法
私有属性是以**双下划线’__’**开头的属性。在外部访问私有属性将会抛出异常,提示没有这个属性。虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。私有属性是为了保护类或实例属性不被外部污染而设计的。操作实例对象的私有属性lass Person(object): def __init__(self, name, sex, age): self.__name = name self.__sex = sex self.__age = ag
2021-03-08 22:28:10
288
原创 python类属性
实例对象绑定的属性只属于这个实例,绑定在一个实例上的属性不会影响其它实例;同样的,类也可以绑定属性,但是类的属性不属于任何一个对象,而是属于这个类。如果在类上绑定一个属性,则所有实例都可以访问类的属性,并且,所有实例访问的类属性都是同一个!也就是说,实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。# Enter a code## the first time to create a class 'Person'class Person(object): count = 0
2021-03-08 16:18:03
85
原创 鼠标中键拖动scene自由移动且与DragMode有关
!还未完全理解如何奏效的, def mousePressEvent(self, event: QMouseEvent): """Dispatch Qt's mousePress event to corresponding function below""" if event.button() == Qt.MiddleButton: self.middleMouseButtonPress(event) else:
2021-03-03 22:08:00
347
1
转载 qt中GraphicsView相关知识
Qt GraphicsView控件的作用下面这个给内容有点多,选择性看GraphicsViewpyqt5用GraphicsView控件实现图像缩放
2021-03-01 19:30:06
180
转载 python中NotImplemented以及被二元特殊方法返回
详解python中内置的NotImplementedpython中特殊方法这里截取部分特殊方法:
2021-02-28 09:57:11
134
原创 pyqt5界面设计中八位十六进制颜色码说明
pyq5界面设计中 self._color = QColor("#7F000000")这里颜色有八位十六进制表示,后六位是正常的颜色码,如下图:最前面两位是alpha透明度,透明度总共有256阶(0~255),255表示100%不透明。0%表示100%透明以第一行代码为例:首先将十六进制7F转换为十进制即127,127/255 = 50% ,表示为50%不透明。如果想得到25%透明度的黑色,25% * 255 = 63.75 四舍五入为64,将其转换为十六进制 即40。表格对应:百
2021-01-29 22:21:12
1462
原创 pycharm安装配置annaconda环境和安装pyqt5
官网下载个人版annaconda创建pycharm项目后点击下图中阴影选项下图是成功导入annaconda后的,没导入annaconda前需要点击阴影部分add所在位置(是个设置图标,之后会出现add那一列选项)然后选择existing environment插入下图annaconda中python所在路径pip install pyqt5(多试几次,我就是这样成功的。。。。)安装成功后可以看到文件夹pip install pyqt5-tools安装成功后可以看到文件夹之后工作可以参
2021-01-22 18:10:03
870
转载 格雷码各种语言实现
我的大致思路:1、获得n-1位生成格雷码的数组2、由于n位生成的格雷码位数是n-1的两倍,故只要在n为格雷码的前半部分加0,后半部分加1即可。以下是各个博主实现方法:c语言转载自添加链接描述格雷码的生成相邻格雷码之间只有一位不同,这是为了防止转换时多位同时变化而造成的延时的影响。具体定义如下。在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。在数字系统中,常要
2020-12-24 14:54:32
350
原创 格雷码c语言实现(有问题求助)
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>char **graCode(int n){ int i; char **arr = (char **)malloc(pow(2,n)*sizeof(char*)); //申请一组一维指针空间 for( i = 0; i < pow(2, n); i++ ) //对于每一个一维指针空间,申请一行n个数
2020-12-24 09:14:57
478
原创 动态字符串数组相关定义,c++,c
C语言动态定义二维字符串数组: char **arr = (char **)malloc(pow(2,n)*sizeof(char*)); //申请一组一维指针空间 for( i = 0; i < pow(2, n); i++ ) //对于每一个一维指针空间,申请一行n个数据空间 { arr[i] = (char *)malloc(n*sizeof(char)); }函数返回二维字符串数组:char **graCode(int n){ int i; char **arr =
2020-12-24 09:01:15
4602
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人