自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黑化咸鱼的博客

水下机器视觉方向为主,佛系更新

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

原创 PSO优化算法的C语言快速设置流程详解

本文目的在于快速上手PSO的基本设置和应用,关于PSO具体原理请见参考文献。PSO算法参数设置简单,使用方便。

2022-05-03 10:54:49 928 2

原创 双目视觉三维重建之求两异面直线公垂线中点坐标的解法

前言双目立体视觉系统三维重建原理如图所示,对于每个相机而言,如果光心和像点已知,就可以确定光心和像点组成的唯一射线。在针孔成像模型下,物点必然在此射线上。由两台相机进行交汇就有两条这样的射线,且所有的射线都应经过物点,即采用各射线在物点相交这一原理,就可以对空间物点进行交汇定位。同理,在存在折射平面的情况下,可以通过四元数等手段确定交互的射线的方向向量和射线通过的已知点(如折射平面上的点)。由于图像平面坐标的测量误差、噪声以及相机畸变等因素的影响, 两条射线可能不会相交, 所以交汇定位问题就是求异面直线

2022-04-11 20:26:37 1966

原创 利用四元数表示空间向量的旋转及代码示例

1.四元数的定义四元数(Quaternion)是带有一个实部和三个虚部的一种扩展复数,其表达式如下:i,j,k之间的关系可以理解为相互正交的三个单位向量,于是四元数又可以表示为标量+向量的形式,即:2.四元数相关运算假设:共轭:逆:模:乘法:3.四元数表示旋转从二维平面复数的乘法中,我们知道表示某条射线的复数和表示旋转角度的复数其乘积为该射线按旋转角度旋转后的射线所表示的复数,那么四元数可以理解为其在三维空间的拓展应用。实际上,四元数是一种

2022-04-11 10:55:44 3828 1

原创 水下环境线结构光传感器的校正模型

前言本文章主要参考论文。文中配图皆来自原文献1.装置分析产生线结构光的激光器和相机有如下关系,本文主要研究了激光平面垂直于被测物体的线结构光模型,即关系(a)。三种形式的线结构光传感器。(a)将激光线垂直投影到物体表面,相机以角α对物体进行观测。(b)相机垂直于物体表面观察物体,同时激光线以角α投影。(c)摄像机以α观察对象,同时激光线投射在不同的角度β如下图所示的一种水下线结构光传感器的透视图,摄像机安装在用平板密封玻璃密封的防水外壳内。本装置中,激光器的激光平面垂直于玻璃窗,因此其折射不

2022-04-09 09:48:32 956

原创 Pylon SDK C语言多相机采集的注意事项、关键设置及代码示例

前言与单相机直接用句柄PYLON_DEVICE_HANDLE hdev进行操作所不同的是,在多相机连接采用索引值访问每个相机,对应句柄为PYLON_DEVICE_HANDLE hdev[deviceIndex] 。若连接N个相机设备,则索引值范围为[0,...,N-1]。显而易见,采用循环结构编程可以对多个相机采用同样的操作,包括参数设置、图像采集等。但多个相机的使用需要根据相机功能、相机与主机间的连接方式、网络适配器进行额外的设置。本文参考Pylon C开发者手册和Basler产品文档,对GigE类型

2021-12-10 10:13:00 2651 2

转载 双目相机标定过程中靶标姿态对标定结果的影响

1.前言基于二维平面靶标的标定精度主要取决于4方面:靶点自身三维坐标的精度、图像中提取的靶点像点坐标的精度、标定算法以及标定时双目系统拍摄的姿态及图像数量。来自中国海洋大学的解则晓、陆文娟等人在其文章中探讨了利用张正友标定法标定双目相机参数时,靶标姿态的选取对标定精度的影响,笔者在此进行转载供学习。关于张正友标定法的基本原理可见笔者前文。2.相机与靶标姿态的性质解则晓、陆文娟等人给出了摄像机与靶标的三个性质。关于性质的证明可见参考文献。性质1:摄像机内参数矩阵只与摄像机坐标系和靶标坐标系的

2021-11-29 16:34:24 1184 1

原创 OpenCV学习笔记与代码示例(四):双目视觉原理及实现

1.双目立体视觉基本原理我们知道单目视觉难以获得图像的深度信息,因为目标点在投影到图像时失去了这种信息,而我们可以通过双目视觉获取深度信息,从而还原目标点的三维信息。双目立体视觉测量是基于视差原理,由多幅图像获取物体三维几何信息的方法。由双摄像机同一时刻从不同角度或由单摄像机在不同时刻从不同角度获取周围景物的两幅数字图像后,基于视差原理即可恢复物体的三维几何信息。1.1三维点还原原理考虑一般情形,设左摄像机的摄像机中心为,有效焦距为,相面上的投影点为,为对应坐标系,右摄像机同理。通过对左右.

2021-11-29 14:52:21 7301 1

原创 水下视觉测量之求摄像机光心到折射面的距离的几种方法

