自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大坡3D软件开发

自主操作系统和CPU--用软件来改变世界

原创 在OpenCV里用kNN实现手写字母识别

前面学习了使用kNN来识别手写数字,在这里将来学习使用kNN识别手写字母。同前面一样,首先要构造训练数据,那么训练数据来自哪里呢?如果没有网络,还得自己一个一个地构造,幸好有网络帮忙,直接到下载一个即可。下载文件letter-recognition.data,接着用编辑器打开,一看到内容如下: ...

2019-10-31 16:37:08

阅读数 11

评论数 0

原创 如何解决windows.h和WinSocket2.h的冲突

如何解决windows.h和WinSocket2.h的冲突 在一个大的VC++工程里,经常会遇到这样一个问题,比如想要使用一个库,而这个库里要使用<Windows.h>头文件,但是这样会引起后面代码里使用WinSocket2.h的冲突,导致整个工程编译不过。为了解决这...

2019-10-31 15:49:33

阅读数 10

评论数 0

原创 error LNK2019: 无法解析的外部符号 __except_handler4_common

4>MSVCRTD.lib(chandler4gs.obj) : error LNK2019: 无法解析的外部符号 __except_handler4_common,该符号在函数 __except_handler4 中被引用 最近在编译一个开源的工程时,发现出这个提示,导致执行文件...

2019-10-31 15:22:55

阅读数 36

评论数 0

原创 在OpenCV里用kNN实现手写数字识别

本文里将要学习用kNN来构造一个OCR应用,实现手写数字的识别。为了实现这个需求,我们需要一些训练数据和测试数据,在OpenCV里有一个手写数字的图片digits.png,这个图片里包含有5000个手写字体的数字,每个数字有500个,每个数字图片大小为20X20个像素。如下图所示: 因此,首...

2019-10-30 09:31:29

阅读数 23

评论数 0

原创 在OpenCV里使用kNN算法

在本文里主要学习kNN(k-Nearest Neighbour)算法。kNN是一个在监督学习里最简单的分类学习算法,其思想是在特征空间中寻找测试数据的最接近匹配。可以通过下图来说明: 在上面的图像里,主要有两大家族:蓝色方块和红色三角。把每一个家族相同的特征分开,叫做分类(Class)。他们...

2019-10-28 20:32:22

阅读数 16

评论数 0

原创 在OpenCV里使用立体图像深度图

本文将来学习怎么样从立体图像来创建深度图,在前面学习过对极几何的基本知识,从那里就可以直觉地感觉到,由两幅画像就可以找到深度信息。再来看一下对极几何: 从上图可以看出,使用中学数学里相似三角形的公式,就可以推导出下面的公式: x是左边相机成像平面里最左边与成像点的距离,x′是在右边相机...

2019-10-28 13:27:02

阅读数 81

评论数 0

原创 在OpenCV里使用对极几何

本文将要学习多视角几何的基础知识,极点、极线和对极约束等等。当我们使用一个针孔照相机来拍照照片时,会丢失很多重要的信息,比如物体的深度信息。或者说图像里每个点离相机多远,没有记录下来,因为这是一个从3D到2D的转换过程。那么我们怎么样才可以通过相机来保留深度信息呢?这是需要使用两台以上相机,就跟我...

2019-10-28 10:49:12

阅读数 55

评论数 0

原创 在OpenCV里使用姿态估算

在前面我们学习了怎么样进行相机校准,在这个过程中会发现相机矩阵、畸变系数等等。如果给定一个模式图像,我们可以利用上面的信息来计算它的姿态,或者物体在空间中的位置状态,比如它是如何旋转的,它是如何移位的等等。对于平面对象,往往认为它的Z轴是等于0的,所以现在我们怎么样才能通过平面图像来推导出来相机放...

2019-10-27 17:37:47

阅读数 61

评论数 0

原创 在OpenCV里使用相机校准

本文将要学习摄像机有什么类型失真,如何发现相机的内在和外在特性,如何根据这些特性消除图像的失真。有一些针孔相机会给图像带来严重的失真,主要存在这两种类型:径向畸变和切向畸变。径向畸变会导致直线拍摄出来的图里变成曲线,径向畸变越厉害,那么图像的点就会偏离图像中心点越远。比如如下图所示: 从上图...

2019-10-26 20:38:56

阅读数 125

评论数 0

原创 为什么会提示cv2.error: OpenCV(4.1.1)error: (-215:Assertion failed) ni == ni1错误

昨天在调用cv2.calibrateCamera函数时,突然提示下面这个错误: Traceback (most recent call last): File "D:/colorFile45.py", line 40, in <module> ...

