资源简介
利用OpenCV中SolvePnP函数实现相机姿态的求解。并在此基础上利用SolvePnPRansac函数求解相机姿态使得结果更准确。代码包含详细注释。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include “aruco.h“
using namespace std;
using namespace cv;
const Mat intrinsic_matrix = (Mat_(3 3)
<< 868.2187 0 345.93152
0 870.4765 252.03741
0 0 1);
//k1k2p1p2k3
const Mat distCoeffs = (Mat_(5 1) << 0.17153 0.06634 0.00465 0.00868 0);
//相机畸变参数
const Mat arucodistCoeffs = (Mat_(1 5) << 0 0 0 0 0);//
//判断solvePnPRansac是否完成
bool PnPRansac;
int main(int args char *argv[])
{
//图像物理坐标
//vector > projectedPoints;
vector imgpoint;
Point3f pointimg0 pointimg1 pointimg2 pointimg3;
pointimg0 = cv::Point3f(-0.046f -0.046f 0);
pointimg1 = cv::Point3f(+0.046f -0.046f 0);
pointimg2 = cv::Point3f(+0.046f +0.046f 0);
pointimg3 = cv::Point3f(-0.046f +0.046f 0);
imgpoint.push_back(cv::Point3f(-0.046f -0.046f 0));
imgpoint.push_back(cv::Point3f(+0.046f -0.046f 0));
imgpoint.push_back(cv::Point3f(+0.046f +0.046f 0));
imgpoint.push_back(cv::Point3f(-0.046f +0.046f 0));
//获取相机
VideoCapture cap(1);
Mat frameframecopy;
//设置字典
cv::aruco::Dictionary dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::DICT_6X6_250);
while (true)
{
cap>>frame;
frame.copyTo(framecopy);
vector ids;
vector > corners;
vector > outArry;
//检测markers(待检测marker的图像,字典对象,角点列表,marker的id列表)
cv::aruco::detectMarkers(framecopy dictionary corners ids);
if (ids.size() > 0)//检测到marker
{
cout<<“numberr of ids: “< for(int i=0;i {
//输出每一个id
cout<<“ids: “< }
double x= (corners[0][0].x+corners[0][1].x+corner
- 上一篇:农夫过河问题
- 下一篇:巴特沃斯低通滤波器的c语言实现
相关资源
- 基于opencv3.2的Moravec、Forstner、Harris算
- opencv+udp+c++ 的摄像头实时传输显示源
- MFC中嵌入显示opencv图像
- opencv调用海康摄像头
- 激光雷达数据读取以及显示C++需配置
- OpenCV在TI 达芬奇以及OMAP平台下的移植
- 双目视觉匹配得到视差图
- CvImgCtrl 演示程序
- 用OpenCV实现Photoshop色阶调整算法
- 贝叶斯抠图C++源代码
- emgucv&opencv图像处理函数说明
- opencv实现分水岭算法
- 人工势场法C++版及利用opencv(or matl
- OpenCV+C++图像处理项目14个
- 用VS2015+opencv3.4.2+C++编写Yolov3目标检测
- 计算图像的平均灰度值
- OpenCV2.4.8
- 基于opencv的人脸识别程序-代码详解
- OpenCV通过直方图均衡化增强图像对比
- OpenCV种子填充实现彩色图像分割的代
- 基于 OPENCV 对三角形 的 角度检测
- 相机标定与图像畸变校正程序
- moravec算子c++代码
- openCV中stitching_detailed.cpp
- 11个常用OpenCV+C++图像处理
- opencv计算5*5邻域方差图
- opencv 视觉 追踪跟踪 经典kcf算法
- vc++6.0配置OpenCV
- 基于OpenCV的图像检索系统(源码)
- test_opencv.cpp
评论
共有 条评论