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

网站手机版开发自己做网站如何盈利

网站手机版开发,自己做网站如何盈利,北京死亡病例最新消息,济南网络推广网络营销软件操作系统#xff1a;ubuntu22.04 OpenCV版本#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言#xff1a;C11 算法描述 根据3D-2D点对应关系找到物体的姿态。 cv::solvePnPGeneric 是 OpenCV 中一个更为通用的函数#xff0c;用于解决 PnP 问题。它能够返回多个可能… 操作系统ubuntu22.04 OpenCV版本OpenCV4.9 IDE:Visual Studio Code 编程语言C11 算法描述 根据3D-2D点对应关系找到物体的姿态。 cv::solvePnPGeneric 是 OpenCV 中一个更为通用的函数用于解决 PnP 问题。它能够返回多个可能的姿态解旋转和平移向量并且支持多种不同的求解方法。这在某些情况下特别有用例如当存在多解时或者需要评估不同解的质量。 此函数返回所有可能的解的列表一个解是一对旋转向量, 平移向量具体取决于输入点的数量和选择的方法 P3P 方法SOLVEPNP_P3P, SOLVEPNP_AP3P需要 3 或 4 个输入点。如果有 3 个输入点返回的解的数量可以在 0 到 4 之间。 -SOLVEPNP_IPPE输入点必须 4 且物体点必须共面。返回 2 个解。 SOLVEPNP_IPPE_SQUARE适用于标记姿态估计的特殊情况。输入点的数量必须是 4并且返回 2 个解。物体点必须按以下顺序定义 点 0: [-squareLength / 2, squareLength / 2, 0]点 1: [ squareLength / 2, squareLength / 2, 0]点 2: [ squareLength / 2, -squareLength / 2, 0]点 3: [-squareLength / 2, -squareLength / 2, 0] 对于所有其他标志输入点的数量必须 4且物体点可以是任意配置。仅返回 1 个解。 函数原型 int cv::solvePnPGeneric (InputArray objectPoints,InputArray imagePoints,InputArray cameraMatrix,InputArray distCoeffs,OutputArrayOfArrays rvecs,OutputArrayOfArrays tvecs,bool useExtrinsicGuess false,SolvePnPMethod flags SOLVEPNP_ITERATIVE,InputArray rvec noArray(),InputArray tvec noArray(),OutputArray reprojectionError noArray() ) 参数 参数 objectPoints物体坐标空间中的物体点数组格式为 Nx3 的单通道或 1xN/Nx1 的三通道其中 N 是点的数量。也可以传递 vector。 -参数imagePoints对应的图像点数组格式为 Nx2 的单通道或 1xN/Nx1 的双通道其中 N 是点的数量。也可以传递 vector。 -参数cameraMatrix输入的相机内参矩阵 A [ f x 0 c x 0 f y c y 0 0 1 ] A \begin{bmatrix}f_x 0 c_x \\0 f_y c_y \\0 0 1\end{bmatrix} A ​fx​00​0fy​0​cx​cy​1​ ​ -参数distCoeffs输入的畸变系数向量 (k1, k2, p1, p2[, k3[, k4, k5, k6[, s1, s2, s3, s4[, τx, τy]]]])包含 4、5、8、12 或 14 个元素。如果该向量为空则假设畸变为零。 -参数rvecs输出的旋转向量数组见 Rodrigues与 tvecs 一起使用将模型坐标系中的点变换到相机坐标系中。 -参数tvecs输出的平移向量数组。 -参数useExtrinsicGuess仅用于 SOLVEPNP_ITERATIVE 方法。如果为 true1函数会使用提供的 rvec 和 tvec 值作为旋转和平移向量的初始近似值并进一步优化它们。 -参数flags解决 PnP 问题的方法详见 calib3d_solvePnP_flags。 -参数rvec当标志为 SOLVEPNP_ITERATIVE 且 useExtrinsicGuess 设置为 true 时用于初始化迭代 PnP 精化算法的旋转向量。 -参数tvec当标志为 SOLVEPNP_ITERATIVE 且 useExtrinsicGuess 设置为 true 时用于初始化迭代 PnP 精化算法的平移向量。 -参数reprojectionError可选的重投影误差向量即输入图像点和用估计的姿态投影的 3D 物体点之间的均方根误差 RMSE ∑ i N ( y i ^ − y i ) 2 N \text{RMSE} \sqrt{\frac{\sum_{i}^{N} \left ( \hat{y_i} - y_i \right )^2}{N}} RMSEN∑iN​(yi​^​−yi​)2​ ​ 关于如何使用 solvePnP 进行平面增强现实的一个示例可以在 opencv_source_code/samples/python/plane_ar.py 找到。 如果你使用的是 Python Numpy 数组切片不能作为输入因为 solvePnP 需要连续的数组在版本 2.4.9 的 modules/calib3d/src/solvepnp.cpp 文件大约第 55 行通过 cv::Mat::checkVector() 断言强制要求。P3P 算法要求图像点位于形状为 (N,1,2) 的数组中因为它调用了 undistortPoints在版本 2.4.9 的 modules/calib3d/src/solvepnp.cpp 文件大约第 75 行这需要双通道信息。因此给定一些数据 D np.array(…)其中 D.shape (N,M)为了使用其子集作为例如 imagePoints必须有效地将其复制到一个新数组中imagePoints np.ascontiguousarray(D[:,:2]).reshape((N,1,2))。 方法 SOLVEPNP_DLS 和 SOLVEPNP_UPNP 不能使用因为当前实现不稳定有时会给出完全错误的结果。如果你传递了这两个标志中的一个则会使用 SOLVEPNP_EPNP 方法代替。 在一般情况下最少需要 4 个点。 对于 SOLVEPNP_P3P 和 SOLVEPNP_AP3P 方法必须使用恰好 4 个点前 3 个点用于估计 P3P 问题的所有解最后一个点用于保留最小化重投影误差的最佳解。 使用 SOLVEPNP_ITERATIVE 方法且 useExtrinsicGuesstrue 时最少需要 3 个点3 个点足以计算姿态但最多有 4 个解。初始解应接近全局解以收敛。 使用 SOLVEPNP_IPPE 时输入点必须 4 且物体点必须共面。 使用 SOLVEPNP_IPPE_SQUARE 时这是一个适用于标记姿态估计的特殊情况。输入点的数量必须是 4。物体点必须按以下顺序定义 点 0: [-squareLength / 2, squareLength / 2, 0]点 1: [ squareLength / 2, squareLength / 2, 0]点 2: [ squareLength / 2, -squareLength / 2, 0]点 3: [-squareLength / 2, -squareLength / 2, 0] 代码示例 #include iostream #include opencv2/opencv.hpp #include vectorusing namespace cv; using namespace std;int main() {// 假设我们有一个已知的 3D 点集 (例如一个正方形的四个角)std::vector Point3f objectPoints { Point3f( -1.0f, -1.0f, 0.0f ), Point3f( 1.0f, -1.0f, 0.0f ), Point3f( 1.0f, 1.0f, 0.0f ), Point3f( -1.0f, 1.0f, 0.0f ) };// 对应的 2D 图像点 (这些点是从图像中检测到的特征点)std::vector Point2f imagePoints { Point2f( 594.0f, 487.0f ), Point2f( 673.0f, 487.0f ), Point2f( 673.0f, 552.0f ), Point2f( 594.0f, 552.0f ) };// 相机内参矩阵 (假设已知)Mat cameraMatrix ( Mat_ double ( 3, 3 ) 718.856, 0, 607.1928, 0, 718.856, 185.2157, 0, 0, 1 );// 畸变系数 (假设已知)Mat distCoeffs Mat::zeros( 5, 1, CV_64F ); // 如果没有畸变或忽略畸变则可以是零矩阵// 初始化输出变量std::vector Mat rvecs, tvecs;Mat reprojectionError;// 调用 solvePnPGeneric 函数int solutionsFound solvePnPGeneric( objectPoints, imagePoints, cameraMatrix, distCoeffs, rvecs, tvecs, false, SOLVEPNP_ITERATIVE, noArray(), noArray(), reprojectionError );if ( solutionsFound 0 ){cout Number of solutions found: solutionsFound endl;for ( int i 0; i solutionsFound; i ){cout \nSolution i 1 :\n;cout Rotation Vector:\n rvecs[ i ] \nTranslation Vector:\n tvecs[ i ] endl;// 可选将旋转向量转换为旋转矩阵以更好地理解结果Mat rotationMatrix;Rodrigues( rvecs[ i ], rotationMatrix );cout Rotation Matrix:\n rotationMatrix endl;}if ( !reprojectionError.empty() ){cout Reprojection Error: reprojectionError.at double ( 0 ) endl;}}else{cout solvePnPGeneric failed to find any solution. endl;}return 0; }运行结果 Number of solutions found: 1Solution 1: Rotation Vector: [0.2895361443049176;0.01328548677652798;-0.008684530349597173] Translation Vector: [0.6665924885943908;8.493287223698232;18.23641869746051] Rotation Matrix: [0.999874917527441, 0.01047321277960457, 0.01185162915241468;-0.006653461772789516, 0.9583398410008748, -0.2855529383439369;-0.01434854508064377, 0.2854383663148514, 0.9582896526048779] Reprojection Error: 5.21212e-315
http://www.dnsts.com.cn/news/37771.html