1.前言笔者查阅有关水下视觉测量相关论文,发现在水下模型的建立过程中,总避免不了需要解一个参数,即光心到折射面的距离。通过查阅若干文献,介绍两种求光心到折射面的几种方法。2.基于费马原理求解来自介质中对象(rw,zw)的光线在rg点与平面界面相交。光线继续穿过空气室,直到到达距离界面d处的透视透镜。光线的图像坐标为ri。如图所示,目标点到折射面的距离z是在空气中测量的。以光轴与折射面的交点为原点,折射面与光轴为xy轴建立坐标系,则水中目标点的径向坐标为。从该点发出的射线成像到相面的一点。在

2021-11-08 15:20:31 4764

原创 使用单视点模型进行水下标定的分析

1.前言由于镜头在水下接收到的像经过玻璃面的折射发生了变化,原本空气中的相机成像模型不再适用,因此分析水下成像的折射模型。2.非单视点模型在空气中,物体所发出的光线沿直线传播,光线会在进入相机后交于相机的焦点。这种模型称为单视点模型。然而在水下拍照时,由于光线在进入相机前后会经过不同介质,因此会在相机的隔水外壳处发生折射。暂不考虑折射外壳厚度,水中物体所发出的光线会在经过隔水平面时发生折射后聚焦于摄像机的焦点。从下图我们可以看到入射光线在未发生折射之前其延长线与光轴相交于不同点,对于这种入射光线

2021-11-04 16:31:33 2349

原创 单目相机标定结果的评估——重投影误差与畸变校正

1.重投影误差的概念在相机标定后,我们可以通过计算重投影误差来判断标定地精准程度。在标定后每个三维点根据相机的投影矩阵计算得到的图像位置与实际图像位置之间总存在一个距离,这个距离的累加和就是重投影误差。重投影误差不仅考虑的单应矩阵间的计算误差,也考虑了图像的测量误差,因此适合用来评价标定结果。重投影误差受镜头畸变等因素的影响,因此本文比较了畸变矫正前后的重投影误差大小。2.基于摄像机模型的重投影误差我们知道有限射影摄像机模型下,三维点X和图像点x之间的映射关系如下:则计算得到的图像点位置

2021-10-25 09:22:48 21026 2

原创 OpenCV学习笔记与代码示例(三):张氏标定法标定相机原理及函数详解

1.张氏标定法基本原理1.1相机针孔模型首先,我们知道利用针孔模型建立的相机模型。假设相机二维相面齐次坐标表示为,三维世界坐标系齐次坐标表示为。相机相面坐标系和世界坐标系的关系如下:其中s为比例因子,表示外参矩阵,R和t代表旋转矩阵和平移矩阵,该矩阵表示了相机坐标系和世界坐标系的关系。A为相机的内参矩阵,为主点坐标,α和β为相面坐标系u轴和v轴的尺度因子,γ表示两个图像轴倾斜的参数。为方便处理,外参矩阵进一步表示为:为了不失一般性,假设靶标位于世界坐标系Z=0上,则列去掉,中的Z..

2021-09-29 10:56:37 3162 1

原创 OpenCV学习笔记与代码示例(二):访问图像像素与添加椒盐噪声

1.图像矩阵在内存中的储存方式我们可以在OpenCV文档中找到图像在内存中的储存方式。矩阵的大小取决于所使用的颜色系统。更准确地说,它取决于使用的通道数量。在灰度图像的情况下,我们有类似的东西:对于多通道图像,列包含与通道数一样多的子列。例如在 BGR 颜色系统的情况下:因为在许多情况下,内存足够大,可以以连续的方式存储行,这些行可能会一个接一个地跟随,从而创建一个长行。因为所有东西都在一个地方一个接一个地放在一个地方,这可能有助于加快扫描过程。我们同时可以得到如下结论:在我们访问.

2021-09-22 10:53:19 225

原创 OpenCV学习笔记与代码示例(一):载入、显示和储存图像

前言笔者的学习资料参考为《OpenCV 3 Computer Vison Application Programming Cookbook,Third Edition》,所用OpenCV库版本为4.53,所用IDE为MS Visual Studio,所用语言为C++。1.OpenCV整体结构OpenCV是一个开源的计算机视觉程序库,可以在Windows、Linux等多平台下运行。OpenCV库分多个模块,我们可以在头文件opencv.hpp中找到这些模块对应的头文件。OpenCV整体分为两类,.

2021-09-21 14:50:33 341

原创 Pylon SDK 中相机配置详解及应用案例(附代码)

前言关于Pylon SDK的主要流程在上篇文章已经介绍过,有兴趣的读者可以点下面的链接。本文主要解决Pylon中的相机配置问题。提到新的函数时笔者会首先列出其在头文件的定义,然后列出使用示例。1.相机参数配置1.1检验可访问性在配置相机参数之前,需要确定相机每个参数的可访问性,Pylon配置了以下函数以提前检验相机参数的可访问性:PylonDeviceFeatureIsImplemented():检查是否实现了某个特征PylonDeviceFeatureIsAvailable()

