当前位置: 首页 > wzjs >正文

网站设计页面如何做居中今天新闻头条新闻

网站设计页面如何做居中,今天新闻头条新闻,邯郸网站制作与建设,网站制作工作室目录 一、核心流程与代码框架 1. ‌环境准备‌ 2. ‌ArUco定位实现 3. ‌AprilTag定位实现(需额外安装Apriltag库) 二、关键优化点 1‌.亚像素角点优化 2‌ 多标签联合定位 三、性能指标(实测) 四、常见问题 ‌检测失败…

目录

一、核心流程与代码框架

1. ‌环境准备‌

2. ‌ArUco定位实现

3. ‌AprilTag定位实现(需额外安装Apriltag库)

二、关键优化点

1‌.亚像素角点优化

2‌ 多标签联合定位

三、性能指标(实测)

四、常见问题

‌检测失败‌

‌位姿抖动‌


ArUco在OpenCV中已经集成,而AprilTag可能需要额外的库,比如Apriltag库或者apriltag_ros,需要提前标定相机,获取camera_matrix和dist_coeffs,并在代码中加载这些参数

大致步骤是:

  1. 加载相机参数。
  2. 初始化二维码检测器(ArUco或AprilTag)。
  3. 捕获图像帧。
  4. 检测二维码并获取角点。
  5. 使用solvePnP计算位姿。
  6. 可视化结果,比如绘制坐标系或边界框

对于ArUco,可以使用detectMarkers函数来检测,然后估计位姿。

对于AprilTag,需要调用特定的检测函数,比如detector.detect().

一、核心流程与代码框架

1. ‌环境准备

  • 依赖库‌:OpenCV >=4.0(需包含aruco模块)
    apriltag库(可选,若需AprilTag支持)
  • 相机标定
    通过棋盘格标定获取相机内参(cameraMatrix)和畸变系数(distCoeffs),存储为YAML文件:
# camera_params.yaml示例
camera_matrix: !!opencv-matrixrows: 3cols: 3dt: ddata: [800, 0, 320, 0, 800, 240, 0, 0, 1]
distortion_coefficients: !!opencv-matrixrows: 1cols: 5dt: ddata: [0.1, -0.2, 0, 0, 0]

2. ‌ArUco定位实现

#include <opencv2/opencv.hpp>
#include <opencv2/aruco.hpp>int main() {// 加载相机参数cv::FileStorage fs("camera_params.yaml", cv::FileStorage::READ);cv::Mat cameraMatrix, distCoeffs;fs["camera_matrix"] >> cameraMatrix;fs["distortion_coefficients"] >> distCoeffs;// 初始化ArUco检测器cv::aruco::Dictionary dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::DICT_6X6_250);cv::aruco::ArucoDetector detector(dictionary);// 打开摄像头cv::VideoCapture cap(0);cv::Mat frame;while (cap.read(frame)) {// 检测Markerstd::vector<int> ids;std::vector<std::vector<cv::Point2f>> corners;detector.detectMarkers(frame, corners, ids);if (!ids.empty()) {// 定义Marker物理尺寸(单位:米)float markerLength = 0.05; std::vector<cv::Vec3d> rvecs, tvecs;// 解算位姿cv::aruco::estimatePoseSingleMarkers(corners, markerLength, cameraMatrix, distCoeffs, rvecs, tvecs);// 可视化cv::aruco::drawDetectedMarkers(frame, corners, ids);for (size_t i=0; i<ids.size(); i++) {cv::drawFrameAxes(frame, cameraMatrix, distCoeffs, rvecs[i], tvecs[i], 0.05);std::cout << "ID: " << ids[i] << " tvec: " << tvecs[i] << " rvec: " << rvecs[i] << std::endl;}}cv::imshow("ArUco定位", frame);if (cv::waitKey(10) == 27) break;}return 0;
}

3. ‌AprilTag定位实现(需额外安装Apriltag库)

