自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (20)
  • 收藏
  • 关注

原创 Cross-Scale Cost Aggregation for Stereo Matching立体匹配算法介绍

最近,研究了下CVPR2014上的一篇基于多尺度代价聚合的立体匹配算法,这个作者提供了原代码,运行了下,发现效果真心不错,不开后端处理的话,时间在0.4s左右。这个算法比较牛逼的有两点: 1:结合多尺度思想,对原始图像进行下采样,然后在每层图像上计算匹配代价,进行代价聚合,然后多尺度得到的视差进行结合,作为最终的代价聚合值。 2:提供了一个框架,里面包含立体匹配很多常用的经典的方法,可以在每一步

2017-01-10 18:35:08 7349 22

原创 相机标定原理

之前写过一篇文章怎么使用Opencv进行相机标定,但没有详叙原理,这里从原理上面入手,分析下标定算法原理。1:相机成像原理 首先了解四个坐标系: 像素平面坐标系(u,v)、像平面坐标系(图像物理坐标第(x,y)、相机坐标系(Xc,Yc,Zc)和世界坐标系(Xw,Yw,Zw) 图像像素坐标系(u,v)是以图像左上角为原点,以像素为单位的直角坐标系,u,v表示像点所在的行和列。 图像物理坐标系(

2016-12-12 13:37:21 20872 3

原创 基于Opencv的几种立体匹配算法+ELAS

同http://blog.csdn.net/chuhang_zhqr/article/details/51179881类似,采用 这两个经典的图片进行测试。关于BM和SGBM以及VAR的参数设置请参考 晨宇思远本文代码基于opencv2.4.9 本文源码地址在我的CSDN代码资源: http://download.csdn.net/detail/chuhang_zhqr/97037630

2016-12-06 22:55:54 13752 6

原创 使用Opencv保存视频

使用相机或图片集,读取后保存成视频,可以调用opencv内部API,蛮简单的,主要就是VideoWriter类的使用;这里简单记录下,方便查询。#include <opencv2/opencv.hpp>#include <iostream>#include <stdio.h>using namespace cv;using namespace std;int main(int, char*

2016-11-15 15:38:41 2194

原创 Mastering Opencv ch4:SFM详解(三)

前面已经利用分解本质矩阵E得到两幅图像的姿态R1,R2,t1,t2. 如何把这四个值组合成P1,得到正确的解,接下来就要分析。1:利用三维重构求取在摄像机前面的重构点的所占比,得出最高占比的那个P1,就是要求得解。P1 = Matx34d(R1(0,0), R1(0,1), R1(0,2), t1(0), R1(1,0), R1

2016-10-28 00:09:13 4174 2

原创 Mastering Opencv ch4:SFM详解(二)

前文分析了如何进行特征检测匹配,接下来分析如何求解摄像机矩阵。I:求解基础矩阵首先介绍两个代码段,关于关键点和Point2f相互转化的函数void KeyPointsToPoints(const vector<KeyPoint>& kps, vector<Point2f>& ps) { ps.clear(); for (unsigned int i=0; i<kps.size();

2016-10-27 22:22:10 3704 5

原创 Mastering Opencv ch4:SFM详解(一)

从运动中恢复结构以便能更好的通过摄像机移动来提取图像几何结构。在书中为了使用单目相机,一个离散且稀疏的视频帧集合,而不是连续的视频流。这在后面两两循环组合配对提供了方便性。主要内容: 1:从两幅图像估计摄像机的运动姿态。 2:重构场景 3:从视图中重构 4:重构细化 5:可视化三维点云I:假定使用一个标定过的摄像机——一个先前标定过的摄像机。前面的博客也提到如何进行相机标定。因此,我们假定

2016-10-27 16:00:43 7951 3

原创 立体匹配中的全局匹配(一)动态规划笔记

近来研究立体匹配,从入门开始,先学习一些基本的算法思想。 立体匹配算法中,全局匹配是一个很重要的部分,利用图像的全局约束信息,对局部图像的模糊不敏感,它的计算代价很高。全局匹配算法通过构建全局能量函数,然后通过优化方法最小化全局能量函数以求得致密视差图。全局匹配算法一般有动态规划、置信传播、模拟退火、图割法、遗传学等,这里首先介绍动态规划,也是从一些论文中提取的思想,可能有不对的地方,望指正。动态

2016-09-19 16:17:38 28709 14

原创 基于Zynq的RT3070 WIFI + hostapd 实现Wifi和WifiAP

之前的博客实现了编译RT3070的驱动程序实现STA模式和SoftAP模式的wifi,这里实现另一种方式,貌似是现在比较新的,那两种也可实现就是略旧。主机开发环境:ubuntu14.04 交叉编译器:arm-xilinx-linux-gnueabi-gcc Linux内核版本:Linux-3.6.0 开发平台:zynq数字板 作者:zhu感谢http://blog.csdn.net/zhen

2016-09-11 22:50:21 7164

原创 ZYNQ部分功能引脚定义

关于Zynq的芯片引脚数比较多,功能配置比较多,对硬件攻城狮们设计电路图有一定的考虑,这里主要参考ug865这篇文档,对一些管脚翻译了下,做了点微小的工作。1:IO_LXXY_# / IO_XX_#:复用,输入输出,大部分用户输入输出引脚兼容差分信号,每个BANK的最上面和最下面的引脚是单端的,IO代表输入输出,L代表差分,XX表示数字,第多少对差分信号,#是BANK号。 2:配置引脚 DONE

2016-08-02 08:55:04 22082 3

原创 OpenCV_(5):core组件常用函数

OpenCV中包含core组件,这个大组件包含一些图像的基本操作,简述下几个模块: 1:操作图像像素:有三种方式 a. 指针访问:C操作符[],一般就是*data[],速度最快 b. 迭代器iterator, Mat_<Vec3b>::iterator it = outputImage.begin<Vec3b>();//初始位置迭代器 Mat_<vec3

2016-07-01 12:55:25 1204

原创 OpenCV_(4):输入输出XML和YAML文件

XML是一种可扩展标识语言。YAML是可读性高,用来表达资料序列的格式,是XML的升级。在OpenCV编程时,常用XML作为数据输入,YAML作为数据输出,可以存储和载入任意复杂的数据结构,包括周边的数据结构,以及各种原始数据。 写入或者读取数据到XML或YAML文件中。 (1)实例化一个FileStorage类的对象,用默认带参数的构造函数完成初始化,或者用FileStorage::open(

2016-06-30 22:55:07 749

原创 OpenCV_(3):编程辅助函数

这里介绍一些OpenCV编程中常用的一些辅助函数及应用。 1:在编程时,要调节一些参数的设置,重复编译函数很无聊,就要加入一些滑动条以进行参数设置。 创建滑动条:createTrackbar()int createTrackbar(const string& trackbarname,const string& winname,int* value,int count,TrackbarCallb

2016-06-30 22:31:18 2134 2

原创 OpenCV_(2):常用数据结构和函数

首先介绍几个常用的结构体:Point2f p(6,2); //二维点Point3f p3f(8,2,0); //三维点vector<float> v;vector<Point2f> Points(20);接下来就是几个常用的类和常用函数:Point:二维点,三维点等Scalar:颜色的表示,RGBA四个元素Size:尺寸的表示,宽和高Rect:矩形的表示,(x,y,width,heig

2016-06-30 16:51:22 2765

原创 OpenCV_(1):Mat结构的应用

Mat类是OpenCV的C++接口的图像存储类,不必像C接口的IplImage那样要创建释放内存,不用担心内存释放问题,上手快。Mat类由两部分组成:矩阵头(矩阵尺寸,存储方法,存储地址等信息)和一个指向存储所有像素值的矩阵(根据所选存储方法的不同,矩阵可以是不同的维数)的指针。因为大图像的复制会降低程序的运行速度,为了解决这个问题,引入计数机制。思路是让每个Mat对象有自己的信息头,但共享同一个矩

2016-06-30 15:58:54 950

转载 几种典型的立体匹配算法

使用左右两张图片,计算深度图。一下几种算法代码参考 http://www.360doc.com/content/13/0129/11/11533449_263014896.shtml,经验证可行。并得到一下的深度图,貌似DP算法比较快并且效果还蛮好的。 SAD算法#include<iostream> #include<cv.h> #include<highgui.h> using

2016-04-18 15:21:11 29515 11

转载 FPGA基础知识

1:什么是同步逻辑和异步逻辑? 同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。 同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路的状态才能改变。改变后的状态将一直保持到下一个时 钟脉冲的到来,此时无论外部输入 x有无变化,状态表中的每个状态都是稳定的。 异步时序逻辑电路的特点:电路中除可以使用带时钟的触发器外

2016-04-06 01:00:28 9856 1

转载 图像修补

图像修补就是使用坏点周围的像素取代坏点,这样它看起来和周围像素就比较像了。OpenCV 使用函数 cv2.inpaint() 来实施。 第一个算法是根据 Alexandru_Telea 在 2004 发表的文章实现的。它是基于快速行进算法的。以图像中一个要修补的区域为例。算法从这个区域的边界开始向区域内部慢慢前进,首先填充区域边界像素。它要选取待修补像素周围的一个小的邻域,使用这个邻域内的归一化加

2016-04-05 23:11:25 3160

转载 图像去噪

很多图像平滑技术,比如高斯平滑,中值平滑等,当噪声比较小时这些技术的效果都是很好的。在这些技术中我们选取像素周围一个小的邻域然后用高斯平均值或者中值平均值取代中心像素。简单来说,像素级别的噪声去除是限制在局部邻域的。 噪声有一个性质。我们认为噪声是平均值为一的随机变量。考虑一个带噪声的像素点,p = p 0 + n,其中 p 0 为像素的真实值,n 为这个像素的噪声。我们可以从不同图片中选取大量的

2016-04-05 23:06:38 9737

转载 光流

1: 光流 由于目标对象或者摄像机的移动造成的图像对象在连续两帧图像中的移动被称为光流。它是一个 2D 向量场,可以用来显示一个点从第一帧图像到第二帧图像之间的移动。 上图显示了一个点在连续的五帧图像间的移动。箭头表示光流场向量。光流在很多领域中都很有用: • 由运动重建结构 • 视频压缩 • Video Stabilization 等光流是基于一下假设的: 1. 在连续的两帧图像之间(

2016-04-05 10:26:14 7058

转载 Meanshift 和 Camshift

使用 Meanshift 和 Camshift 算法在视频中找到并跟踪目标对象。 1:Meanshift Meanshift 算法的基本原理是和很简单的。假设我们有一堆点(比如直方图反向投影得到的点),和一个小的圆形窗口,我们要完成的任务就是将这个窗口移动到最大灰度密度处(或者是点最多的地方)。如下图所示: 初始窗口是蓝色的“C1”,它的圆心为蓝色方框“C1_o”,而窗口中所有点质心却是“C1

2016-04-05 10:10:30 1629

转载 背景减除-提取前景

在很多基础应用中背景检出都是一个非常重要的步骤。例如顾客统计,使用一个静态摄像头来记录进入和离开房间的人数,或者是交通摄像头,需要提取交通工具的信息等。在所有的这些例子中,首先要将人或车单独提取出来。 技术上来说,我们需要从静止的背景中提取移动的前景。如果你有一张背景(仅有背景不含前景)图像,比如没有顾客的房间,没有交通工具的道路等,那就好办了。我们只需要在新的图像中减去背景就可以得到前景对象了。

2016-04-05 00:55:32 21117 5

转载 特征匹配和单应性

使用 OpenCV 中的蛮力(Brute-Force)匹配和 FLANN 匹配。 1:Brute-Force 匹配的基础 蛮力匹配器是很简单的。首先在第一幅图像中选取一个关键点然后依次与第二幅图像的每个关键点进行(描述符)距离测试,最后返回距离最近的关键点。 对于 BF 匹配器,我们首先要使用 cv2.BFMatcher() 创建一个 BF-Matcher 对象。它有两个可选参数。第一个是 n

2016-04-04 23:21:26 4298

转载 Bundle Adjustment 原理推导

参考 摄影测量学 武汉大学出版社 金为铣 2001年4月 P23J1718 光束法平差模型: 在解析摄影测量中,将外方位元素(局外点)和模型点坐标(局内点)的计算放在一个整体内进行,此时称其为光束法。光束法平差是以共线方程式作为数学模型,像点的像平面坐标观测值是未知数的非线性函数,经过线性化后按照最小二乘法原理进行计算。该计算也是在提供一个近似解的基础上,逐次迭代来达到趋近于最

2016-03-22 15:49:08 4687

转载 计算机视觉中的ICP算法

本文主要参考了 http://www.cnblogs.com/yin52133/archive/2012/07/21/2602562.html http://blog.sina.com.cn/s/blog_8c84cf510100yv36.html http://blog.csdn.net/wangjie0377/article/details/7098446ICP(Iterative Clo

2016-03-22 14:55:40 4243

转载 计算机视觉的数学基础

本文转载高博士的博客 主要介绍了在计算机视觉中关于3D变换矩阵的数学方法。旋转矩阵是一种3×3的正交矩阵, 这里R为3D的旋转矩阵,同样的,t为3D的平移矢量。 由于3D旋转都可以归结成按照某个单位向量n进行大小为θ的旋转。所以,已知某个旋转时,可以推导出对应的旋转矩阵。该过程由罗德里格斯公式表明,由于过程比较复杂,我们在此不作赘述,只给出转换的结果:  这里 公式虽然较为复

2016-03-22 14:30:05 7435

转载 Bundle Adjustment光束平差法概述

本文主要参考 http://blog.csdn.net/abcjennifer/article/details/7588865 http://blog.csdn.net/ximenchuixuezijin/article/details/7246663 http://blog.csdn.net/peterli_xue/article/details/7528624给出从不同视角拍摄的,描述同一

2016-03-22 13:16:00 17722

转载 特征匹配及其优化

本文转载http://www.cnblogs.com/wangguchangqing/p/4333873.html在OpenCV2简单的特征匹配中对使用OpenCV2进行特征匹配的步骤做了一个简单的介绍,其匹配出的结果是非常粗糙的,在这篇文章中对使用OpenCV2进行匹配的细化做一个简单的总结。主要包括以下几个内容: DescriptorMatcher DMatcher KNN匹配

2016-03-22 01:01:17 4771

转载 RANSAC随机抽样一致算法

本文主要参考了http://www.cnblogs.com/xrwang/archive/2011/03/09/ransac-1.html http://grunt1223.iteye.com/blog/961063 http://www.cnblogs.com/xrwang/p/SampleOfRansac.html http://www.cnblogs.com/yin52133/archi

2016-03-22 00:45:49 7670

转载 特征提取算法--ORB

本文主要参考了一下博客: http://blog.csdn.net/hujingshuang/article/details/46984411 http://blog.csdn.net/stellar0/article/details/8741676 http://blog.sina.com.cn/s/blog_567a58300101iarh.htmlORB算法的论文来自”ORB: an e

2016-03-17 16:56:04 14823 5

转载 特征提取算法--Surf

本文参考了 http://blog.csdn.net/a784763307/article/details/17289251 http://blog.csdn.net/yujiflying/article/details/8203511 http://blog.csdn.net/cxp2205455256/article/details/41311013 SURF意指 加速的具有鲁棒性的特征

2016-03-16 20:57:12 11650

转载 特征提取算法--Sift

SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,它在空间尺度中对一副图寻找极值点,并提取出其位置、尺度、旋转不变量等描述子得到特征并进行图像特征点匹配,用来侦测与描述影像中的局部性特征。 它是基于物体上的一些局部特征SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;使用 S

2016-03-14 22:27:19 53696 4

原创 嵌入式网络编程

在Linux中的网络编程是通过socket接口来进行的。是一种文件描述符。socket也有一个类似于打开文件的函数调用,该函数返回一个整型的socket描述符,随后的连接建立、数据传输等操作都是通过socket来实现的。 常见的socket有3种类型:(1)流式socket (SOCK_STREAM) 流式套接字提供可靠的、面向连接的通信流;它使用TCP协议,从而保证了数据传输的正确性和顺序性。(

2016-03-11 15:51:17 3263

原创 git管理操作

目前最火的版本控制软件就是Git了吧。总结下我的git使用记录。 1:安装完git后首先要设置git config –global user.name “” 和git config –global user.email “” 2:创建一一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录,通过git init命令把这个目录变成Git可以管理的仓库 3:编写一个文本文件(二进制文件是不能

2016-03-10 14:05:08 425

原创 嵌入式Linux设备驱动开发(二)

上一篇中介绍到设备驱动如何匹配设备以及绑定设备的,在Linux系统下进行注册,这里将继续介绍probe函数的功能。 5、probe函数 Probe()函数必须验证指定设备的硬件是否真的存在,probe()可以使用设备的资源,包括时钟,platform_data等。一般来说设备是不能被热插拔的,所以可以将probe()函数放在init段里面来节省driver运行时候的内存开销。probe函数在设备

2016-03-10 13:51:26 2342

原创 嵌入式Linux设备驱动开发(一)

设备驱动开发是Linux开发领域一个非常重要的部分,在Linux源码的85%都是驱动程序的代码。设备驱动开发不仅需要了解硬件底层的知识,还需要拥有操作系统的背景。驱动程序追求的是高效,稳定,驱动程序发生的问题有可能直接导致整个系统的崩溃。 驱动程序不主动运行,意味着驱动程序是等待应用程序来调用的。应用程序通过内核来调用驱动程序,实现与实际硬件设备的通信。Linux外设通常可以分为字符型设备、块设备

2016-03-10 01:34:09 3050

原创 AMBA总线概述(二)

AXI是ARM在1996年提出的微控制器总线家族AMBA中的一部分。AXI是高级扩展接口,在AMBA3.0中提出,AMBA4.0将其修改升级为AXI4.0。AMBA4.0 包括 AXI4:主要面向高性能地址映射通信的需求,允许最大256轮的数据突发传输; AXI4-Lite:是一个简单地吞吐量地址映射性通信总线,是一个轻量级的地址映射单次传输接口,占用很少的逻辑单元;

2016-03-09 16:31:53 7956

转载 AMBA总线概述(一)

高级微控制器总线结构Advanced Microcontroller Bus Architecture(AMBA)定义了高性能嵌入式微控制器的通信标准。可以将RISC处理器集成在其他IP芯核和外设中,它是有效连接IP核的“数字胶”,并且是ARM复用策略的重要组件。它不是芯片与外设之间的接口,而是ARM内核与芯片上其他元件进行通信的接口。比如Xilinx公司的Zynq芯片,就是ARM与FPGA之间的连

2016-03-09 13:53:28 17705

原创 机器学习实战5--Logistic回归

前面的分类都是基于标签是离散值进行的,这里回归是针对标签是连续值进行的。 假设现在有一些数据点,我们用一条直线对这些点进行拟合,这个拟合过程就是回归,该线就是最佳拟合直线。主要思想:根据现有数据对分类边界线建立回归公式,以此进行分类。回归就是最佳拟合,找到最佳拟合参数集,训练分类器的做法就是寻找最佳拟合参数,使用的是最优化算法。 找到分类回归系数就可以了。 1:基于logistic回归和Sig

2016-02-29 14:30:06 991

原创 机器学习实战4--朴素贝叶斯

分类器在进行分类的时候会给出一个最优的类别猜测结果,同时给出这个猜测的概率估计值。若p1>p2,那么属于类别1,反之属于类别2。 朴素贝叶斯属于贝叶斯决策理论的一部分:贝叶斯准则是计算条件概率的方法,若已知P(x|c),要求P(c|x),则p(c|x)=p(x|c)p(c)/p(x)。 p(c1|x,y)表示给定某个由x,y表示的数据点,那么该数据点来自c1的概率是多少。利用贝叶斯准则求得p(x

2016-02-27 15:07:46 2694

crossScale 立体匹配 linux移植

把crossscale stereomatch 移植到linux 上,cmake进行编译。

2017-01-17

stereoMatch

自己整理了下一些立体匹配的算法,包括局部匹配的SAD,NCC,还有简单的NP,也有基于OPENCV的立体匹配,最后一个是基于ELAS的立体匹配算法

2016-12-06

hostapd-1.0.tar.gz wifi热点设置工具

hostapd-1.0.tar.gz wifi热点设置工具

2016-09-11

libnl-1.1用于wifi 移植

libnl-1.1用于wifi 移植

2016-09-11

openssl.0.9.8e

在移植wifi时用到的库openssl,这个版本的库是用到最多的

2016-09-11

rt3070的驱动bin文件

移植rt3070到arm时用到的rt2870.bin文件

2016-09-11

wireless-tools

用于移植wifi到arm上的wireless-tools,可以控制wifi链接路由器

2016-09-11

嵌入式网络编程

这是在Linux上运行的网络主机和客户端代码,以及这两个代码的解释,适合新手下载了解

2016-03-11

CMakeList.txt编写技巧

一篇关于CMakeList.txt的编写技巧,以及我自己的笔记,简单易懂。

2016-03-10

AXI总线接口信号描述

这个文档是有关AXI4总线读写信号和低功耗信号的描述

2016-03-09

Multiple View Geomet.pdf

Multiple View Geomet.pdf,这个是英文版,前面有中文版的,不过这个是第二版

2016-01-28

无标识的AR的OpenCV实现-Linux

这是基于自然标识的AR的OpenCV的实现,内含编译源码和MakeFIle,下载即可编译

2016-01-28

计算机视觉中的多视图几何3

计算机视觉中的多视图几何中文版,这是第三部分,请自愿下载,不骗人

2016-01-28

计算机视觉中的多视图几何2

计算机视觉中的多视图几何中文版,这是第二部分

2016-01-28

计算机视觉中的多视图几何

计算机视觉中的多视图几何的中文版,这是第一部分

2016-01-28

基于标识的AR的OpenCV实现 -linux

这个是我在linux终端下实现的Mastering Opencv第二章的代码,是基于标识的AR的Opencv实现,需要的请下载

2015-11-25

单目相机标定

这是基于OpenCV中一个例程进行相机标定,代码内部有我测试用的文件和图片,也可以看我的博客里的分析,必须好用。

2015-11-23

RT3070-softap

用于RT3070的softap驱动,可以作为一个接入点

2015-10-28

zynq内核配置文件

针对zynq进行的配置,除了原来zedboard 的基本配置,其中包括V4L的配置,和wifi的配置,可以在实现zynq接摄像头和wifi模块的时候,能够识别

2015-10-27

zynq移植的rt2870驱动

在zynq上进行wifi移植,使用的是D_LINK的wifi,wifi芯片是rt2870,这是驱动下载包

2015-10-27

空空如也

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

TA关注的人

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