• 大小: 6.7M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-23
  • 语言: 其他
  • 标签: 其他  

资源简介

姿态解算8--成功测距.rar

资源截图

代码片段和文件信息

#include “opencv2/opencv.hpp“
#include “iostream“

using namespace cv;
using namespace std;


int h_min = 75;
int s_min = 75;
int v_min = 75;
int h_max = 177;
int s_max = 195;
int v_max = 177;

Scalar hsv_min(h_min s_min v_min);
Scalar hsv_max(h_max s_max v_max);


void getTarget2dPoinstion(const cv::RotatedRect & rect vector & target2d const cv::Point2f & offset) {
Point2f vertices[4];
rect.points(vertices);//把矩形的四个点复制给四维点向量
Point2f lu ld ru rd;
sort(vertices vertices + 4 [](const Point2f & p1 const Point2f & p2) { return p1.x < p2.x; });//从4个点的第一个到最后一个进行排序
if (vertices[0].y < vertices[1].y) {
lu = vertices[0];
ld = vertices[1];
}
else {
lu = vertices[1];
ld = vertices[0];
}
if (vertices[2].y < vertices[3].y) {
ru = vertices[2];
rd = vertices[3];
}
else {
ru = vertices[3];
rd = vertices[2];
}

target2d.clear();
target2d.push_back(lu + offset);
target2d.push_back(ru + offset);
target2d.push_back(rd + offset);
target2d.push_back(ld + offset);
}
vector Generate3DPoints()
{
std::vector points;
float x y z;
x = 0; y = 0; z = 0;
points.push_back(cv::Point3f(x y z));

x = 12; y = 0; z = 0;
points.push_back(cv::Point3f(x y z));

x = 12; y = 3; z = 0;
points.push_back(cv::Point3f(x y z));

x = 0; y = 3; z = 0;
points.push_back(cv::Point3f(x y z));

//for (unsigned int i = 0; i < points.size(); ++i)
//{
// cout << “三维点:“ << points[i] << endl;
//}

return points;
}
//将空间点绕Z轴旋转
//输入参数 x y为空间点原始x y坐标
//thetaz为空间点绕Z轴旋转多少度,角度制范围在-180到180
//outx outy为旋转后的结果坐标
static void CodeRotateByZ(double x double y double thetaz double& outx double& outy)
{
double x1 = x;//将变量拷贝一次,保证&x == &outx这种情况下也能计算正确
double y1 = y;
double rz = thetaz * 3.14 / 180;
outx = cos(rz) * x1 - sin(rz) * y1;
outy = sin(rz) * x1 + cos(rz) * y1;
}
static void CodeRotateByY(double x double z double thetay double& outx double& outz)
{
double x1 = x;
double z1 = z;
double ry = thetay * 3.14 / 180;
outx = cos(ry) * x1 + sin(ry) * z1;
outz = cos(ry) * z1 - sin(ry) * x1;
}
//将空间点绕X轴旋转
//输入参数 y z为空间点原始y z坐标
//thetax为空间点绕X轴旋转多少度,角度制,范围在-180到180
//outy outz为旋转后的结果坐标
static void CodeRotateByX(double y double z double thetax double& outy double& outz)
{
double y1 = y;//将变量拷贝一次,保证&y == &y这种情况下也能计算正确
double z1 = z;
double rx = thetax * 3.14 / 180;
outy = cos(rx) * y1 - sin(rx) * z1;
outz = cos(rx) * z1 + sin(rx) * y1;
}
void main()
{
VideoCapture cap(0);
Mat objPM;//三维点矩阵
vector objectPoints = Generate3DPoints();//三维坐标点
vector projectedPoints;//三维点投影到二维点的向量用于重画
Mat(objectPoints).convertTo(objPM CV_32F);//把三维点向量变成三维点矩阵
double cameraD[3][3] = { { 412.92673  0 318.52471 }
{ 0 412.27311   258.65883 }
{ 0 0  1.0000 } };//通过matlab标定的单相机内参
double distC[5] = { 0.24775 - 0.50118 - 0.00513   0.00706  0.00000 };//通过matlab获取的相机畸变参数
Mat cameraMatrix(3 3 cv::Da

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.     27648  2018-03-15 16:06  姿态解算8--成功测距\.vs\姿态解算8\v14\.suo

     文件     236032  2018-03-15 12:22  姿态解算8--成功测距\x64\Debug\姿态解算8.exe

     文件    2720560  2018-03-15 12:22  姿态解算8--成功测距\x64\Debug\姿态解算8.ilk

     文件    4091904  2018-03-15 12:22  姿态解算8--成功测距\x64\Debug\姿态解算8.pdb

     文件     733583  2018-03-15 09:51  姿态解算8--成功测距\姿态解算8\Debug\main.obj

     文件    1100800  2018-03-15 09:51  姿态解算8--成功测距\姿态解算8\Debug\vc140.idb

     文件    2183168  2018-03-15 09:51  姿态解算8--成功测距\姿态解算8\Debug\vc140.pdb

     文件       1935  2018-03-15 09:51  姿态解算8--成功测距\姿态解算8\Debug\姿态解算8.log

     文件        682  2018-03-15 09:51  姿态解算8--成功测距\姿态解算8\Debug\姿态解算8.tlog\CL.command.1.tlog

     文件      33122  2018-03-15 09:51  姿态解算8--成功测距\姿态解算8\Debug\姿态解算8.tlog\CL.read.1.tlog

     文件        532  2018-03-15 09:51  姿态解算8--成功测距\姿态解算8\Debug\姿态解算8.tlog\CL.write.1.tlog

     文件          2  2018-03-15 09:51  姿态解算8--成功测距\姿态解算8\Debug\姿态解算8.tlog\link.command.1.tlog

     文件          2  2018-03-15 09:51  姿态解算8--成功测距\姿态解算8\Debug\姿态解算8.tlog\link.read.1.tlog

     文件          2  2018-03-15 09:51  姿态解算8--成功测距\姿态解算8\Debug\姿态解算8.tlog\link.write.1.tlog

     文件          0  2018-03-15 09:51  姿态解算8--成功测距\姿态解算8\Debug\姿态解算8.tlog\unsuccessfulbuild

     文件        227  2018-03-15 09:51  姿态解算8--成功测距\姿态解算8\Debug\姿态解算8.tlog\姿态解算8.lastbuildstate

     文件       7395  2018-03-15 12:22  姿态解算8--成功测距\姿态解算8\main.cpp

     文件    1097569  2018-03-15 12:22  姿态解算8--成功测距\姿态解算8\x64\Debug\main.obj

     文件    1158144  2018-03-15 12:22  姿态解算8--成功测距\姿态解算8\x64\Debug\vc140.idb

     文件    2265088  2018-03-15 12:22  姿态解算8--成功测距\姿态解算8\x64\Debug\vc140.pdb

     文件        800  2018-03-15 12:22  姿态解算8--成功测距\姿态解算8\x64\Debug\姿态解算8.log

     文件        650  2018-03-15 12:22  姿态解算8--成功测距\姿态解算8\x64\Debug\姿态解算8.tlog\CL.command.1.tlog

     文件      33568  2018-03-15 12:22  姿态解算8--成功测距\姿态解算8\x64\Debug\姿态解算8.tlog\CL.read.1.tlog

     文件        556  2018-03-15 12:22  姿态解算8--成功测距\姿态解算8\x64\Debug\姿态解算8.tlog\CL.write.1.tlog

     文件       2710  2018-03-15 12:22  姿态解算8--成功测距\姿态解算8\x64\Debug\姿态解算8.tlog\link.command.1.tlog

     文件       7806  2018-03-15 12:22  姿态解算8--成功测距\姿态解算8\x64\Debug\姿态解算8.tlog\link.read.1.tlog

     文件        542  2018-03-15 12:22  姿态解算8--成功测距\姿态解算8\x64\Debug\姿态解算8.tlog\link.write.1.tlog

     文件        225  2018-03-15 12:22  姿态解算8--成功测距\姿态解算8\x64\Debug\姿态解算8.tlog\姿态解算8.lastbuildstate

     文件       7383  2018-03-11 19:14  姿态解算8--成功测距\姿态解算8\姿态解算8.vcxproj

     文件        945  2018-03-11 19:14  姿态解算8--成功测距\姿态解算8\姿态解算8.vcxproj.filters

............此处省略18个文件信息

评论

共有 条评论