Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么cv::format没有给我预期的结果? 我使用OpenCV 3.4.0使用VC++ 2015版本的发布模式< /P>_C++_Opencv - Fatal编程技术网

为什么cv::format没有给我预期的结果? 我使用OpenCV 3.4.0使用VC++ 2015版本的发布模式< /P>

为什么cv::format没有给我预期的结果? 我使用OpenCV 3.4.0使用VC++ 2015版本的发布模式< /P>,c++,opencv,C++,Opencv,我试图将文本放在cv::Mat中的特定位置 当我尝试这个方法时,它是有效的: //int FPS = calculate_FPS(measure_time(false)); int FPS = 6; std::cout << "FPS = " << FPS << std::endl; measure_time(true); cv::putText(canvas(frame_per_second_area), cv::fo

我试图将文本放在cv::Mat中的特定位置

当我尝试这个方法时,它是有效的:

    //int FPS = calculate_FPS(measure_time(false));
    int FPS = 6;
    std::cout << "FPS = " << FPS << std::endl;
    measure_time(true);
    cv::putText(canvas(frame_per_second_area), cv::format("FPS: %d", FPS) , cv::Point(frame_per_second_area.width*0.20, frame_per_second_area.height*0.7), cv::FONT_HERSHEY_PLAIN, 1, cv::Scalar(0, 0, 0));
它看起来像:

在这里之前一切都很好。 然而,当我尝试这种方法时,我得到了不好的结果:

    int FPS = calculate_FPS(measure_time(false));
    //int FPS = 6;
    std::cout << "FPS = " << FPS << std::endl;
    measure_time(true);
    cv::putText(canvas(frame_per_second_area), cv::format("FPS: %d", FPS) , cv::Point(frame_per_second_area.width*0.20, frame_per_second_area.height*0.7), cv::FONT_HERSHEY_PLAIN, 1, cv::Scalar(0, 0, 0));
它看起来像:

需要指出的是,屏幕的输出看起来不错:

需要提及2-这是函数声明:


int计算两倍的运行时间,单位为毫秒

问题不是调用:计算\u fpsmease\u timevalse;或者不是。实际问题是在同一画布上重复渲染文本。我可以向您演示:

案例1:调用putText之前未刷新画布的情况: 案例2:在调用putText之前刷新画布
您能否尝试使用%02d的第一个变体,看看06与6的外观如何?
canvas = np.ones((100, 200, 3), dtype=np.uint8)

# Set the canvas background color as Red.
canvas[:, :] = np.array([0, 0, 255])

for i in xrange(15):
    cv2.putText(canvas, "FPS: " + str(i), (50, 70), cv2.FONT_HERSHEY_PLAIN, 1, np.array([0, 0, 0]))
canvas = np.ones((100, 200, 3), dtype=np.uint8)

# Set the canvas background color as Red.
canvas[:, :] = np.array([0, 0, 255])

for i in xrange(15):
    canvas[:, :] = np.array([0, 0, 255])
    cv2.putText(canvas, "FPS: " + str(i), (50, 70), cv2.FONT_HERSHEY_PLAIN, 1, np.array([0, 0, 0]))