自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 树莓派装上Ubuntu18.04后修改分辨率的方式

2、使用 xrandr 创建新的 mode,–newmode 后面跟刚刚 cvt 产生的 modeline 后面的信息,如果去掉“_60.00”就可以在显示器首选项中看到。ps:我的系统是18.04的,默认没有xorg.conf文件。3、添加新的 mode,–addmode 后面第一个参数是 命令xrandr 显示的列表中,目标输出设备的名称,Ubuntu升级后,发现分辨率没有1920*1080,在网上寻找了一个文章解决办法如下。添加 /etc/X11/xorg.conf 文件,将此模式保存为默认分辨率。

2022-09-21 14:44:15 1851 1

原创 宇树A1机器狗手势控制

在上一篇博客的基础上,结合手势识别和实验室的unitreeA1机器狗做了一个机器狗的手势控制,可以实现手势控制机器狗的前后左右平动。

2022-07-16 16:51:18 6074 12

原创 利用C语言结构体实现学生成绩录入系统

##功能介绍密码功能嵌入于主函数中,初始密码为:123456(可根据需要修改)输入1可以调用add函数对学生的基本信息以及成绩进行输入输入2则调用print函数打印学生成绩单输入3可以根据学号匹配学生并对其成绩进行修改输入4可以对当前所有学生的总成绩进行排序输入5则可以计算当前学生平均分输入6可以打印出成绩单中所有存在不及格科目的学生输入7可以根据学号查找学生成绩输入8则为退出系统源码如下:......

2022-06-14 17:11:26 5310

转载 解决分区助手无法分区问题

  新买来的电脑,首先要添加和调整分区,但自带系统可能将磁盘用bitlocker加密了,使得无法对磁盘进行操作,网上说鼠标右键有bitlocker选项,但本人电脑没找到,在控制面板加密选项只要备份等选项,没有解密操作。   下面是解决方法: 1.打开设置; 2....

2022-04-05 20:55:49 8237

原创 基于Opencv和Mediapipe实现手势控制音量

前言在先前的博客中已经实现过了手势追踪的基本功能,由于最近项目需要,开始学习封装操作,也为了更简洁的调用手势追踪模块,所以参照了Youtube上一位大佬的教程,把之前的追踪模块整理了一下,将代码封装到了类中,然后加了一些功能。环境配置开发环境:Pycharm所需软件包:Opencv-python,Mediapipe,math,pycaw,numpy实现原理手势识别和追踪原理在之前的博客已经详述过了,对音量的控制是通过Mediapipe实时检测得出的拇指指尖和食指指尖的坐标,再通过坐标

2022-02-24 17:52:32 4943 9

原创 基于浏览器扩展程序脚本和IDM提高下载速度

百度网盘非会员几百kb的下载速度令人头疼,这是一个绕开网盘限速的方式,下载速度在7M左右,快的话可以达到9M。注意:由于这个方法是通过浏览器扩展程序实现的,所以用百度网盘网页版就可以了,用下载好的客户端反而无效。下载油猴这是一个油猴脚本,所以安装脚本之前,必须先安装油猴浏览器扩展(如已安装则跳过,只是一个浏览器插件,很小)这里推荐使用Microsoft Edge或者谷歌浏览器(当然其他的应该也可以,流程都很类似);以Microsoft Edge为例:点击这里的+号新建标签页..

2022-01-30 11:52:27 2134

原创 51单片机出现正在检测单片机的原因以及点灯测试的注意事项

51单片机是对兼容英特尔8051指令系统的单片机的统称。51单片机广泛应用于家用电器、汽车、工业测控、通信设备中。因为51单片机的指令系统、内部结构相对简单,所以国内许多高校用其进行单片机入门教学。关于开发环境注意事项:我们一般使用keil5来生成程序文件,用stc-isp将其下载到开发板上。由于下载资源很丰富,所以这里不赘述下载过程(keil5有两个版本,一个适用于51,另一个适用于开发stm32,虽然长得一样,但是适用范围不同,需要仔细甄别)。这里需要注意的是:在用stc-isp下载程序时,

2022-01-28 21:00:36 16120 6

原创 基于Opencv+Mediapipe实现手势追踪

有关介绍OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。它同样支持很多的AI功能,我们这里主要用Opencv来进行图像的处理,识别工作则由Mediapipe完成,有关Opencv的函数都在之前的博客上做过说明了。.

2022-01-24 15:11:12 6014 10

原创 图像金字塔原理与轮廓识别检测

