小编Vie*_*Vie的帖子

单值分解实现C++

谁能在C++中推荐稳定正确的单值分解(SVD)?最好是独立实现(不希望为一个方法添加大型库).

我使用OpenCV ...但openCV SVD为单个矩阵返回不同的分解(!).据我所知,存在多个简单矩阵的分解...但是为什么openCV会这样做呢?随机基础?或者是什么?

在某些情况下,这种不稳定性导致我的计算错误,我无法理解为什么.然而,结果由mathlab或wolframalpha返回 - 总是给出正确的计算....

c++ algorithm opencv

24
推荐指数
5
解决办法
4万
查看次数

如何使用Boost制作关键部分?

对于我的跨平台应用程序,我已经开始使用Boost,但我无法理解如何实现代码来重现Win32的关键部分或.Net的行为lock.

我想编写一个Foo可以从不同线程调用的方法来控制对共享字段的写操作.应该允许同一线程内的递归调用(Foo() - > Foo()).

在C#中,这个实现非常简单:

object _synch = new object();
void Foo()
{
    lock (_synch)  // one thread can't be lock by him self, but another threads must wait untill
    {
        // do some works
        if (...) 
        {
           Foo();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ multithreading synchronization boost critical-section

10
推荐指数
1
解决办法
8548
查看次数

基本矩阵的T和R估计

我创建了一个简单的测试应用程序,用于从基本矩阵执行平移(T)和旋转(R)估计.

  1. 生成50个随机.
  2. 计算投影pointSet1.
  3. 通过矩阵(R | T)转换.
  4. 计算新的投影点Set2.
  5. 然后计算基本矩阵˚F.
  6. E = K2^T F K1(K1, K2- 内部相机矩阵)提取基本矩阵.
  7. 使用SVD获取UDV^T.

并计算restoredR1 = UWV^T,restoredR2 = UW^T.并看到他们中的一个设置为初始[R .

但是,当我计算平移矢量,restoredT = UZU^T我得到规范化的牛逼.

restoredT*max(T.x, T.y, T.z) = T

如何恢复正确的翻译载体?

opencv linear-algebra computer-vision

6
推荐指数
1
解决办法
4885
查看次数

如何在OpenGL(GLUT)场景中创建静态背景图像?

我创建了一些场景,我希望显示一些静态背景图像,这不会改变我对场景的方式和方式.

c++ opengl glut

3
推荐指数
1
解决办法
2291
查看次数