相关文章:

  • 长春建站宣传男女宾馆做爰视频网站
  • 东兴移动网站建设网站不备案影响收录吗
  • 网站推广的优化国内免费自建网站
  • 网站用视频做背景音乐网页设计实训报告总结免费
  • 旅游网站后台管理系统WordPress标题删除_
  • 做直播网站软件有哪些软件济南网站建设公司
  • 网站建设 试题网站里面的图片做桌面不清晰
  • 大诚设计网站建设wordpress 耗时
  • 产品免费推广网站有哪些怎么网站是谁做的
  • 邯郸网站建html代码跟网站运营的关系
  • 设计师网站都有哪些网络规划设计师论文背别人的行么
  • 信息无障碍 网站建设网页设计与制作教程第6版答案
  • 全部免费网站软件长沙互联网公司招聘
  • 自己做网站流程营销网站建设规划方案
  • 徐州城乡建设招投标网站设计手机界面的网站
  • 厦门网站设计公司排名网络品牌前十大排名
  • 模板网站的好处重庆网站建设科技公司
  • 团购网站怎么推广保山市建设厅官方网站
  • 太原制作手机网站做网站需要注意什么问题
  • 电商网站开发分析网站建设所需硬件
  • 曲靖网站开发公司网站增加新闻功能
  • 十大免费建站程序wordpress电子商务c2c网站功能
  • 长春市建设技工学校网站wordpress 多站点 多域名
  • 延吉制作网站wordpress 后台风格主题
  • 免费建设手机网站做柜子网站
  • 下载类网站 前置备案wordpress注册的用户不是vip
  • 功能性的网站设计制作谷歌seo需要做什么的
  • 浙江住建局官方网站南京制作网页培训机构
  • 网站被iframe网页设计尺寸早起可视尺寸
  • 中国网站空间企业网银怎么登录