<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_59466249的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_59466249</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_59466249]]></copyright><item><title><![CDATA[OpenCV：10特征检测]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125961436</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125961436</guid><author>m0_59466249</author><pubDate>Thu, 04 Aug 2022 10:32:49 +0800</pubDate><description><![CDATA[特征检测是和中的一个概念。它是指使用计算机，决定每个图像的点是否属于一个图像特征。，这些子集往往属于孤立的点、连续的曲线或者连续的区域以拼图游戏为例来说明特征检测的应用流程因此：A、B（蓝色框）不是特征 ——> 不是唯一的C、D（黑色框）不是特指 ——> 不是唯一的E、F（红色框）是特征 ——> 唯一、可追踪、能比较图像特征就是值有意义的区域，具有独特性、易于识别性。...]]></description><category></category></item><item><title><![CDATA[OpenCV：09车辆统计项目]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125934965</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125934965</guid><author>m0_59466249</author><pubDate>Sun, 24 Jul 2022 13:49:58 +0800</pubDate><description><![CDATA[我们不可能对整幅图进行统计，那样太乱了，也有很多噪声——我们应该画一条线，对经过这条线的车辆进行统计。如果我们有完整的静止的背景帧，那么我们可以通过帧差法来计算像素差从而获取到前景对象。——>效果是动的东西（前景）会变成白色；当运动物体有阴影时，由于阴影也在移动，情况会变得更加复杂，为此引入。我们设置一个阈值，如果某一像素面积大于这个阈值，那么就说明这是🚗。从去背景例程中，我们可以发现有很多白点（噪声），因此我们需要。但是在大多数情况下，我们可能没有这样的图像，所以我们。关键API打开摄像头。......]]></description><category></category></item><item><title><![CDATA[OpenCV：08图像金字塔]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125909895</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125909895</guid><author>m0_59466249</author><pubDate>Sun, 24 Jul 2022 11:03:44 +0800</pubDate><description><![CDATA[是图像中多尺度表达的一种，最主要用于图像的分割，是一种以多分辨率来解释图像的有效且概念简单的结构。图像金字塔最初用于和，一幅图像的金字塔是一系列以金字塔形状排列的、且的。其通过梯次向下采样获得，直到达到某个终止条件才停止采样。金字塔的底部是待处理图像的高分辨率表示，而顶部是低分辨率的近似。我们将一层一层的图像比喻成金字塔，层级越高，则图像越小，分辨率越低高斯金字塔固定了缩放比，即如果你是800×800的图，无法缩放成500×500我们将要学习用什么方法，如何去生成这些图像金字塔。......]]></description><category></category></item><item><title><![CDATA[OpenCV：07图像轮廓]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125832590</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125832590</guid><author>m0_59466249</author><pubDate>Mon, 18 Jul 2022 20:31:21 +0800</pubDate><description><![CDATA[图像轮廓是具有相同颜色或灰度的连续点的曲线，轮廓在和中很有用处。]]></description><category></category></item><item><title><![CDATA[OpenCV：06阈值与形态学]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125808190</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125808190</guid><author>m0_59466249</author><pubDate>Sun, 17 Jul 2022 15:39:22 +0800</pubDate><description><![CDATA[morphology什么是形态学？指一系列处理图像形状特征的图像处理技术形态学的基本思想是利用一种特殊的结构元（本质上就是卷积核，该卷积核只有0和1两个数字），通过0和1来测量或提取输入图像中相应的形状或特征，以便进一步进行图像分析和目标识别这些处理方法基本是对二进制图像的处理，即黑白图像卷积核决定着图像处理后的效果形态学基本操作有膨胀和腐蚀开运算闭运算顶帽黑帽通俗地说，你想要获取图像中的任何部分（噪声、图形、轮廓…）形态学都能满足，这就是它的魅力。.....................]]></description><category></category></item><item><title><![CDATA[OpenCV：05滤波器]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125676291</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125676291</guid><author>m0_59466249</author><pubDate>Fri, 15 Jul 2022 16:15:54 +0800</pubDate><description><![CDATA[图像卷积就是卷积核在图像上按行滑动遍历像素时不断地相乘求和的过程。]]></description><category></category></item><item><title><![CDATA[OpenCV：04图像的基本变换]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125550324</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125550324</guid><author>m0_59466249</author><pubDate>Thu, 07 Jul 2022 23:01:10 +0800</pubDate><description><![CDATA[关键API：
其中：
结果：

结果：
可以看到xy轴都缩小了一半
仿射变换是图像旋转、缩放、平移的总称。具体的做法是通过一个矩阵和原图片进行坐标运算，得到新的坐标，完成变换，所以仿射变换的关键就是这个矩阵仿射变换不会改变每个像素点上的RGB色彩，只会改变像素对应的位置 ——> 我们只要找出其中对应的数学关系，就可以用一个矩阵一次性地把所有的点变过去通过仿射变换，图像可以通过一系列的几何变换来实现平移、旋转等多种操作。该变换能够保持图像的平直性和平行性。平直性是指图像经过仿射变换后，直线仍然是直线；平行性是]]></description><category></category></item><item><title><![CDATA[OpenCV：03图像的算数运算]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125537910</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125537910</guid><author>m0_59466249</author><pubDate>Thu, 30 Jun 2022 23:38:14 +0800</pubDate><description><![CDATA[关键API：的规则就是两个图对应的元素相加，如果超过255(像素点的大小0-255)，则全部变成255
图片还可以和单个数字进行运算，如
每个和100进行加法运算，超过255的数字，会被截断，相当于

减法运算
关键API：的规则就是两个图对应的元素相减，如果小于0(像素点的大小0-255)，则全部变成0
乘法
关键API：乘法的规则和加法一样：两个图对应的元素相乘，如果超过255(像素点的大小0-255)，则全部变成255

除法
关键API：除法的规则和减法一样：两个图对应的元素相除，如果小于0(像素点]]></description><category></category></item><item><title><![CDATA[OpenCV：02基础知识和绘制图形]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125487352</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125487352</guid><author>m0_59466249</author><pubDate>Wed, 29 Jun 2022 09:51:12 +0800</pubDate><description><![CDATA[最常见的色彩空间就是，人眼也是基于的色彩空间去分辨颜色的OpenCV默认使用的是，和色彩空间的区别在于图片在色彩通道上的排列顺序不同显示图片时要注意适配图片的色彩空间和显示环境的色彩空间：比如传入的图片是BGR色彩空间，显示环境是RGB色彩空间，就会出现颜色混乱的情况	
OpenCV用的最多的色彩空间就是方便OpenCV做图像处理.比如根据的值就可以判断背景颜色.和差不多在顶部是纯白的, 不管是什么颜色.和的区别

理解：
是一种颜色编码方法。常使用在各个视频处理组件中。 在对照片或视频编码时，考虑到人类的]]></description><category></category></item><item><title><![CDATA[OpenCV：01图片&视频的加载显示]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125452030</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125452030</guid><author>m0_59466249</author><pubDate>Mon, 27 Jun 2022 19:35:06 +0800</pubDate><description><![CDATA[窗口操作
：'mat’表示展示的内容，0表示什么都不展示
计算按键的值


读取图片

用其他插件来读取(以为例)
先将图片存入我们的文件夹下，命名为

注意：单独调用时可以不用创建窗口，opencv会自动生成

函数的封装
如果我们需要频繁地显示图片，那么我们可以把显示图片的方法封装成一个函数方便我们显示图片把这个函数放在一个文件里，需要使用的话就直接导入文件即可将函数保存为文件(命名为)，放在我们的文件夹中
想要调用函数时，我们导入文件即可
注意：导入后必须先执行文件！
使用函数
保存图片
：使用imw]]></description><category></category></item><item><title><![CDATA[OpenMV与Arduino通信—串口]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125426159</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125426159</guid><author>m0_59466249</author><pubDate>Fri, 24 Jun 2022 13:37:49 +0800</pubDate><description><![CDATA[所有要进行串口通信的设备，必须相连 (共地)——>因为我们进行串口通信的设备是一个具有高电平和低电平的电压信号，所以进行通讯的设备必须接地，这样才有相应的高电平和低电平产生注意：Arduino的和引脚如果外接了别的设备，那么在我们上传代码到Arduino时是一定会失败的（上传时用到了这两个引脚），所以我们上传时要要先把导线移除掉在发送数据时，为了避免打断Arduino正在进行的工作，聪明的Arduino工程师选择把串口输入的数据放入Arduino的串行数据缓冲区中，等到Arduino完成工作后，就可以检测串]]></description><category></category></item><item><title><![CDATA[OpenMV与Arduino通信——IIC]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125412809</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125412809</guid><author>m0_59466249</author><pubDate>Wed, 22 Jun 2022 22:35:44 +0800</pubDate><description><![CDATA[OpenMV-Code

Arduino-Code

Arduino通信
用到了Arduino上的库功能：初始化连接，并作为主机或者从机设备加入总线当没有填写参数时，设备会以主机模式加入总线；当填写了参数时，设备以从机模式加入总线， 可以设置为0~127 中任意地址例子功能：主设备请求从设备一个字节，这个字节可以被主设备用 read()或available()接受使用后，从机端可以使用  注册一个事件以响应主机的请求；主机可以通过 和  函数读取这些数据
参数功能：发出开始传输数据的信号，设定传输数据到指定]]></description><category></category></item><item><title><![CDATA[OpenMV与I2C二线串行协议]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125404643</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125404643</guid><author>m0_59466249</author><pubDate>Wed, 22 Jun 2022 22:35:27 +0800</pubDate><description><![CDATA[在OpenMV的底层逻辑中，I2C被定义为一个类是一个设备间传输的二线串行协议。其物理层包括两条线：，分别为时钟和数据线。 OpenMV不再为SDA和SCL提供上拉，因此SDA和SCL需要外部上拉才能使I2C工作对象创建在特定总线上。可在创建时或创建后初始化。例子：

其中的两个常量打印对象可以提供关于其配置的信息发送：
接收：

要接收数据，先创建一个:
你可以指定一个超时时长（单位：毫秒）:

主机必须指定接收方地址
主机也有其他方法
构造函数

在给定总线上构建一个对象。  可为2或4。在没有其他参数]]></description><category></category></item><item><title><![CDATA[OpenMV与JSON编码]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125406585</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125406585</guid><author>m0_59466249</author><pubDate>Wed, 22 Jun 2022 22:35:01 +0800</pubDate><description><![CDATA[如果想快速尝试两个单片机通信的。推荐使用串口传输字符串！JSON是一种简洁高效的交换数据的格式。 它可以是这种简单的：
注：我通过这种简单的字符串，把OpenMV中的色块的x，y坐标发送出去。也可以是这种复杂的：
在python中表示多行字符串：
我使用这种结构把OpenMV采集到的颜色信息发送到wifi中的服务器中。甚至于，可以像这样：
注意：json的形式和Python很像，但是json是javascript的对象表达形式，和python的表达形式稍有不同。OpenMV内置的模块允许Python对象和J]]></description><category></category></item><item><title><![CDATA[OpenMV：25传感器扩展板控制三个舵机]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125389361</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125389361</guid><author>m0_59466249</author><pubDate>Tue, 21 Jun 2022 14:15:52 +0800</pubDate><description><![CDATA[今天讲解一下如何使用OpenMV本身来控制三个舵机(借助传感器扩展板)对于OpenMV或OpenMV4而言，我们可以使用P7P8P9三个PWM引脚来通过PWM来实现对舵机的控制，对于OpenMV2而言，只能使用P7或P8来实现两个舵机的控制，我们可以通过控制PWM的占空比来控制舵机的速度，或是直接控制舵机转动到某个角度，如sevor.angle(90)控制舵机转到90°的位置关于舵机的供电，我们推荐使用四节1.2V的镍氢电池(每节电池电压为1.2V)

Servo(1) -> P7 (PD12)
Servo]]></description><category></category></item><item><title><![CDATA[OpenMV：24串口接受数据]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125388679</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125388679</guid><author>m0_59466249</author><pubDate>Tue, 21 Jun 2022 14:15:44 +0800</pubDate><description><![CDATA[因为Arduino Uno只有一个串口，一个用来接受，就没办法发送给电脑显示了。所以我们使用软件模拟串口，来进行串口转发程序。
转发逻辑是这样的：OpenMV的数据发送给Arduino Uno的软串口，Arduino的串口连接到电脑并显示结果的。所以，在ArduinoMega的逻辑就是：，然后，。
与星瞳串口助手通信
运行下面的程序：......]]></description><category></category></item><item><title><![CDATA[OpenMV：23串口发送数据]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125381223</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125381223</guid><author>m0_59466249</author><pubDate>Tue, 21 Jun 2022 14:15:27 +0800</pubDate><description><![CDATA[本节讲解如何使用OpenMV通过串口来发送数据OpenMV 是可以直接通过串口发送字符串的。为什么要用串口呢？因为要时候需要把信息传给其他MCU（单片机），串口简单，通用，基本每一个MCU都会有串口。TTL串口至少需要3根线：。，，。 连线的时候，需要。图示：基本上所有单片机都有串口，因此我们可以使用OpenMV的串口来给任何其他的单片机或者是设备来传输信息如果我们需要查看OpenMV上串口的信息，我们需要额外的设备(示波器或USB转串口模块)OpenMV有一个扩展板——>串口调试扩展板，它可以直接通过这个]]></description><category></category></item><item><title><![CDATA[OpenMV：22电机扩展板控制直流电机]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125379985</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125379985</guid><author>m0_59466249</author><pubDate>Mon, 20 Jun 2022 21:26:18 +0800</pubDate><description><![CDATA[今天为大家讲解下OpenMV配套的电机扩展板我们需要自己焊接插针在使用电机扩展板时，我们的电机扩展板需要外接一个6V~12V的电源，来为电机供电；电机扩展板同时会使用LDO为OpenMV进行供电对于每个电机，电机驱动芯片需要两个引脚来设置其内部H桥的方向(这个方向可以控制我们电机的正反转)同时我们需要一个额外的引脚来进行PWM的控制，这样可以进行我们电机速度的控制我们的电机扩展板使用了，，所以我们的电机拓展板和PCA9685舵机拓展板是可以同时使用的，因为他们的引脚并不冲突打开星瞳科技官网，点击产品，找到电]]></description><category></category></item><item><title><![CDATA[OpenMV：21控制多个舵机(需要模块PCA9685)]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125379330</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125379330</guid><author>m0_59466249</author><pubDate>Mon, 20 Jun 2022 20:15:27 +0800</pubDate><description><![CDATA[今天我们来学习下OpenMV的舵机拓展板来控制多个舵机同时使用如果我们想控制三个以上的舵机，就需要用到舵机拓展板PCA9685PCA9685使用的是，我们可以直接使用PCA9685舵机拓展板来控制八个舵机舵机的供电采用的是，我们可以用四节~五节干电池来进行供电(一节干电池就是1.2V的电压)		——不能使用3.7V的锂离子电池供电！对于电源的供电，我们直接将电源连接到OpenMV的VCC和GND两个引脚即可将电机拓展板PCA9685插到OpenMV上，电源（4.8V~6V）连接到右侧的VCC和GND上
一个]]></description><category></category></item><item><title><![CDATA[OpenMV：20追踪其他物体的云台]]></title><link>https://blog.youkuaiyun.com/m0_59466249/article/details/125370966</link><guid>https://blog.youkuaiyun.com/m0_59466249/article/details/125370966</guid><author>m0_59466249</author><pubDate>Mon, 20 Jun 2022 13:55:44 +0800</pubDate><description><![CDATA[和追踪小车的原理是一样的首先获得目标物体的x,y坐标，然后通过目标物体的xy坐标来控制我们云台的两个舵机的pid运动无论追踪什么物体，都是通过物体的x,y坐标来控制云台的运动，对于云台的舵机来说，它只知道传给它的是x,y坐标，并不知道OpenMV传给它的是小球的xy坐标还是人脸的xy坐标所以我们只需要修改main.py中的函数即可搜索函数：记得要，并且寻找小球的函数和寻找人脸的函数的返回值是不一样的！

追踪AprilTags的云台
搜索函数：

追踪圆形的云台
搜索函数：注意要用到，加在我们的sensor]]></description><category></category></item></channel></rss>