自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

机器视觉

图像处理&&机器视觉&&FPGA&&Linux(hecengmengjue@163.com)

  • 博客(87)
  • 资源 (21)
  • 问答 (1)
  • 收藏
  • 关注

原创 PCL学习笔记(二)PCD文件格式

The PCD (Point Cloud Data) file formatThis document describes the PCD (Point Cloud Data) file format, and the way it is used inside Point Cloud Library (PCL).Why a new file format?The PC

2013-06-11 02:13:49 5285

原创 PCL学习笔记(一)PCL+VS2010环境配置

PCL+VS2010环境配置我本是效率至上的Linux党,但是PCL在Ubuntu下配置了几次都失败,不得不选择Windows1、下载http://www.pointclouds.org/downloads/windows.html出下载PCL完全安装包1.6.0 all-in-one-installer,我的电脑是32位的选择Windows MSVC 2010 (32bi

2013-06-11 01:16:17 19923 17

原创 矩阵计算库

Matrix Library1、简介一个矩阵计算的库,有了它,你可以很简单地进行矩阵的计算,目前还有一些不完善的地方,还在继续开发。采用范型设计,可以对多种数据类型支持对常用相关运算符进行重载项目主页git@github.com:libing64/Matrix.git2、类声明文件template class Mat{ public:

2013-06-05 02:04:47 2604 7

原创 Ransac算法--直线拟合

Ransac算法项目主页https://github.com/libing64/RansacLine1、算法简介随机抽样一致算法(RANdom SAmple Consensus,RANSAC)。它是一种迭代的方法,用来在一组包含离群的被观测数据中估算出数学模型的参数。 RANSAC是一个非确定性算法,在某种意义上说,它会产生一个在一定概率下合理的结果,其允许使用更多次的迭代来使其概率增

2013-06-03 03:32:51 8270 1

原创 Matlab风格的二维绘图函数Plot(OpenCV)

CPlot简介Matlab的plot函数非常的强大,进行数据显示的效果非常的好,但是经常使用Opencv的同学如果每次将计算之后的数据导入到Matlab里显示又比较麻烦,因此决定写一类似于plot的C函数,用于在OpenCV中进行数据显示。设计一个Plot类,项目位于github上https://github.com/libing64/CPlot* 采用泛型设计* 支持

2013-06-01 19:41:17 6292 6

原创 树莓派开机自启动程序(ArchLinux 版本)

树莓派开机自启动程序(ArchLinux 版本)如何让树莓派开机后自动启动用户的程序或者执行脚本?不同的Linux发行版有不同的自启动机制,如RedHat有 /etc/rc.local 文件,在里面写上要执行的命令就可以开机执行。 Arch Linux 采用的是守护进程的机制(daemon)。 在Arch Linux中, 守护进程是用systemd管理的. 用户用systemctl

2013-05-23 08:06:41 5386 3

原创 位运算超强总结

位运算应用口诀 清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。     2 "     3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。     4 ">>>"运算符,右边的位被挤掉,对于左边移出的

2013-05-18 14:57:58 1592 2

原创 自适应阈值分割之otsu算法

#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include #include #define FLT_EPSILON 1.19209290E-07F // decimal constant//FLT_EPSILON the minimum positive number suc

2013-05-04 08:04:11 2864 2

原创 直线加权拟合改进版

直线拟合算法假设已知一系列点P(xi, yi) (i = 1...N),进行拟合,求出参数a,b直接拟合公式y = a*x + b误差公式:ε = y - a*x - b目标: J = ∑ (y - a*x -b)^2最小极值条件:dJ/da = ∑-2x(y - a*x - b) = 0;dJ/db = ∑-2(y - ax - b

2013-05-03 23:21:45 3076

原创 基于FPGA的图像处理(七)--Verilog实现均值滤波

之前一直用Xilinx公司的SysGen搭建图像处理的算法,然后进行仿真,也可以直接编译下载到FPGA开发板上直接运行。但是算法实现之后却很难和其他模块一块使用。经过一段时间的反思,决定用Verilog直接写算法。Verilog进行图像处理的难点:1、图片获取    C语言或者Matlab进行图像处理,图片的文件读取获取或者摄像头读取都能一个函数搞定,但是FPG

2013-05-01 20:36:05 32695 37

原创 加权拟合算法

#include#include#include"QSort.h"#include#include#define K (4.685 / 0.6745)#define NO_ERR 1#define cmp_pts( x, y ) ( x < y ) CV_IMPLEMENT_QSORT( floatQSort, float, cmp_pts )const int Coun

2013-03-26 13:02:07 3273 1

原创 百度star

花了一个小时才写出来的第一题,结果网速慢提交不上去~~索性贴这里吧~~平衡负载Du熊正在负责一个大型的项目,目前有K台服务器,有N个任务需要用这K台服务器来完成,所以要把这些任务分成K个部分来完成,在同上台服务器上执行的任务必须是连续的任务,每个任务有各自需要的执行时间。例如N=5,K=2,每个任务需要时间分别为5,3,1,4,7分钟,那么我们可以分成(5)(3 1 4 7)两

2013-03-23 21:50:31 1482 1

原创 快速sin cos

在优化算法时时间项费非常关键,如果需要大量使用sin cos,那么对sin cos的优化将大大提高运算速度最近发现一个快速计算sin cos的方法,#include"cmath"#include#include#includeusing namespace std;#define MILLION 1000000/////////////////////////////

2013-03-22 15:14:23 4290 1

原创 OpenCV笔记(一)-XML文件读写

平台: ubuntu10.04 + OpenCV2.3 + cmake 1. XML、YAML文件的打开和关闭XML\YAML文件在OpenCV中的数据结构为FileStorage,打开操作例如:string filename = "test.xml";  FileStorage fs(filename, FileStorage::WRITE);  \\或者fs.ope

2013-03-22 10:28:56 3197

原创 激光雷达学习笔记(六)ARM-Linux平台算法移植

在写第一篇激光雷达的日志我就说,激光雷达的算法开发的最终的目标是移植到嵌入式设备上,因为在机器人定位时,不可能用一个很大很重的设备,因此最理想的还是ARM平台,(工控机也可以考虑,几乎不存在移植的问题,在工控机上直接安装Windows,连开发都可以在上面完成),裸奔还是跑操作系统呢?如果激光雷达的接口是串口,那么裸奔是一个好的选择,可以最大限度的利用CPU,但是URG-04LX的接

2013-03-02 00:38:04 6050 4

原创 激光雷达学习笔记(五)圆弧

原创博客,转载请注明出处:http://write.blog.csdn.net/postlist除了直线,在激光雷达获取的数据中,最重要的就是圆弧了,圆弧的位置确定本生没有直线的精度高,因此不适合用作定位的基准,但是机器人在执行动作时,需要确定圆弧的位置,或则根据圆弧确定目标是什么或者目标的位置。圆弧的检测包括圆弧的位置(x,y)和大小r,常用的方法包括Hough变换和最小二乘法拟

2013-03-01 23:28:13 6649 6

原创 激光雷达学习笔记(四)定位

原创博客,转载请注明出处:http://blog.csdn.net/renshengrumenglibing?viewmode=contents机器人定位的目的是为了知道“自己在什么地方”,目前,机器人定位的方法可以分为非自主定位与自主定位两大类。所谓非自主定位是在定位的过程中机器人需要借助机器人本身以外的装置如:全球定位系统(GPS)、全局视觉系统等进行定位;自主定位是机器人仅依靠机

2013-02-28 23:10:15 17765 13

原创 激光雷达学习笔记(三)特征提取

激光雷达获取的信息是和周围物体之间的距离信息,在移动机器人尤其是自主移动机器人领域具有非常广泛的应用,那我们就从移动机器人的自主导航开始聊吧。移动机器人导航是指移动机器人依靠传感器在特定环境中,按时间最优、路径最短或能耗最低等准则实现从起始位置到目标位置的无碰撞运动。传统的移动机器人导航问题包含三大要素:地图创建、定位和运动控制,通过三大要素,解决三个基本问题:我在哪里?我要去哪里?如何去

2013-02-22 23:26:35 37522 9

原创 激光雷达学习笔记(二)数据读取和显示

我使用的激光雷达都是日本产北阳电机公司Hokuyo的产品,URG04LX和UTM-30LX。UTM-30LX的价格贵一些,10买的时候大概3W,现在taobao价貌似已经涨到5W了,当然URG04LX也涨价了,09年买的时候是1W,只是不知道现在涨到了多少。URG-04LX基本参数:激光类型:λ=785nm,Class1,0.8mw激光扫描距离:20-5600 mm

2013-02-21 23:19:41 20231 2

原创 激光雷达学习笔记(一)数据采集

激光雷达或者叫激光测距仪数据采集比较简单,有位好心的网友提供了一篇博客专门讲这个,这里就不再赘述,贴出链接,需要的直接去看原文,激光雷达的型号:UTM-30LX。激光雷达数据采集当前网上关于激光雷达的资料比较少,毕竟用的人不是很多。开发环境主流的还是C/C++,官方提供的例程也都是C/C++的。官网资料:http://www.hokuyo-aut.jp/02sensor/07scann

2013-02-20 23:13:33 20287 8

原创 图像处理基本算法 车牌识别与定位

进行车牌识别和定位首先要了解车牌的特征以及分类。车牌主要包括以下几种:蓝牌白字:普通小型车(其中包括政府机关专用号段、政法部门警车以外的行政用车)的牌照黄牌黑字:大型车辆、摩托车、驾校教练车牌照黑牌白字:涉外车辆牌照,式样和蓝牌基本相同白牌:政法部门(公安、法院、检察院、国安、司法)警车、武警部队车辆、解放军军车的牌照都是白牌警车:公安警车的牌照样式为[某·A123

2013-02-20 22:35:43 21950 3

原创 立体视觉算法--SAD+DP

#include #include #include #include#include#include using namespace std;const int Width = 512;const int Height = 512;int Ddynamic[Width][Width];int main(){ //打开文件 FILE* pFile;

2013-01-26 10:27:10 2453 1

原创 立体视觉算法-SGBM(一)

最近一直在学习SGBM算法,作为一种全局匹配算法,立体匹配的效果明显好于局部匹配算法,但是同时复杂度上也要远远大于局部匹配算法。算法主要是参考Stereo Processing by Semiglobal Matching and Mutual Information,里面有讲完整的算法实现。OpenCV中实际上是提供了SGBM类进行SGBM算法的实现。#include #includ

2013-01-21 16:16:27 18354 5

原创 图像处理基本算法-立体视觉

立体视觉是计算机视觉领域的一个重要课题,它的目的在于重构场景的三维几何信息。立体视觉的研究具有重要的应用价值,其应用包括移动机器人的自主导航系统,航空及遥感测量,工业自动化系统等。1. 引言立体视觉是计算机视觉领域的一个重要课题,它的目的在于重构场景的三维几何信息。立体视觉的研究具有重要的应用价值,其应用包括移动机器人的自主导航系统,航空及遥感测量,工业自动化系统等。一般而言,立体

2013-01-14 20:01:30 15814 17

原创 Zedboard学习(7)PS下第一个裸奔程序

一、打开PlanAhead创建工程 1、选择Create New Project新建工程Project name:hello一路默认,只有Board项需要选择ZedBoard Zynq Evaluation and Development KitFinish创建工程之后的界面二、添加资源1.Click Add So

2012-12-03 13:21:41 2084

原创 ZedBoard学习(6)-System Generator实现串口通信(一行HDL代码都不用写)

一直都在System Generator下做图像处理相关的算法,感觉SysGen挺强大的,前几天突发奇想,能否直接用SysGen实现数据的通信呢,毕竟一句HDL代码都不写对于做FPGA的人来说却是很有吸引力的。         串口通信协议比较简单,发送的时候,8位数据的前面加上1位起始位0,在8位数据后加上停止位1,这样8位数字扩展成10位的数字,再将并行转化为串行就可以从GPIO送出。

2012-12-02 12:55:52 2720 1

原创 ZedBoard学习(1)Ubutun下进行串口通信

windows下进行串口通信,如果是笔记本的话一般需要安装PL2303的驱动,win7的话经常会无法识别,非常烦人。其实linux下也有串口的驱动,默认已经安装.本人使的是ubuntu10.04,选择的串口终端软件是minicom一、安装minicom控制台指令:# sudo apt-get install minicom自动完成部分:***

2012-12-01 08:16:18 3776 1

原创 ZedBoard学习(2)-FTP文件传输

这几天在Ubuntu上建立了Xilinx-Linux的交叉编译环境,基本步骤网上有很多,重新写一遍也没有意义。http://www.eefocus.com/nightseas/blog/12-10/287208_5ceaa.html 来自懒兔子http://www.61ic.com/FPGA/Xilinx/201210/45064.html 来自Parallel只是要注意一

2012-12-01 08:15:31 2600 1

原创 ZedBoard学习(3)U盘读写

今天在Linux下操作U盘时才发现,以前对Linux的理解太浅了,对ARM Linux的理解有太浅了,因为需要进行数据的存储,最初的想法移植停留在怎么写U盘的驱动,其实Linux里U盘的驱动都已经写好了,那么U盘就更PC上的存储器是一样的,直接进行文件的读写就可以了。写一段简单的读写文件的代码,进行测试,从file1中拷贝内容到file2。 #include int

2012-12-01 08:14:33 3424

原创 Zedboard学习(四)硬件协仿真co-simulation

之前进行FPGA图像处理,一直在ML605上进行硬件协仿真,拿到ZedBoard之后当然也希望能够继续这么干,进行了很多次的尝试。 经过多次尝试在ZedBoard上进行硬件协仿真,多次失败之后,得出一个结论,"xc7z020-1clg484" is not supported for JTAG co-simulation. 以下内容是SysGen中进行硬件协仿真时,出错后e

2012-12-01 08:11:17 2679

原创 ZedBoard学习(5)-ZedBoard和System Generator

Zynq中包含了一个FPGA内核和两个Cortex-A9内核,尽管功能十分的强大,又非常的时髦,但是本质上讲和之前Xilinx的FPGA 硬核PowerPC没什么区别,无非是PowerPC换成了更加有前景的ARM,因此我很自然的想法是以前在ARM上、在FPGA上做过的东西那个再Zynq上必然也是可以上实现的。        因为之前一直在跟图像处理算法有关的学习,从Matlab到OpenC

2012-12-01 08:00:53 3006

原创 基于FPGA的图像处理(六)--Shared Memory

在FPGA的设计中,当不同速率的模块之间进行高速的数据传输时,共享存储器是一个很好的解决方案,在一个模块中将数据写入Shared Memory,在另一个模块中将其读出,Shared Memory使用name作为标识,同名的Shared  Memory使用的是相同的内存区域。上面的模块将数据写入,下面的模块将数据读出。两个Shared Memory模块分别是名字相同,使用时相同的存储

2012-11-30 09:31:16 3566

原创 基于FPGA的图像处理(五)--状态机

使用FPGA实现各种算法时,状态机是很常用的方法,在SysGen中有两种非常简便的方法构建状态机,一是使用Mcode,以switch-case语句轻松实现,二是使用SysGen自带状态机模块。     状态机假设我们要从01序列中检测出1011序列,则状态机模型如下Next State Matrix:[0 1; 2 1; 0 3; 2 1]Output Matrix : [0

2012-11-29 22:14:52 4558 1

原创 基于FPGA的图像处理(四)--Matlab Language supported by Mcode

在进行FPGA图像处理时,如果使用System Generator构建模型,有时有些算法不能实现时可以考虑Mcode来实现,但是其实在SysGen中Mcode是很弱的,因此需要了解它的能力有多大,才能更好的操作。The MCode block supports the following MATLAB language constructs:• Assignment stateme

2012-11-28 21:49:40 3412 1

原创 基于FPGA的图像处理(三)--图像融合

System Generator安装之后可以在Simulink中调用相应的模块进行视觉算法的搭建,我两台电脑上分别是ISE12.3+matlab2010a, ISE10.1+Matlab2010a。需要注意的是ISE和Matlab之间是有型号匹配的。          首先要打开FPGA,打开Simulink,新建一个Model。          在Xilinx Blockset中拖取需

2012-11-03 19:22:14 19045 16

原创 基于FPGA的图像处理(二)--System Generator入门

System generator 安装之后会在Simulin模块库中添加一些Xilinx FPGA专用的模块库,包括Basic Element,Communication,Control Logic,DataTypes,DSP,Math,Memory,Shared Momory,Tool等模块库,只有使用这里的模块才能进行FPGA算法的仿真以及进行综合等等。         使用这些模块就可以

2012-11-03 17:49:11 11085 2

原创 基于FPGA的图像处理(一)--System Generator介绍

计算机视觉系统通常需要进行大量的信息处理才能够得到所需要的信息。目前主要有CPU、GPU、ASIC、DSP、FPGA等计算平台。常用的计算机视觉系统通过通用计算机进行视觉信息处理,但是,由于CPU的计算能力有限,对于一些计算复杂度很高的视觉算法,其处理速度常常难以满足系统的实时性需要。GPU具有高度的并行计算能力,可以较好地解决计算速度的问题,然而,基于GPU的计算机视觉系统存在着功耗较高

2012-11-03 17:21:44 13370 8

原创 图像处理基本算法 形状特征

形状特征  (一)特点:各种基于形状特征的检索方法都可以比较有效地利用图像中感兴趣的目标来进行检索,但它们也有一些共同的问题,包括:①目前基于形状的检索方法还缺乏比较完善的数学模型;②如果目标有变形时检索结果往往不太可靠;③许多形状特征仅描述了目标局部的性质,要全面描述目标常对计算时间和存储量有较高的要求;④许多形状特征所反映的目标形状信息与人的直观感觉不完全一致,或者说,特征空间的相似性与人

2012-02-24 23:08:03 13571 4

原创 下棋机器人视觉系统

对弈机器人的视觉图像处理和识别张志伟 孔凡让 赵吉文 何清波 吴增荣(中国科学技术大学精密机械与精密仪器系 安徽合肥230027)摘 要  基于视觉的对弈机器人在国内尚无先例,其视觉系统的实现是此研究的关键。提出了彩色空间变换,阈值分割、形态学骨架化及霍夫变换等图像处理技术对棋局中的棋子进行检测、定位和分割的方法。在棋子识别过程中,为克服棋子摆放方向的随意性,提取棋子旋转不变的

2012-02-13 18:29:38 4899

原创 视觉测量简介

1.1 视觉测量技术 1.1.1 现代检测技术的发展趋势 检测技术是现代化工业的基础技术之一,是保证产品质量的关键。在现代化的大生产之中,涉及到各种各样的检测。随着工业制造技术和加工工艺的提高和改进,对检测手段、检测速度和精度提出了更高的要求。现代检测技术是工业发展的基础,测量的精度和效率在一定程度上决定了制造业乃至科学技术发展的水平。现代检测技术要能适应快速发展的制造业,根据先进制造技术

2012-02-12 14:25:45 12367

激光雷达数据采集Linux&&ARM; Linux

激光雷达数据采集程序,Linux平台,当需要在ARM-Linux下执行时,将gcc 改为arm-none-linux-gnueabi-gcc重新编译即可

2013-03-02

激光雷达数据采集或读取、显示、直线拟合、角点提取、圆弧拟合、位姿解算等

激光雷达数据采集或读取、显示、直线拟合、角点提取、圆弧拟合、位姿解算等

2013-03-01

激光雷达数据读取、显示、分割、直线拟合C++(需配置OpenCV2.4)

激光雷达数据读取、显示、分割、直线拟合C++(需配置OpenCV2.4)

2013-02-21

激光雷达数据读取以及显示C++(需配置OpenCV2.4)

使用C++编写的激光雷达数据的读取和显示代码 用到OpenCV2.4,OpenCV下有很多图像处理的函数,进行激光雷达的处理时也是可以使用的。便于后面进行算法的开发和测试

2013-02-21

激光雷达UTM-30LX图像采集程序及数据C++

激光雷达图像采集程序及数据,激光雷达型号UTM-30LX

2013-02-20

车牌识别与定位C++

自己使用C++编写的车牌识别与定位的程序,使用OpenCV2.4

2013-02-20

ML605_LCD_4bit_mode 使用Verilog HDL编写的LCD显示的代码,4bit mode,在ML605板子上运行

使用Verilog HDL编写的LCD显示的代码,4bit mode,在ML605板子上运行

2012-10-27

ML605_uart 使用Verilog HDL编写的串口通信的程序,在ML605上运行

使用Verilog HDL编写的串口通信的程序,在ML605上运行

2012-10-27

ML605_LED 用Verilog HDL编写的LED闪烁的程序,很简单

用Verilog HDL编写的LED闪烁的程序,很简单

2012-10-27

表达式计算器工程和源码,C++编写,支持大数据,自定义运算符,支持所有常用运算和命令,输入风格同Matlab

2012年暑假在广州周立功实习时做的题目,表达式计算器工程和源码,C++编写,支持大数据,自定义运算符,支持所有常用运算和命令,输入风格同Matlab

2012-09-06

dnw_for_linux

dnw_for_linux,在linux下使用DNW进行嵌入式镜像下载。尤其是进行嵌入式linux开发式,可以完全抛开windows进行开发。串口通信和USB下载都可以在linux下实现。

2011-12-07

VC图像处理例程

VC图像处理例程,采用VC6.0编写的图像处理的源代码~

2011-12-03

MDK+TQ2440新手入门

MDK+TQ2440新手入门 MDK TQ2440 S3C2440 PWM LED MDK下ARM9(TQ2440)的开发环境配置,以及LED和PWM的源码和分析

2011-12-03

IR2104+IRF540电机驱动电路原理图

IR2104+IRF540电机驱动电路原理图,PWM控制电机的转向和速度~

2011-12-03

sift算法实现双目测距

用opencv以及sift算法实现的双目测距工程,测量误差在500mm-1000mm时达到5mm以内

2011-11-13

数字图像处理-matlab-各种大小计算、各种图像旋转、直方图,各种滤波

数字图像处理-matlab-各种大小计算、各种图像旋转、直方图,各种滤波

2011-05-30

RPR220反射式光电传感器电路图

RPR220反射式光电传感器电路图 RPR220 光电传感器 循迹 赛车 黑线 黑色区域则为高电平,白色区域为低电平

2011-05-15

基于STC89C52的串口通信和CAN总线设计,USB供电,原理图

基于STC89C52的串口通信和CAN总线设计,USB供电,原理图

2011-03-25

java版聊天程序聊天界面 C/S聊天室 UDP通信 添加删除好友,设置个人信息,GUI,socket,

java版QQ,java编写的聊天软件,完全模仿QQ,具有强大的聊天界面,可以手动添加好友,删除好友,设置个人信息,搜索好友,基于UDP数据报方式实现两天主机之间的通话。视频,音频,短信功能没有实现,但已经做好接口,之间在相应位置添加代码即可,无需更改软件架构。

2010-12-17

java聊天程序--用java编写的聊天程序,具有聊天界面,可以实现两两之间的对话

免费分享~用java编写的聊天程序,具有聊天界面,可以实现两两之间的对话。使用GUI和socket以及多线程,聊天软件是学习java的一个极好的练手工具。

2010-11-23

horsematch 赛马程序游戏

用C++编写的强大赛马游戏,完全用类进行构建,学习类之间的交流,学习开发游戏很有帮助。

2010-08-25

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

TA关注的人

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