我正在尝试测量相机的姿势,我已经完成了以下操作。
将正方形的左上角作为我的原点,并按以下顺序给出世界点(x,y)或(col,row):(0,0),(12.8,0),(12.8,12.8) ,(0,12.8) - 厘米
检测图像中的那些点。(以像素为单位)图像点和世界点的顺序相同。
我已经针对内在矩阵和失真系数校准了我的相机。
我使用SolvePnP函数来获取 rvec 和 tvec。
我使用Rodrigues函数来获取旋转矩阵。
为了检查 rvec 和 tvec 是否正确,我使用ProjectPoints将 3-D 点(z=0)投影回图像平面,并且我在图像上正确获得了点,X 轴上的误差为 3 个像素。
现在我继续使用公式计算我的相机在世界框架中的位置:
cam_worl_pos = - inverse(R) * tvec。(这个公式我已经在很多博客中验证过,这也是有道理的)
我的疑问是,如果我能够使用 rvec 和 tvec 将 3-D 世界点投影回图像平面(X 轴上有3 个像素错误,Y 轴上几乎没有错误,希望它不会太糟糕),然后为什么我没有在世界框架中获得正确的相机位置。
另外,我对 SolvPnP rvec 和 tvec 解决方案有疑问,它们可能是多种解决方案之一,但不是我想要的。
我如何从 SolvPnp 获得正确的 rvec 和 tvec 或任何其他获得 rvec 和 …
我正在尝试使用 CPP 线程添加偶数和奇数,代码如下所示
typedef unsigned long long ull;
ull EvenSum = 0;
ull OddSum = 0;
void find_Evensum(ull start, ull end)
{
for(ull i=start;i<=end;i++)
{
if((i&1) == 0)
{
EvenSum+=i;
}
}
}
void find_Oddsum(ull start, ull end)
{
for(ull i=start;i<=end;i++)
{
if((i&1) == 1)
{
OddSum+=i;
}
}
}
int main()
{
ull start = 0;
ull end = 1900000000;
auto start_time = high_resolution_clock::now();
#if 0
thread t1(find_Evensum, start, end);
thread t2(find_Oddsum, start, end);
t1.join();
t2.join();
#else
find_Evensum(start, end); …Run Code Online (Sandbox Code Playgroud)