机器视觉
来自西伯利亚
工欲善其事必先利其器
展开
-
基于格雷码+相移方案的结构光重建解析
由于前段时间一直处在算法的应用开发阶段,长时间将心思花在硬件选型、原型机设计、原型机搭建和联调等上面,没有抽足够的时间来记录相关算法的开发经历,年底特更新一篇有关格雷码+相移方案的三维重建算法,该文章依据相应论文,对格雷码+相移方案的整个重建进行了较为详细的阐述,并融入了自己对该套方案的看法,便于广大的同仁一起研讨,文章中如有不妥之处,也请指正。整个文章将以双目结构光为基础,内容包括以下几个部...原创 2019-12-29 17:52:32 · 9219 阅读 · 23 评论 -
光栅投影中Gamma校正
学习 郑东亮 达飞鹏 《提高数字光栅投影测量系统精度的gamma校正技术》一文后,对其中的关键技术进行了解析。摄像机获得的实际灰度图像:其中是整个系统的gamma值,是预编码值(需要根据实验进行选择),是幅度调制(保证归一化),是背景光强,和是由系统确定的值(需要通过投射不同的灰度图进行解算)。gamma校正的目的:选择一个合适的预编码值,使得,从而使系统的gamma失真得以消除或者减...原创 2019-08-05 17:48:51 · 3541 阅读 · 3 评论 -
多频外差相移技术理解
在学习结构光过程中,有几个问题一直困扰着我,慢慢地研究后,对其有了更加深入的理解,主要体现在以下几个方面:1.多频指的是条纹的频率,即若频率为1/100,表示条纹周期数为100,代表在一幅图像中一个完整条纹出现的次数为100次,而不是一个完整条纹所占有的像素数(否则,折合不同分辨率的图像,其频率周期发生变化!)。举个例子,例如图像宽度为1024,条纹周期数为100,则每个完整条纹占有像素数大约...原创 2019-05-07 15:17:48 · 7124 阅读 · 18 评论 -
Windows下使用OpenGL
最近项目上需要用OpenGL进行3D显示,特在Windows平台上安装OpenGL,并测试。几个月前使用过OpenGL,但是这次从头来,还是出现了各种问题(因为换工作了,所以都得重新开始。。。)这次我使用的是glfw,我认为单纯的glfw就可以运行,其实不是的,需要依赖gl.h,VS在安装时,默认是安装了OpenGL的,该头文件也有,但是所需要的静态库却是需要自己配置的,跟glfw3.li...原创 2019-04-24 19:54:10 · 6904 阅读 · 0 评论 -
3D结构光(链接地址提供源码和文献)
最近在研究利用结构光进行三维重建,在一个网站上看到了开源的3D结构光代码,特分享地址:http://www.3dunderworld.org/该网站链接服务可提供源码下载和相关的文献。所提供的源码有更新升级,最新的源码支持GPU处理,可作为二次开发进行研究学习。------------------------------另外再提供一个在MATLAB平台下利用gray code进行三维重...原创 2019-04-19 09:27:25 · 5976 阅读 · 30 评论 -
利用SURF算法进行散斑图案拼接
最近项目中需要将两个相机拍摄的散斑局部图拼接成一个完整的散斑图,特将实际项目中使用的特征点匹配和拼接算法记录如下,便于后续查阅。----------------------------------------------------基本概念:要对图像进行拼接,首先要进行图像特征匹配(找到图像的对应关系),而要进行图像特征匹配,首先要进行图像特征的检测,所以整个流程可以表示为:图像特征检...原创 2018-10-24 22:22:13 · 2210 阅读 · 1 评论 -
关于图像处理算法的那些事
·能从硬件结构方面消除不利影响,最好不要从图像算法方面消除不利影响(预防隐患法则)·截至目前为止,图像算法没有一个标准的算法流程适合所有的图像处理,所以具体问题具体分析·图像算法处理的实际应用遵循海森堡不确定性原则,所以在实际应用中不断优化算法十分必要·图像算法处理的实际应用符合墨菲定律,所以图像算法前期的设计隐患一定会在实际应用中产生·图像处理算法一定是定量分析算法,模...原创 2018-10-16 08:27:01 · 961 阅读 · 0 评论 -
IDS_uEye多网口相机多线程出图实现
最近接手一个项目,需要利用IDS双网口相机出图,并计算目标物体的解像力和均匀性。IDS双相机分别获取目标物体一部分的外型图案,在VS C++中利用MFC多文档编程(已有大致框架),并进行算法设计和程序设计。因为数据获取涉及到了两个外部硬件,且需要同步实现数据获取,以及后续的计算,特考虑使用多线程的方式进行程序设计。初步的设计思想是:以相机为分析对象,为每个相机开辟三个线程,分别进行图像的采...原创 2018-08-18 20:40:41 · 1456 阅读 · 0 评论 -
IDS相机SDK二次开发
接手的项目又用到了IDS的网口相机,需要进行双相机的出图,以及后续的视觉算法开发。以下将介绍利用IDS网口相机,在VS2013 win32控制台模式下进行相机的出图和测试(依旧使用OpenCV+ImageWatch测试效果)。首先,需要安装IDS的软件包(开发者模式),可以在官网下载对应的开发包(https://en.ids-imaging.com/download-ueye-win32.ht...原创 2018-07-19 10:57:20 · 4312 阅读 · 2 评论 -
Basler 多个网口相机出图(SDK版)
利用basler相机自带的SDK进行多相机出图,为了便于理解,特将多相机出图部分的程序拷贝出来,在win32控制台环境下,配合OpenCV进行出图测试。运行环境:VS2013、OpenCV2410OpenCV的安装流程可参考其它的文档此外需要安装basler相机的驱动程序,特别地,需要选择开发者模式(pylon5.0)。一切就绪后,新建win32控制台程序,并添加basler目录,...原创 2018-07-17 10:23:51 · 7810 阅读 · 19 评论 -
C++中提示 堆损坏 内存冲突 程序异常中断......
最近在做项目时,开发的算法在win32中独立运行没有问题,移植到MFC框架中,运行一直保存,并且每次报错的地方和报错的内容都不一样,排查十分困难,差不多花了我三四天的时间,今天晚上终于搞定了!每次报错的内容大概有以下几种:1.堆损坏;2.内存冲突;3.异常中断;。。。。。。我也曾经怀疑过是自己内存开辟出错,请教别人也没有看出(算法量太大,别人无法仔细查看),而且每次出错的地方也都不一样(MFC框架...原创 2018-06-19 21:23:43 · 5486 阅读 · 0 评论 -
LBP(local binary pattern)学习
LBP概念:LBP为局部二值模式,用于描述图像局部特征的算子,其具备灰度不变性和旋转不变性。(灰度不变性:光照变化不会对描述产生影响,因为光照产生的是区域性质的变化)(旋转不变性:对图像进行旋转后,提取的特征不会发生变化)LBP主要用在人脸检测和目标检测方面。----------------------------------------------------------------------...原创 2018-05-31 13:22:31 · 6893 阅读 · 0 评论 -
Python之SVM
利用Python的第三方库,学习SVM。数据来源:https://www.jianshu.com/p/bfcf645bd56a理解SVM,同时加深对matplotlib库的了解,代码如下:---------------------------------------------------------------#有关线性和软间隔的SVM'''sklearn.svm.SVC(c=1.0,kerne...原创 2018-05-12 18:42:57 · 1744 阅读 · 0 评论