2021-09-17 08:56:36 2902

原创 Pylon SDK的C语言使用流程详解及代码示例

前言笔者采用的Pylon版本为Basler_pylon_5.2.0.13457的开发者版本。本文默认软件已安装完毕,VS项目中相关库项目配置完成。1.Pylon SDK运行流程首先,我们使用的是Pylon 5 Runtime开发组件包。官网关于该组件包的描述如下:Basler pylon 5 Runtime(5.0.12版)- 包含适用于所有相机接口及适用于C++、.NET、GenTL、DirectShow/Twain编程语言的驱动程序。此组件包已包含全部在终端用户的PC上运行基于pylo

2021-09-14 10:43:57 3466

原创 复杂环境下结构光光条中心的几种提取方法

前言为解决复杂环境下结构光光条中心提取方法的问题,笔者阅读了若干文献,写下这篇文章,希望对读者有所启发。1.不同光照条件下提取光条中心介绍一种基于相位一致性提取光条中心的方法。该方法的优点主要体现在可以在不同光照条件下保证较高精度。相位一致性的基本原理及应用问题_黑化咸鱼的博客-CSDN博客 首先,如果有读者对相位一致性不太了解,可以阅读上面这篇文章。这里仅作简单介绍。相位一致性简介相位一致性的提出是基于科学家发现了人感觉图像的关键在于图像信号的相位大小。相位一致性模型是一种考

2021-09-07 10:32:13 3464 1

原创 相位一致性的基本原理及应用问题

前言计算机视觉在很大程度上依赖于正确检测、定位和匹配局部特征的能力,但基于梯度的处理对照明变化非常敏感,并且不能精确或一致地定位。因此,需要一个对光照和尺度最大不变的特征算子。Morrone和Owens于1987年提出了基于局部能量特征的检测方法,为解决该问题提供了新思路,即用相位一致性检测特征。P. Kovesi于1995年对该方法做出了改进,克服了噪声等问题,使该方法的应用得以保证。近期阅读有关结构光光条中心提取的论文,发现可以利用相位一致性处理图像,提高中心坐标提取的鲁棒性,因此写下这篇文章,希望

2021-09-03 15:51:08 13826 2

原创 利用Steger算法提取线条中心的基本原理

前言Steger算法是一种精度较高的直线提取算法,可以亚像素级提取图像中线条的中心。笔者在学习过程中因没有在网络上找到较为通俗的原理解释,因此写下这篇文章,希望能让读者快速了解该算法的原理。笔者学术水平有限,因此如有错误之处麻烦大家指出,笔者会及时修改。1.线条模型我们知道,光条截面的光强分布类似服从高斯分布,那么光条的中心就是高斯分布的顶点。将图像视为一个函数z(x,y),用来表示图像中不同像素的灰度值。在Z(x,y)中,光条截面的灰度分布也存在类似的规律,也就是说,线条会以山峰和沟壑的形式在

2021-09-01 10:30:22 6701 2

转载 BASLER ace aca1300-60gc GigE相机参数

前言Basler ace相机系列作为Basler公司2009年推出以来,已经发展到130多种型号,广泛应用于各行各业。由于本人学习机器视觉,所采用相机型号为BASLER ace aca1300-60gc GigE,因此以下数据均只采用该型号相机。资料来源为Basler ace用户手册及数据文件。1.产品规格水平/垂直分辨率 1280 px x 1024 px 感光芯片 E2V EV76C560 芯片尺寸 1/1.8" 芯片技术 CMOS,全局和..

2021-08-02 10:56:19 1222 1

原创 《计算机视觉中的多视图几何》笔记(一)有限射影摄像机

前言学习资料来源为《计算机视觉中的多视图几何(原书第二版)》,计划学习范围到两视图几何结束数学基础1.平面几何与代数的关系:向量就是点,对称矩阵就是二次曲线2.----n维标准欧式几何空间----射影空间,在二维标准欧式几何的基础上拓展了理想点集(无穷远点)3.齐次向量:两个只相差一个全局缩放因子的向量齐次坐标不与中任何有限点对应(即理想点)1.二维射影几何与变换...

2021-07-31 10:40:16 1705

原创 绝对旋转编码器学习笔记(基本原理,与PC通信等,不定期更新中)

前言最近开始学习编码器相关内容,目的在于搞清楚编码器的原理,与上位机的联系等问题。笔记资料来源为网络,整理的同时也会有一些总结和感悟。由于研究方向需求,主要研究数字旋转编码器。1.编码器的定义编码器(encoder)是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。——摘自《百度百科》通常来说,编码器可以将角度位移、直线位移、转速等物理量转换为电信号。这里的电信号根据不同原理的编码器输出脉冲、二进制数码等不同的类型,下面会提到。2.编码器的分类编.

2021-07-26 09:27:21 9023 2

Basler ace相机用户手册及数据文件

转自machinevisionstore

2021-08-02

空空如也

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

TA关注的人

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