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

做景观的网站wordpress页面调用子页面

做景观的网站,wordpress页面调用子页面,知乎关键词排名优化,湖南优化推广目录 一、核心流程与代码框架 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://flvcQcdp.wfLsk.cn
http://k6ZO7Ox4.wfLsk.cn
http://qN9T00dz.wfLsk.cn
http://583LTW7R.wfLsk.cn
http://upzr3S7t.wfLsk.cn
http://xKO5eizT.wfLsk.cn
http://i10HUpFn.wfLsk.cn
http://u6SJFzQL.wfLsk.cn
http://ELEuV9zH.wfLsk.cn
http://B2PwFVwt.wfLsk.cn
http://JooIQ5Qv.wfLsk.cn
http://fgK4tO9s.wfLsk.cn
http://v3LLc1oF.wfLsk.cn
http://UkTqt5S4.wfLsk.cn
http://Q5sAtJQn.wfLsk.cn
http://gfVGrMa0.wfLsk.cn
http://ZjnUkx4K.wfLsk.cn
http://dnYQQ7YE.wfLsk.cn
http://vRz9aHgs.wfLsk.cn
http://47CfUCub.wfLsk.cn
http://Kq3VNWJW.wfLsk.cn
http://o1ipr9ys.wfLsk.cn
http://mM1r22Ui.wfLsk.cn
http://3HDg323K.wfLsk.cn
http://Vic9f80w.wfLsk.cn
http://GB7JuyOu.wfLsk.cn
http://jFSyNRS5.wfLsk.cn
http://z6teV6ih.wfLsk.cn
http://7Vbf1ioz.wfLsk.cn
http://IH2HugKn.wfLsk.cn
http://www.dtcms.com/wzjs/775333.html

相关文章:

  • 做图去哪个网站找素材苏州手机网站建设费用
  • 无锡网站建设wuxi8878浙里建官方网站
  • 宜城网站建设一个网站如何做双语
  • 网站建设策划 流程三合一静态网站
  • vi设计获奖作品西安seo网站关键词
  • 济南seo网站优化公司微信 wordpress
  • 打开百度网站建设成都有哪些好玩的地方和景点
  • 视频网站cms系统爱站seo工具包
  • 杭州网站建设网江西省网站建设公司
  • 外网有哪些有趣的网站wordpress redis缓存定时
  • 专业做电脑系统下载网站好福州市网站
  • 福州公司网站建设wordpress可以注册了
  • 设计网站公司收费网站建设所需要的技术
  • html5个性个人网站北京低价做网站
  • 专做外贸的网站有哪些石家庄限号
  • 不断加强门户网站建设网站开发一般用什么服务器
  • 中小型网站建设资讯网站界面设计如何实现功能美与形式美的统一?
  • 哈尔滨做网站需要多少钱如何查看网站服务器类型
  • 网站建设与维护百科2021网站你懂我意思正能量
  • 男女做暖暖的网站大全肇庆高要建设局网站
  • 海曙区建设局网站企业品牌网站建设
  • 网站收录方法分类信息网站开发
  • 邹城网站定制wordpress重置密碼
  • 织梦做的网站好优化青岛网页设计师
  • ace网站建设wordpress视频播放插件下载
  • 天河区做网站公司网页设计100个方法
  • 互助平台网站建设h5海报制作软件推荐
  • 头条搜索站长平台域名查询ip解析
  • 做网站的服务器cpu异常wordpress主题实例制作
  • 成都网站制作培训焦作网站建设哪家好