视频处理 demo1 import cv2 # 打开笔记本内置摄像头 capture = cv2.VideoCapture(0) # 笔记本内置摄像头被打开 while capture.isOpened(): # 从摄像头中实时读取视频 retval, image = capture.read() # 在窗口中实时显示读取到的视频 cv2.imshow("Video
图形检测 demo1 # 绘制几何图像的轮廓 import cv2 img = cv2.imread("./shape1.png") gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 将图像二值化 t, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 检测图像中的所有轮廓 co
深度学习Pytorch框架学习之Mnist数据识别简单程序 代码 平台notebooks #!/usr/bin/env python # coding: utf-8 # In[31]: import numpy as np from torch import nn,optim from torch.autograd import Variable from torchvision impor
腐蚀和膨胀demo1 # 腐蚀 import cv2 import numpy as np img = cv2.imread("./atm.jpg") k = np.ones((3, 3), np.uint8) cv2.imshow("img", img) dst = cv2.erode(img, k) cv2.imshow("dst", dst) cv2.waitKey() cv2.destr
滤波器 demo1 # 均值滤波器 import cv2 # 读取原图 img = cv2.imread("./atm.jpg") img = cv2.resize(img, None,None, 0.5, 0.5) # 使用大小为3×3的滤波核进行滤波 dst1 = cv2.blur(img, (3, 3)) # 使用大小为5×5的滤波核进行滤波 dst2 = cv2.blur(img, (5
模板匹配 demo1 # 单模板匹配 import cv2 img = cv2.imread("./rh.png") template = cv2.imread("./template.png") img = cv2.resize(img, None, None, 0.5, 0.5) height, width, c = template.shape # 按照标准平方差方式匹配 result
图像的运算 demo1 import cv2 import numpy as np mask = np.zeros((150, 150, 3), np.uint8) mask[50:100, 20:80, :] = 255 cv2.imshow("mask1", mask) mask[:, :, :] = 255 mask[50:100, 20:80, :] = 0 cv2.imshow("mas
图像的阈值处理 demo1 # 二值化处理黑白渐变图 import cv2 img = cv2.imread("./img.png", 0) # 二值化处理 t1, dst = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) cv2.imshow("img", img) cv2.imshow("dst", dst) cv2.waitKey() cv2
图像的几何变换 demo1 # dsize实现缩放 import cv2 img = cv2.imread("./cat.jpg") dst1 = cv2.resize(img, (100, 100)) dst2 = cv2.resize(img, (400, 400)) # cv2.imshow("img", img) # cv2.imshow("dst1", dst1) # cv2.imsho
绘制图形和文字 demo1 # 绘制线段 import cv2 import numpy as np # 创建一个300×300 3通道的图像 canvas = np.ones((300, 300, 3), np.uint8)*255 # 绘制一条直线起点坐标为(50, 50)终点坐标为(250,50),颜色的BGR值为(255, 0, 0)(蓝色),粗细为5 canvas = cv2.line(
色彩空间和通道 demo1 import cv2 hsv_image = cv2.imread("./img.png") cv2.imshow("img", hsv_image) hsv_image = cv2.cvtColor(hsv_image, cv2.COLOR_BGR2HSV) h, s, v = cv2.split(hsv_image) cv2.imshow("B", h) cv2
open cv 入门 像素的操作 demo1 import cv2 import os import numpy as np # 1、读取图像 # imread()方法 # 设置图像的路径 Path = "./img.png" # 设置读取颜色类型默认是1代表彩色图 0 代表灰度图 # 彩色图 flag = 1 # 灰度图 #flag = 0 # 读取图像,返回值是一个图像对象 image
STM32学习笔记 GPIO配置步骤 步骤: 第一步,使用RCC开启GPIO的时钟 第二步,使用GPIO_Init()函数初始化GPIO 第三步,使用输出或者输入的函数控制GPIO口 常用的RCC开启始终函数 void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph,FunctionalState NewSta
PID算法详解 控制算法 所谓控制就是把当前所控制的对象的状态控制为我们设定的目标值,或者尽可能的接近,例如:一个温度控制系统中,我想控制水温在100摄氏度,100摄氏度就是目标值,我们需要把当前温度不断地接近目标值100摄氏度。 传统的控制算法 SV是我们设定的值,PV是对象当前的值,将SV和PV同时送入特定电路或者算法中,利用控制算法对SV和PV进行分析、判断、处理,从而得出一个输
Dijkstra算法 Dijkstra算法 Dijkstra老爷子也是在计算机领域的名人了,在程序设计,编译器,操作系统,图论等方面都经常出现。他的一句最出名的名言就是:“有效的程序员不应该浪费时间用于程序调试,它们应该一开始就不要把故障已经纳入”,Dijkstra算法就是以他命名的常用的最短路径算法 Dijkstra算法的过程是: 第一步,先找到从源点到各个顶点的直达的路径,源点就是起点
STM32HAL库 GPIO STM32芯片最多拥有7组端口(GPIOA—GPIOG),每组端口最多有用16个引脚(Pin0—Pin15) STM32的每个I/O端口都可以自由编程,但I/O端口寄存器必须按32位字访问 对底层硬件的操作就是对寄存器的操作 STM32的每个I/O端口都有7个寄存器来控制 STM32的I/O端口可由软件配置成8种模式 STM32CubeMX可以实现初
定时器 STM32入门统一版完整链接(更新中): TIM(Timer)定时器 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 16位计数器、预分频、自动重装寄存器的时基单元,在72M计数时钟下可以实现最大59.65s的定时 不仅具备基本的定时器中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能
什么是寄存器? 我们现在在开发STM32时,已经很少用到寄存器编程,更多的使用ST公司所提供的标准库和最新的HAL库进行编程实现,但是不管是标准库还是HAL库都是在原来的寄存器层面上进行了封装,知道寄存器是什么,还是很重要的,了解寄存器的原来,对我们使用标准库和HAL库也是有很大的帮助。我下面会以STM32F103VET6为例,解释寄存器到底是什么? 在STM32编程,实际上就是通过程序控制这
外部中断 STM32入门统一版完整链接(更新中): 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行 中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源 中断嵌套:当一个中断程序正在运行时,又有新的更高优先
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信