4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
新闻详情
...marker) -(3) 用于相机标定的CALTag源码剖析(上)_计..._CSDN博客
来自 : 发布时间:2024-05-03
CALTag的源代码 MATLAB 可以从如下网址下载https://github.com/brada/caltag下面以一幅被遮挡的图I为例进行代码的详细分析1、 灰度图的二值化 计算连通区域 输入的灰度图为I 显示如下二值化方法是基于Peter Kovesi在http://www.csse.uwa.edu.au/~pk/Research/MatlabFns/提供的adaptive thresholding方法。 T adaptivethresh( I );显示自适应二值化后的图像T:用sobel算子检测边缘得到E 然后做了简单的形态学处理 去掉一些杂散的点 对应的代码如下 E edge( I, sobel , nothinning );E bwmorph( E, bridge );E bwmorph( E, majority ); 显示E结果如下然后做了形态学里的细化 然后清理孤立的点 E bwmorph( E, thin , inf );E bwmorph( E, clean ); 计算8邻域的连通区域 如果每个连通域内的像素点数小于阈值minDotEdgePixels 作者设为8 则删除掉该区域。 CC bwconncomp( E, 8 );nPixels cellfun( (x) numel(x), CC.PixelIdxList );bad find( nPixels minDotEdgePixels );CC filtercc( CC, bad );for i 1:CC.NumObjects E(CC.PixelIdxList{i}) 0;E bwmorph( E, close ); 将上述图反转~E的结果如下然后进行腐蚀得到如下结果上述反转—腐蚀过程循环4次 然后寻找连通区域 上述过程下面一行代码搞定了CC bwconncomp( bwmorph(~E, erode ), 4 ); 2、 过滤连通区域 上一步骤得到了不少连通区域 对应着自识别标记区域 这些连通区域的数目可能比实际的自识别标记数目多。这是因为一些随机的背景物体以及一些高纹理区域也会被检测为连通区域。下面的工作就是过滤连通区域 保留真正是自识别标记的那部分 过滤准则主要有两个1、 面积 假设code中的每个bit至少由一个2x2大小的像素组成 而一个自识别标记单元包括code和边界共有8x8个bit 那么每个标记包含的像素数目至少为16x16个像素 也是连通区域包含的最少像素数目。这个最小面积的限制会过滤掉很多细小区域 比如自然场景中的草、毛毯等高纹理区域。最大面积定义为输入图像尺寸的1/8 因为如果图片中的自识别标记少于8个的话无法完成标定。 2、 欧拉数 欧拉数描述的是区域的连通性。对一个给定平面区域来说 区域内的孔数H和区域内的连通组元 其中任2点可用完全在内部的曲线相连接的点集合 的个数C可被进一步用来定义欧拉数 Euler number E C-H。如下的几个字母从左到右欧拉数分别为 -1,2,1,0。图像中欧拉数的定义是图像中的物体数目减去这些物体中孔洞的数目。计算连通区域的欧拉数就可以知道该区域内部有多少个孔洞。最大的孔洞数目就是当code黑白相间的情况 此时孔洞的数目是MN/2 对应的最小欧拉数就是1-(MN/2)。而自识别标记内部至少会有1个孔洞 所以最大的欧拉数为0。实际中 一般一个自识别标记内部的孔洞为1~3个。使用欧拉数来过滤连通区域的优势有两个 一是它的性能和图像分辨率无关 二是不需要参数调整。代码中实现good find( ([R.Area] minRegionArea) ([R.Area] maxRegionArea) );good find( ([R.EulerNumber] minEulerNumber) ([R.EulerNumber] maxEulerNumber) ); 经过过滤后的连通区域如下图。连通区域旁边的数字表示对应的欧拉数。 未完待续。。。 参考论文 CALTag: High Precision Fiducial Markers for Camera Calibration参考网站http://www.cs.ubc.ca/labs/imager/tr/2010/Atcheson_VMV2010_CALTag/https://github.com/brada/caltag 抵扣说明:1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

本文链接: http://caltag.immuno-online.com/view-1473103826.html

发布于 : 2024-05-03 阅读()