- 博客(45)
- 收藏
- 关注
原创 OpenCV关于图片语法(透视变换)截取目标区域小结⑤
1.cv2.getPerspectiveTransform1232.cv2.warpPerspective1233.cv2.polylinescv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]]) → None参数解释;① img 当前图像② pts 多边形曲形阵列③ isClosed 是否闭合bool④color 颜色 RGB三通道⑤thickness 粗细⑥lineType
2021-09-29 17:13:29 299
原创 OpenCV基于(边缘检测)和(轮廓角点)实战获取嵌套轮廓得边缘角坐标
基于本人写的前两篇得内容:https://blog.csdn.net/m0_51503599/article/details/120516411https://blog.csdn.net/m0_51503599/article/details/120522003添加一个新函数sortedsorted(iterable, *, key=None, reverse=False)sorted属于接收可迭代类型详情看python文档传送门① iterable例如字典、列表、② key=None可迭代
2021-09-29 16:50:45 2205 2
原创 数组?列表?矩阵?or 向量?(求助贴)
先上个图片我用opencv得到了四个点得坐标但它的形式为<class ‘numpy.ndarray’>不知道它是什么,做了测试a.nparry = ([[[ 55 , 49]], [[ 55 ,220]], [[290, 220]], [[290 , 49]]])print(a)# print(a.shape)不能够输出 print(a.shape)而且蓝色部分想变为reshape((4, 2))也不行import cv2import numpy
2021-09-29 15:45:58 265
原创 OpenCV关于图片语法(轮廓角点)小结④
前言:轮廓可以简单认为成连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。1. cv2.arcLength()retval=cv.arcLength(curve, closed)参数解释;① curve 轮廓周长 输入二维向量 可以为std::vector or Mat类型② closed 是否闭合 bool ture或者flase2. cv2.contourArea()cv2.contourArea(contour,[oriented])参数解释;① contour 轮
2021-09-28 12:28:26 2597 2
原创 OpenCV关于图片语法(边缘检测)小结③
慢慢学着学着发现opencv语法太丰富了,附opencv官方英文文档1.cv2.GaussianBlur()C++:void GaussianBlur(InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT )Python:cv2.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, border
2021-09-27 21:33:32 838
原创 OpenCV------灰度直方图学习 2021 9 27
先上个图灰度直方图反应不同灰度级在像素的个数。图像如果是RGB三层图像的话,通过某种算法转化为灰度值,本次转化的范围为[0-256]。bins:“堆”这里指灰度级pixels:“像素点”代码:import cv2import matplotlib.pyplot as pltdef show_image(image, title, pos): image_RGB = image[:, :, ::-1] plt.title(title) plt.subplot(2, 3
2021-09-27 19:47:58 201
原创 用uPyCraft编辑micropython (esp32为例) 2021 9 27
之前是用pycharm编辑器烧录micropython(详细教程看我博客),发现有点复杂还容易烧录卡顿,最近看了uPyCraft编辑挺方便,以下是我的经验。1.下载地址传送门第一次打开点击ok,以后可以点击cancel,进入主页。2.连线点击看第四部分“硬件连接”注意io0接地得问题3.烧录固件选择端口 板子类型 最后点击Burn出现以下页面关于第三项如果你得esp32没有烧录好的话,要点yes,进行烧录固件,实际上就是配置运行环境。choose选择的bin文件要提前下载:
2021-09-27 11:28:33 785
原创 OpenCV关于图片语法(初级入门)小结①
图片处理语法小结(1)读取图片:cv2.imread( ) 。一个参数,名称及格式& 例:img = cv2.imread('1.png') #读取图片(2)获取图片的形状:img.shape,返回三个参数 (rows, heights, channels)。&例: a = img.shape print(a)(3)获取图片的大小:img.size,返回一个rows✖heights✖channels。&例:img = cv2.imread('1.png')(4)显示图片
2021-09-21 17:38:25 391
原创 OpenCV------argparse模块学习 2021 9 21
三个步骤:1.创建对象①创建所有对象parser = argparse.ArgumentParser()②可以添加到帮助信息中去parser = argparse.ArgumentParser(description='dayinshouzhi')description”描述“ ”说明书“2.添加参数正常要用的格式为 parser.add_argument("-n1", "--number one", help="第一个参数", type=int) 第一部分:简写 带有-第二部分:参
2021-09-21 15:31:11 681
原创 OpenCV------实现打印手指运动① 2021 9 21
1.简介:OpenCV 是一个跨平台的计算机视觉库,本次将使用PyCharm编辑器进行编辑结合三D打印技术制作手指外骨骼,用于***等领域。2.准备工具略3.奇怪的知识补充①平时我们拍照出来的彩色图片是由R(red) G(green) B(blue)三种颜色绘成的。他们的范围是0~255。②我们平常买手机喜欢买拍照好看的原因是它的像素高,即相同“面积”下它的最小单位较多。上图为360像素即20✖18,规定认为以右上角为(0,0)方向如图所示来点标定图像的某个点又因为彩色图像为三层组成所以
2021-09-21 14:27:53 999 2
原创 戴尔灵越笔记本电脑蓝牙消失问题解决办法 2021 9 9
前言:在使用过程中无线键盘不能使用,右下角操作中心蓝牙的框消失,在设备管理器中出现了未知usb设备请求失败,禁用后重启没有作用。在疑难解答中出现了“没有蓝牙请安装蓝牙适配器”提示。总之,不像网上的大多数蓝牙问题。真难搞!!!!正常情况下右下角的显示:出现错误后竟然没有蓝牙选项:设备管理器中的截图:按照网友windows疑难解答:总结:是系统bug,驱动命名更新了却不能识别。解决办法:1.机器关机。拔下充电器,然后按电源按钮10秒钟。2.机器开机并转到设备管理器。3.检查设备管理
2021-09-09 09:48:23 15146 14
原创 用pythoncharm编辑micropython 2021.9.7
前言:做了很长时间,原本是想用ESP32—CAM摄像头捕捉图像,通过cv2库做算法得到某些值控制舵机运动,发现没cv2的固件库要自己写。后面配置micro的环境时也出现了很多错误,花了10元钱请人解决了,一个好大哥也没再问我要更多的钱。有人有cv2的库麻烦分享给我。硬件:事先要烧录程序,烧录完成后进行以下操作1.新建文件2.装micropython插件3.设置相关东西(esp32板子选择esp8266也可以)com?可以在串口助手找也可以自动配置4.安装相关东西,写入代码5.
2021-09-07 21:34:00 927 1
原创 ESP32-CAM使用历(教)程及报错解决② 2021 08 25
五.改程序修改define的注释情况,ssid是你电脑连的wife的账号,下面是密码。六.烧录程序注意IO0一定要和GND短接,很多教程上有“当出现Connecting时,需要你按一下ESP32上的开关程序才能进行烧录”我没经历。烧录过程烧录完成,取下IO0和GND短接的杜邦线,点击Esp32上的rest。打开串口监视器,注意波特率115200遇到的问题及解决办法:A:a fatal error occurred: md5 of file does not match data i
2021-08-25 14:07:18 3473 8
原创 ESP32-CAM使用历(教)程及报错解决① 2021 08 25
一.下载安装arduino IDE网上很多教程二.两种添加安装包方法,一种是在线安装,一种是离线安装。①在线安装:文件<首选项<网址在附加开发板管理器中添加网址:https://dl.espressif.com/dl/package_esp32_index.json结束后点击 工具<开发板<开发板管理器<查找esp32进行安装选择配置(如图所示进行选择),随后开始测试遇到的问题及解决办法:A:下载esp32安装包下载的慢;可以到官网上直接下载,这个没尝试
2021-08-25 14:06:24 7100 14
原创 arduino几种供电方式 附加多9g舵机驱动 2021 8 24
前言:在使用arduino uno时要考虑供电,总结一下几种供电方法方法一:使用USB端口为Arduino供电USB端口通常在烧录时进行供电以及实验时使用,也可以用充电宝配合使用,使用这种方法供电时,电源电压需要是稳定的+5V的直流电压即可。需要注意的是充电宝电路有漏电关断设计,如果没有达到最小负载,则会被判定为漏电流,将触发关断,遇到问题可以考虑一下。代码:#include<Servo.h>Servo servo1;Servo servo2;void setup() {
2021-08-24 13:19:29 4977
原创 满二叉树、完全二叉树 2021 08 24
一.满二叉树在深度为7的满二叉树中,度为2的结点个数为为?这里的度为2的结点个数是什么意思?度为2的节点就是该节点既有左子树,又有右子树深度为7的满二叉树总共的节点数为2^7-1=127又因为是满二叉树,所以只有度为2的和度为0的节点叶子节点的数目为:2^(7-1)=64所以有度为2的结点个数为=127-64=63个例题:在深度为7的满二叉树中,结点个数总共是
2021-08-24 08:53:27 801
原创 备考计算机二级的那些语法 2021 8 23
①sdivmod(x,y)#除法输出(r,t)②break 跳出当前循环体continue 结束当次循环,进行下一次循环③字典的get()方法使用:>>> d = {"a":"5","b":"4","c":"7"}>>> print(d.get('c', 5))7>>> d = {"a":"5","b":"4","u":"7"}>>> print(d.get('c', 5))5>>> d =
2021-08-23 18:23:27 96
原创 整数的四种表达形式“python中0o1010是多少” 2021 8 23
一.对于整数:有四种表现形式①二进制:0,1 满2进1②八进制:0-7 满8进1,用0开头表示③十进制:0-9 满10进1④十六进制:0-9,A-F 满16进1,用0x表示#0o1010int("1010",8)>>520int("1010",10)>>1010int("1010",16)>>4112...
2021-08-23 16:52:34 3427
原创 python库引用得几种方法 2021 8 23
方法一:import<库名>as<库别名><库别名>.<函数名> (注意中间有个".")使用这种语法格式的 import 语句,会导入指定库中的所有成员(包括变量、函数、类等)。使用模块中的成员时,需用该模块名(或别名)作为前缀,否则 Python 解释器会报错。例如:import math as mm.pi--------- 圆周率m.ceil(x)------- 对X向上取整m.floor(x)-------对X向下取整m.p
2021-08-23 13:24:11 2291
原创 arduino库函数如何编写 4.15
#ifndef __XXX_H__ //"if not define __XXX_H__" 如果不存在__XXX_H__#define __XXX_H__ //就引入__XXX_H__#include <iostream> // 其他代码 #endif //否则不需要引入如果没有定义这个东西(__XXX_H__)的话就去定义一个并不是一定要“__XXX_H__”这个形式,只是比较不常见不与标准库文件一样使用#ifnd.
2021-08-20 11:34:25 394
原创 def main() 2021 8 10
看了这两篇文章,很透彻作者:weixin_39755136if name == “main”:可以看成是python程序的入口,就像java中的main()方法,但不完全正确。事实上python程序是从上而下逐行运行的,在.py文件中,除了def后定义函数外的代码都会被认为是“main”方法中的内容从上而下执行。如果只是写个伟大的"hello world",不想写函数的话,仅仅是print(‘hello world’)就可以,这就是一个“程序”,不需要所谓的“main”方法入口。当然如果是测试函数功能
2021-08-20 11:33:17 1837
原创 小程序学习笔记①
文章仅用于个人学习笔记1.HTML 标题(Heading)是通过<h1> - <h6> 标签来定义的。2.HTML 段落是通过标签 <p> 来定义的。3.HTML 链接是通过标签 <a> 来定义的。<a href="https://www.runoob.com">这是一个链接使用了 href 属性</a>在 href 属性中指定链接的地址。4.HTML 图像是.通过标签 <img> 来定义的.
2021-08-20 11:32:24 146
原创 arduino与肌电信号(传感器)的碰撞④ 2021 8 19
一.是一份ppt报告,整理讲解适合新手,以png展示二.结合前面的文字进行总结
2021-08-19 19:34:53 703 1
原创 arduino与肌电信号(传感器)的碰撞③ 2021 8 19
一.肌电传感器接线图二.舵机接线图GND(棕色)接 Arduino GNDPWM(橙色)接 Arduino attach()VCC(红色)接 Arduino 5V三.杂图①运动仿真图②串口图③肌电电路效果图
2021-08-19 19:32:48 1305
原创 python手部识别中的问题及笔记第四弹 21 7 30
一.串口输入与输出问题来源于我用python opencv识别手部坐标,想让其打印出来。上图:①正确数组换行输出输入:10101(不用管,这是防误输措施)输出的是:10101②用‘Serial.println(valsRec[a+1]);‘换行输出![在这里插入图片描述](https://img−blog.csdnimg.cn/6f2f95daf6324372af622cc35636660c.png?x−oss−process=image/watermark,typeZmFuZ3poZW5naGV
2021-07-30 12:16:43 826
原创 Django与微信小程序① 2021 7 25
Django需要下载pycharm专业版,自行下载。一.新建项目选择Django输入项目在A处我填写的是yanshi得到:二.在views.py中注册、接收、响应请求from django.shortcuts import renderdef index(request): context = { 'title': 'Hello world' } return render(request,'index,html',context)三.新建目
2021-07-25 17:16:25 425
原创 arduino与肌电信号(传感器)的碰撞② 2021 7 20
一.代码详解①带校准的与肌电传感器相配的代码#include <Servo.h>Servo servo1;int posServo1 = 0;int sensorValue ;int biggest_data,smallest_data;void setup() { servo1.attach(3); Serial.begin(9600); Serial.println("start"); delay(500); pinMode(13,1);//初始化13号,引
2021-07-20 21:55:02 1392 1
原创 arduino与肌电信号(传感器)的碰撞① 2021 7 20
一.肌电信号人体做动作的过程是大脑发出的神经信号传输到相应肌群控制肌肉收缩实现的。而在肌肉收缩的过程中,众多肌肉纤维运动单元会产生动作电位变化,这种动作电位在空间和时间上的募集效应就是肌电信号。表面肌电信号(surface electromyography, sEMG)是使用无创电极放置在人体皮肤表面获得的肌电信号,是人体浅层肌肉的肌电信号和神经干上电活动在皮肤表面的综合效应,是一种非平稳的时间序列。表面肌电信号中蕴含着人体神经肌肉系统的控制信息,不仅能够直观反映人体骨骼肌的收缩程度,而且隐含人体肌肉运动
2021-07-20 09:36:12 2457
原创 python手部识别中的问题及笔记第三弹 21 7 19
一.输出数组与字符串String comdata = "";int mark;void setup(){ Serial.begin(9600); } void loop(){ while (Serial.available() > 0)//不断循环检测串口缓存,一个个读入字符串 { comdata += char(Serial.read());//读入之后将字符串,串接到comdata上面 delay(2);//延时一会,让串口缓存准备好
2021-07-19 22:15:32 173
原创 python手部识别中的问题及笔记第二弹 21 7 17
&先附上 上期的代码import cv2 # 导入cv2import time # 导入timecap = cv2.VideoCapture(0) # 创建视频对象,笔记本摄像头必须编号0while True: success, img = cap.read() # 读取 作用是提供框架 cv2.imshow("Img",img) keypress = cv2.waitKey(1) if keypress & 0xFF == 27:
2021-07-17 14:02:07 184 2
原创 python学习②21 7 14
一.类定义:面向对象是指用类来描述一个对象(实例),用类来建立实例与实例的关联关系,描述相同的属性和方法的对象的集合。注意:类的定义的前后要加两个空行以告诉解释执行器,类的定义已经开始和结束。语法:class 类名(object): pass属性引用的语法:obj.属性类实例化的语法:obj = 类名()类中方法的调用:obj.方法名()看这个 https://blog.csdn.net/qq_33571752/article/details/85156727还有这个 https://b
2021-07-14 12:57:04 157
原创 python手部识别中的问题及笔记第一弹 21 7 13
一.调用笔记本电脑得摄像头错误代码展示import cv2 #导入cv2#import mediapipe as mp #导入媒体通道#import time #导入时间cap = cv2.VideoCapture(1) #创建视频对象,摄像头编号设为1while True: success,img = cap.read() #读取点帽,作用是提供框架 cv2.imshow("Image",img) cv2.waitKey(1)出现得报错内容 Fi
2021-07-13 23:17:45 236 1
原创 python学习①21 7 12
*非专业学习,可能笔记有误,仅作为个人学习笔记,有趣得地方希望记下来分享给大家一,栈与堆python中一切皆对象,三部分组成,id type valuename='玛丽亚'print(name)print(type(name))print(id(name))会输出:玛丽亚<class'str'>16883612663952涉及到栈内存和堆内存...
2021-07-12 18:36:38 95
原创 ①matlab与arduino通信演示 5.15
附上matlab的官方文档链接(粘贴不上去,想要可以留言)显示了如何连接到Arduino的®在MATLAB硬件®。确保Arduino硬件已连接到计算机。建立联系的两种方法如果设备是非官方的,请记下端口和板的名称。直接输入a = arduino()电脑会自动判断其属性a = arduino - 属性: Port: 'COM6' Board: 'Mega2560' Ava
2021-05-15 18:00:21 295
原创 ②arduino蓝牙模块HC-05 5.11
主从机:主机可以与从机配对,从机不能和从机配对。如果要两个单片机通信,那就至少一个是有主机功能的,要是两个都是从机是通信不了的。HC-05是主从模块,能做主机,从机。HC-06是从模块,只能做从机。HC03工业级主从HC04工业级从HC05民用级主从HC06民用级从这里的BLE(Bluetooth Low Energy)就是低功耗型的意思这里的EDR(Enhanced Data Rate)就是传输速率增强型的意思HC-08是蓝牙协议V4.0的BLE低功耗模块,只连接V4.0及更...
2021-05-11 13:14:16 2862 2
原创 ①arduino蓝牙模块HC-05 5.10
两种模式命令蓝牙模块具有两种模式命令响应工作模式和自动连接工作模式。命令响应工作模式(AT模式):连接:首先将Arduino断电,然后按照上述方法接好线,按住蓝牙模块上面的复位键,再给Arduino通电,如果蓝牙上面的指示灯两秒闪烁一次,表明已经进入AT模式,可以松手了。连接主设备和从设备时,板上的蓝色和红色LED每2秒闪烁一次。如果它们未连接,则每2秒仅蓝色闪烁一次。如图:(不会上传图片)当模块处于命令响应工作模式(或者AT模式)时能才能执行 AT 命令。自动链接模式
2021-05-10 21:23:28 1057 1
原创 算法学习① 4.16
1.什么是算法?在计算机领域里,算法是一系列程序指令,用于处理特定的运算和 逻辑问题。2.衡量算法优劣的主要标准是什么?时间复杂度和空间复杂度。3.什么是数据结构?数据结构是数据的组织、管理和存储格式,其使用目的是为了高效 地访问和修改数据。数据结构包含数组、链表这样的线性数据结构,也包含树、图这样 的复杂数据结构。4.什么是时间复杂度?时间复杂度是对一个算法运行时间长短的量度,用大O表示,记作 T(n)=O(f(n))。常见的时间复杂度按照从低到高的顺序,包括O(1)、
2021-04-16 21:18:28 100
原创 基于肌电传感器得打印断缺手指得代码讲解③ 4.2
1.关于新增校准代码for (int i = 0; i < 5000; i++) { sensorValue = analogRead(A0); delay(1); Serial.println(sensorValue); if(biggest_data<sensorValue) { biggest_data=sensorValue; } if (smallest_data>sensorValue)
2021-04-02 22:08:13 232
原创 基于串口输入数据控制舵机-某两个看不懂的代码QAQ
//引入lib#include <Servo.h>//引入libServo myservo; // 创建一个伺服电机对象char inByte = 0; //串口接收的数据int angle = 0; //角度值String temp = ;//临时字符变量,又或者说是缓存用的吧void setup(){myservo.attach(9); //定义舵机的引脚为9,舵机只能是10,或者9引脚Serial.begin(9600); //设置波特率}vo.
2021-03-30 22:41:58 335
原创 pwm舵机控制-之前某个看不懂的代码
arduino驱动舵机,不调用库函数int sp1=10;//定义舵机接口数字接口7int pulsewidth;//定义脉宽变量int val;int val1;int myangle1;//下面是servopulse函数部分(此函数意思:也就是說每次都是0.5ms高電平 1.98ms低電平 然後再0.52ms低電平 17ms延時也是低電平)void servopulse(int sp1,int val1)//定义一个脉冲函数{ myangle1=map(val1,0,180,5
2021-03-30 22:17:11 510
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人