#include <apriltag/apriltag.h>
#include <apriltag/tag36h11.h>// AprilTag检测逻辑
void detectAprilTags(cv::Mat &gray, apriltag_detector_t *td, const cv::Mat &cameraMatrix, const cv::Mat &distCoeffs) {image_u8_t im = { .width = gray.cols, .height = gray.rows, .stride = gray.cols, .buf = gray.data };zarray_t *detections = apriltag_detector_detect(td, &im);for (int i = 0; i < zarray_size(detections); i++) {apriltag_detection_t *det;zarray_get(detections, i, &det);// 提取角点std::vector<cv::Point2f> corners;for (int j = 0; j < 4; j++) {corners.emplace_back(det->p[j][0], det->p[j][1]);}// 定义3D坐标(假设标签边长为0.1米)std::vector<cv::Point3f> objPoints = {{-0.05f, -0.05f, 0}, {0.05f, -0.05f, 0},{0.05f, 0.05f, 0}, {-0.05f, 0.05f, 0}};// PnP解算cv::Mat rvec, tvec;cv::solvePnP(objPoints, corners, cameraMatrix, distCoeffs, rvec, tvec);// 绘制坐标系cv::drawFrameAxes(gray, cameraMatrix, distCoeffs, rvec, tvec, 0.1);}apriltag_detections_destroy(detections);
}

二、关键优化点

1‌.亚像素角点优化

cv::cornerSubPix(gray, corners, cv::Size(5,5), cv::Size(-1,-1), 
                 cv::TermCriteria(cv::TermCriteria::EPS + cv::TermCriteria::MAX_ITER, 30, 0.01));

 

2‌ 多标签联合定位

// 加权平均所有检测到的标签位姿 cv::Mat avgRvec, avgTvec; for (auto &rvec : rvecs) 

三、性能指标(实测)

场景精度(平移误差)角度误差处理速度(FPS)
静态标签(1m)<1cm<0.5°60
动态跟踪(2m)<2cm<1°30

四、常见问题

  1. 检测失败

    • 确保标签尺寸与代码中markerLength参数一致13
    • 调整图像对比度或添加直方图均衡化
  2. 位姿抖动

    • 对连续帧的tvec/rvec应用卡尔曼滤波27
    • 增加标签物理尺寸以提高角点检测精度

 

http://www.dtcms.com/wzjs/519518.html

相关文章:

  • 四川红叶建设有限公司网站成都优化网站哪家公司好
  • 个人微信号做网站行吗百度视频广告怎么投放
  • web前端开发的软件关键词seo排名怎么样
  • 二手车为什么做网站陕西优化疫情防控措施
  • 高唐网站制作网络营销推广的方法
  • 北京运营推广网站建设百度收录官网
  • 网站跟app区别网络技术培训
  • wordpress 做分销株洲seo
  • 平面设计做兼职网站seo专业培训需要多久
  • flash网站案例今日头条官网登录入口
  • 个人网站的设计与实现毕业论文参考文献关键字排名优化工具
  • 河南做网站企起企业网站建设步骤
  • 如何建立公司网站多少钱百度com打开
  • 淄博网站建设优化运营怎么给客户推广自己的产品
  • 外包做网站怎么拿源代码杭州专业seo公司
  • wordpress 头像不见seo实战指导
  • 信息课做网站的软件山东济南seo整站优化费用
  • 品牌网站定制如何去推广自己的产品
  • 为什么做网站特效用用插件网站优化 seo和sem
  • 国外可以做自媒体的网站微信群拉人的营销方法
  • 如何自己做淘宝网站互联网营销师在哪里报名
  • 网站建设行业的前景蚌埠网络推广
  • 帮人做网站收费合法吗免费网页制作平台
  • seo服务标准百度搜索结果优化
  • 如何建立代购网站网站优化策略
  • 深圳网站制作平台最近三天的国内新闻
  • 外汇局网站做结汇申报福州专业的seo软件
  • jsp做的网站答辩问题市场监督管理局职责
  • 企业信息管理系统案例百度seo免费推广教程
  • 网站建设理论百度手机seo软件