2019-10-26 09:39:01

阅读数 278

评论数 0

原创 在OpenCV里使用光流算法

前面学习了使用一些运动算法来检测物体的运行,其实还有别的方法来检测运动的物体。比如节日庆祝时进行烟花表演,可以看到一道道光的轨迹,这说明物体在运动,同时也看到光在运动。另外,当你坐在火车上,朝车窗外观看时,会发现近处的物体在飞速地离去,而远处的山又好像静止不动,为什么同样速度的物体会有速度上感觉的...

2019-10-25 13:10:03

阅读数 100

评论数 0

原创 在OpenCV里使用Camshift算法

前面学习过Meanshift算法,在观察这个结果标记时,会发现有这样一个问题,如下图: 汽车比较远时,用一个很小的窗口就可以把它框住,这是符合近大远小的投影原理,当比较近的时候如下: 相同大小的窗口已经不能包围它了,那么这样跟踪目标对象就成为了一个问题,怎么样来更改它呢?那么就是Cam...

2019-10-24 20:42:53

阅读数 166

评论数 0

原创 在OpenCV里使用Meanshift算法

在这里将要学习Meanshift算法,这个算法主要在视频里寻找指定目标区域对象。Meanshift算法的原理在直觉上是很很简单的,假设有一张很点做成的图,如下图: 然后给你一个小的窗口,可以是圆形,也可以是方形,接着不断地移动这个窗口,尽量让这个窗口里的元素最多,也就是密度最大。在这里认为初...

2019-10-24 10:51:16

阅读数 75

评论数 0

原创 在OpenCV里使用背景去除

背景去除(Background subtraction)是一个基本的、广泛使用的技术,用它来生成一个前景掩模(把运动目标的像素生成二值化),以便把后面静态背景去掉。背景去除其实就是从图像里提取出静态的背景,然后把当前获取的图像减去背景,就可以得到前景,然后再把前景进行二值化。如下图所示: 在...

2019-10-23 09:33:37

阅读数 81

评论数 0

原创 在OpenCV里使用特征匹配和单映射变换

前面已经学习特征查找和对应匹配,接着下来在特征匹配之后,再使用findHomography函数来找出对应图像的投影矩阵。首先使用一个查询图片,然后在另外一张图片里找到目标对象,其实就是想在图片里查找所需要目标的一部分区域。为了实现这样的功能,需要使用calib3d库里的一个函数cv.findHom...

2019-10-22 17:09:02

阅读数 77

评论数 0

原创 在OpenCV里使用特征匹配

特征匹配(Feature Matching) 前面我们花费了大量时间来学习特征检测和描述,其实主要的目的就是为了图像是否匹配的问题。在OpenCV里提供了两个匹配技术:Brute-Force和FLANN。 Brute-Force匹配算法是比较简单的,它首先从一个特征集合里取一个特征与另外一...

2019-10-22 15:30:18

阅读数 58

评论数 0

原创 在OpenCV里使用ORB

SIFT和SURF都是比较好的特征检测算法,但是你是否想每年都为这两个算法花一些钱去买它们的使用权呢?这两个算法都是受版本保护的,如果要使用必须付费购买。那么有没有不付费,也有与之相比美的算法呢?OpenCV的爱好者开发了一个新的免费算法来替代SIFT和SURF,这个算法就是ORB。 理论:...

2019-10-22 09:44:21

阅读数 59

评论数 0

原创 在OpenCV里使用BRIEF

BRIEF是Binary Robust Independent Elementary Features缩写。我们知道SIFT使用128维向量做关键描述,由于它使用浮点数,需要512字节,同样的SURF也需要至少256字节(64维),创建上千个这样的向量需要很多内存,在资源受限的应用场景,特别是在嵌...

2019-10-22 07:48:58

阅读数 64

评论数 0

原创 在OpenCV里使用FAST算法

目标:了解FAST算法,在OpenCV里使用FAST算法。 理论: 前面学习了很多特征检测算法,并且表现得非常优秀。如果想从实时应用方面去使用它们,其实都不行,比如SLAM(Simultaneous Localization and Mapping)在移动机器人方面的应用。SLAM也称为C...

2019-10-21 17:09:35

阅读数 56

评论数 0

原创 在OpenCV里使用SURF

目标:学习SURF基本知识 理论: 在前面学习过SIFT,明白了关键点检测和描述,但是SIFT的计算量比较大,并且运行有点慢,因此人们开始思考能否进行改善,让速度更快一些。在2006年,Bay,H.,Tuytelaars,T. 和 Van Gool,L发表论文《SURF: Speeded ...

2019-10-21 10:32:05

阅读数 48

评论数 0

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