实用计算机视觉项目解析,深入理解OpenCV 实用计算机视觉项目解析.pdf

深入理解OpenCV实用计算机视觉项目解析:OpenCV主要开发者和OpenCV社区的主要贡献者携手,深入解析OpenCV技术在计算机视觉项目中的应用,Amazon广泛好评。通过典型计算机视觉项目,系统讲解使用O...下载前务必先预览,自己验证一下是不是你要下载的文档!

52

2. 标i己位置细化

在找到正确的标记定位后,要旋转它的角点,使其符合标准顺序。

//sort the points so that they are always in the same order

II no matter the camera orientation

std: :rotate( marker.points.begin() . marker.points.begin() + 4 -

nRotations,

marker.points.end());

在检测到标记并对标记ID 解码后,需要细化它的角点。 此操作对下一步在三维空间估

计标记位置很有用。 可通过cv: :comerSubPix 函数按亚像素级精度来查找角点位置。 该函数

的用法为:

std: :vector preciseCorners(4 * good.Markers.size());

for (size_t i •O ; i

Marker& marker= goodMarkers[i];

for (int c=O;c<4;c++)

preciseCorners[i叫+cl = marker.points[c);

cv: :cornerSubPix (grayscale, preciseCorners, cvSize (5 , 5),

cvSize(-1,-1), cvTermCriteria(CV_TERMCRIT_ITER,30,0.1));

//copy back

for (size_ t i=O;i

Marker&marker = good.Markers[il;

for (int c=O;c<:4>

{

marker.points[c] = preciseCorners[i *4+c];

整个代码的第一步是为函数准备输入的数据,即复

制输入数组的顶点列表。 第二步是调用cv::comerSubPix ,

并将实际图像、顶点以及影响位置细化的质量和性能的

参数传递给此函数。 完成之后. 将细化位置复制给标记

角点,如右阁所示。

由于cornerSubPix 函数太复杂,在标记检测的前期

不会使用它。 在顶点较多的情况下,调用该函数的代价

很高,因此只针对有效的标记才调用它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值