图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的图像金字塔是一系列以金字塔形状(自下而上)逐步降低,且来源于同一张原始图的图像分辨率集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。通过图像金字塔,我们能够改变图像的大小。这跟我们之前提到的cv2.resize()函数作用是一致的,resize能够更加精细化地改变图像大小,将其放大或缩小为任意值,而图像金字塔只能够成比例进行放缩。

2022-01-23 14:39:38 3714

原创 基于Python的Opencv边缘检测

边缘检测实际上就是对图像进行系统的梯度计算,包含了图像的噪声处理,非极大值抑制,双阈值检测等一系列图像处理方式,通过这些方式处理图像后得到图像的轮廓。这些方式在之前的博客都已经提到过i了,而Opencv提供了一个非常方便的函数进行边缘检测,它将高斯滤波,梯度大小及方向计算,非极大值抑制,双阈值检测等几个边缘检测常用函数全部集成为一个函数,使用者只需要给出两个阈值的大小即可。相关函数cv2.Canny(XT_gray,minVal,maxVal):XT_gray为要进行处理的图像,而minVa

2022-01-21 17:42:33 3525

原创 基于Python的Opencv图像梯度处理

图像梯度直观反应其实就是图像当中各物体的轮廓,而在像素点上的体现其实就是相邻像素点之间的差值,差值越大,轮廓就会越清晰(可用于图像增强),而Opencv提供了以下三种算子来进行图像的梯度处理,跟在之前的博客中提到的cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel)函数其实很类似,都能够得到图像的轮廓。而Opencv也提供了以下三种算子来进行图像的梯度处理。sobel算子先看到Gx,这里的算子其实很像是卷积核,而靠近中间的像素乘以+2和-2,稍远的四个角

2022-01-21 14:50:35 2518

原创 基于python的opencv图像形态学处理(图像腐蚀与膨胀操作以及礼帽与黑帽)

腐蚀与膨胀图像的腐蚀与膨胀互为逆向操作,通常用于处理二值图像(黑白图,以黑色为底面背景),因此需要先进行二值化处理,腐蚀和膨胀通俗的理解就是,在指定大小的卷积核内,如果该卷积核内全为黑色或全为白色,则该卷积核内像素值不变,但若是既有黑色又有白色,即在图像边缘处,那么膨胀操作则会将该卷积核内所有白色像素点都赋值变为黑色,以此将图像向内腐蚀掉一圈,而膨胀操作则相反,会将卷积核内的黑色像素点赋值成2白色,以此让图像膨胀一圈。礼帽与黑帽礼帽:将图像先进行开运算,再以原始图像减去开运算的结果,我们就可以得

2022-01-20 18:03:20 3286

原创 基于python的Opencv图像基本操作2(简单阈值处理和三种滤波方式对图像噪声的处理)

一、阈值处理用于处理单通道图像(一般是灰度图),它能够简化图像的像素值,使图像的像素值更为单一,便于处理,通俗的理解就是将灰度图变为黑白图。以下是Opencv的一种阈值处理方式。函数介绍ret,dst = cv2.threshold(src,thresh,maxval,type)src :要进行处理的单通道图像,一般为灰度图。thresh:设定的阈值,超过或小于该值像素将会转换为特定的值。maxval = 当像素超过(或者小于)阈值将会被赋予的值,具体是超过还是小于要看type的类型。

2022-01-20 11:52:04 2099 1

原创 Opencv各基本函数的作用及示例1(对图像的基础处理)

img=cv2.imread("cat.jpeg") 作用:读入图片,并可将其赋值给变量,括号内参数为要读取的文件名,文件名后要加上文件的格式,如:jpg,jpeg等格式(要加引号)。 cv2.imshow("image",img) 作用:展示指定的图片 括号内参数有两个,第一个为打开的窗口名,这个可以随个人习惯命名(要加引号),第二参数个则是所读入的要展示的图片变量。 cv2.waitKey(0) cv2.destroyAllWindows() 这两个函数一般放在一起使用,

2022-01-18 23:11:10 1441 1

原创 ubutu的Realsense摄像头的环境配置的报错解决(个人认为官方文档存在问题)以及官方视频流样例测试(无需摄像头)

关于realsense安装过程中报错找不到文件的解决方式,因为之前学过python,所以计划使用pycharm进行相关的项目开发,以下是Realsense的环境配置及Pycharm相关的库函数安装说记录Realsense SDK的下载1、首先要在Realsense官网上下载SDK的安装包点击DEVELOPERS,然后点击SDK2.0下载SDK滑到最下方 ,Linux系统要点击这个源码包进行编译,Windows系统下载上面的exe就好

2022-01-17 17:47:15 2423

