小编koo*_*121的帖子

为什么睡眠(500)花费超过500毫秒?

我用Sleep(500)在我的代码中,然后用来getTickCount()测试时间.我发现它的成本约为515ms,超过500.有人知道为什么会这样吗?

c++ winapi sleep

53
推荐指数
5
解决办法
6529
查看次数

如何通过opencv计算提取轮廓的曲率?

我确实使用该findcontours()方法从图像中提取轮廓,但我不知道如何从一组轮廓点计算曲率.有人能帮助我吗?非常感谢你!

c++ opencv

8
推荐指数
2
解决办法
5745
查看次数

OpenCV 中的相机标定和鸟瞰投影

我已经完成了相机校准。现在我想获得棋盘图片的鸟瞰图。如下所示。但结果很奇怪,看起来不是一个正方形。你可以看到图3。每个正方形都是7.95x7.95。有人知道为什么吗?

gpsPoints[0] = Point2f(..., ...);
gpsPoints[1] = Point2f(..., ...);
gpsPoints[2] = Point2f(..., ...);
gpsPoints[3] = Point2f(..., ...);

dst[0] = Point2f(..., ...);
dst[1] = Point2f(..., ...);
dst[2] = Point2f(..., ...);
dst[3] = Point2f(..., ...);
Mat transmtx = getPerspectiveTransform(gpsPoints, dst);
warpPerspective(img, frame, transmtx, img.size());
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述 在此输入图像描述

c++ camera opencv

4
推荐指数
1
解决办法
1777
查看次数

warpPerspective和perspectiveTransform之间有所不同

我使用了四组点来获得一个PerspectiveTransform矩阵t.然后使用warpPerspective将Mat A转换为Mat B.从Mat A中指出一个点.我想让新的Point在Mat B.中获得一个位置但是warpPerspective()不能在透视透射变换时可以做到这一点.在这里,我想通过使用warpPerspective来了解perspectiveTransform中的位置是否与Mat B中的位置相同.那么,warpPerspective和perspectiveTransform之间的区别是什么?

Mat trans = getPerspectiveTransform(dst, gpsPoints);
warpPerspective(A, B, trans, image.size());
Point2f a = Point2f(..., ...);         //were known
vector<Point2f> obj(1);
obj[0] = a;
vector<Point2f> b; 
perspectiveTransform(obj, b, trans);//if the new point in B is c, is c equals to b?
Run Code Online (Sandbox Code Playgroud)

c++ opencv transform

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

指针(*)和参考(&)之间的区别

我在这里使用Reference(&),但a没有改变.为什么?当我使用指针(*)时,值已经改变.

int all=0; 
void call_from_thread(int & a)  
{
   a = 5;
}

int main() 
{
    thread s = thread(call_from_thread, all);
    s.join();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

另一个程序,在这种情况下,我也使用引用(&),但值已更改.为什么线程中的值没有改变?

void Func3(int &x)
{
    x = x + 10;
}

int main() {

    int n = 0;
    Func3(n);
    cout << “n = ” << n << endl; // n = 10
}
Run Code Online (Sandbox Code Playgroud)

c++

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

我可以在OpenCV中使用重映射获取点位置吗

我已经A使用RGB相机拍摄了照片。而且我知道g照片中点的位置A。相机需要进行相机校准。现在我想知道g校准后点的位置。我正在使用以下代码,但我想获取点位置,而不是图像。我怎样才能做到这一点?你能给我一些建议吗?

initUndistortRectifyMap(
        cameraMatrix,   
        distCoeffs,     
        Mat(),      
        Mat(),      
        Size(640, 480),
        CV_32FC1,      
        map1, map2);  
 remap(A, B, map1, map2, cv::INTER_LINEAR);  

Point2f g = Point2f(...,...);//i want to get the new position of the point not image B   
Run Code Online (Sandbox Code Playgroud)

c++ opencv remap

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

为什么选择GetLocalTime(&sys); 显示奇怪的结果?

我想实时获取当地时间.代码和结果如下,显示奇怪;

int main() {
    while (true) {
        char sentdata[64] = { 0 };
        GetLocalTime(&sys);
        sprintf(sentdata, "A,%02d:%02d:%02d.%03d,B\n", sys.wHour, sys.wMinute, sys.wSecond, sys.wMilliseconds);

        cout << sentdata << endl;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我在其他PC上尝试了相同的代码,结果显示如下,它可以显示每毫秒.

在此输入图像描述

为什么tmie在某个循环中是相同的?我认为每个循环的时间应该不同.

c++ time winapi

0
推荐指数
1
解决办法
90
查看次数

标签 统计

c++ ×7

opencv ×4

winapi ×2

camera ×1

remap ×1

sleep ×1

time ×1

transform ×1