原创 Linux系统安装

关于linux系统的安装这里建议安装18.04版本,先前的16.04版本安装过于繁琐,用18.04相对比较成熟而且安装也比较简单。1、由于大部分用户最开始用的都是windows系统,为了实现双系统,首先你需要一个虚拟机,比如VMware Workstation就是一个不错的选择。虚拟机的安装很简单,在各大软件商店上都有,这里就不赘述了。2、然后就来到了关键的一步,你需要下载一个ubuntu文件,可以选择通过官网进行下载,但是速度会比较慢,推荐利用百度网盘传输别人下载好的文件,将文件保存到D盘,关注

2021-12-14 20:13:43 829

原创 赛尔号终稿

运行效果今天碰到的一道题

2021-12-08 19:49:43 211

原创 多维数组1

多维数组1.多维数组最简单的形式是二维数组。一个二维数组,在本质上,是一个一维数组的列表。声明一个 x 行 y 列的二维整型数组,也就是数组中还是数组。具有两个或两个 以上的索引值,形式如下:2.多维数组变量的输出和删改方式与一维数组几乎一样,如图:附一点新的进展(写得有点拉。。。):...

2021-11-28 22:45:37 314

原创 结构体学习

对上篇结构体的一些拓展1.结构体数组结构体数组跟数组非常类似,只不过结构体数组的每一个元素都是一个结构体类型的变量,都包含结构体中所有的成员项。定于结构体数组的方式与定义结构体变量是一样的,只是将变量换成数组。可以利用for循环对结构体进行初始化,如下图补充:对于结构体数组来说,不只能定义整型变量,还可以定义字符同样也可以利用for循环将结构体循环输出## 关于getchar()和fflush(stdin)getchar函数的作用是读入一个字符,并将其转化为Ascall码,若输入的字

2021-11-21 23:28:58 501

原创 2021-11-14

结构体的定义及初始化1、结构体的声明一般采取先声明,再定义的方式声明一个结构体类型的一般形式为:struct结构体名{成员列表};2.结构体初始化方式struct 结构体名 变量名=初值以下为结构体初始化范例注意事项:定义后的分号不可省略!2.结构体的运算方式有哪些结构体变量不能相加、不能相减,也不能相互乘除,但结构体变量可以相互赋值。也就是说,可以将一个结构体变量赋给另一个结构体变量。但前提是这两个结构体变量的结构体类型必须相同。以下是利用结构体打印赛尔号精灵和技能(初学结

2021-11-14 23:32:55 236

原创 2021-11-07

指针运算1.给指针加一表示让指针指向下一个变量,减一则表示让指针指向下一个变量,但如果指针指向的是一片不连续的空间,则这种运算没有意义,因此这种运算一般会与数组等形式的变量结合。**2.不同类型的元素所占据的内存空间并不相同,如char 类型占据一个字节,而int 类型则占据了四个字节,具体可以使用sizeof函数对元素所占有的字节数进行计算。 **3.接下来介绍*p++的作用以下是使用示例4.指针相减所得到的结果是对应两个元素之间所隔的所有元素的个数,而非单纯的地址加减,这样所得到的结

2021-11-07 19:31:39 100

原创 2021-10-31

1.指针数据在内存中的地址称为指针,如果一个变量存储了一份数据的指针,我们就称它为指针变量。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。指针的定义方式为:数据类型变量名=某个变量的地址。以下是通过指针取数据的方式其中""的作用为:1.定义一个新的指针变量2.获取指针指向的数据,即通过地址取数据而“&”的作用为:取出一个被定义的变量的地址,所以一般情况下指针右边都会有“&”符号。指针也可以用来修改内存上的数据注意1.关于*&

2021-10-31 18:40:23 126

原创 2021-10-23

数组数组是程序中一块连续的,大小固定并且内部数据类型一致的存储空间。可以用来存储相同类型的数据。数组的声明方式为:数据类型 数组名称[数组长度]以下是三种数组的初始化方式:1.数据类型 数组名称[数组长度]{元素1,元素2,元素3,……}2.数据类型 数组名称[] {元素1,元素2,元素3,……}3. 数据类型 数组名称[长度n]; 数组名称[0] = 元素1; 数组名称[1] = 元素2……注意:数组下标从零开始。数组初始化时,数组中的元素个数不得大于声明数量。如果采用第一种初始化方

2021-10-23 19:51:12 236

原创 2021-10-13

1.自定义函数一般格式为:例子:无参函数有参函数

2021-10-14 17:39:44 154

test_json.py

test_json.py

2023-04-19

空空如也

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

TA关注的人

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