图片上打印帧率等信息


图片上打印帧率等信息

计算某一个算法的帧率

// Start timer
double timer = (double) getTickCount();

//待测算法
algorithm();

// Calculate Frames per second (FPS)
float fps = getTickFrequency() / ((double) getTickCount() - timer);

使用putText()函数将信息直接输出到图片上

函数原型

void cv::putText(
	cv::Mat& img, // 待绘制的图像
	const string& text, // 待绘制的文字
	cv::Point origin, // 文本框的左下角
	int fontFace, // 字体 (如cv::FONT_HERSHEY_PLAIN)
	double fontScale, // 尺寸因子,值越大文字越大
	cv::Scalar color, // 线条的颜色(RGB)
	int thickness = 1, // 线条宽度
	int lineType = 8, // 线型(4邻域或8邻域,默认8邻域)
	bool bottomLeftOrigin = false // true='origin at lower left'
);

使用示例

在图片左上角显示使用的算法,帧率,是否检测到目标物

putText(frame, detectionType, Point(100, 20), FONT_HERSHEY_SIMPLEX, 0.75, Scalar(50, 170, 50), 2);

putText(frame, "FPS : " + to_string(int(fps)), Point(100, 50), FONT_HERSHEY_SIMPLEX, 0.75, Scalar(50, 170, 50), 2);

if(detection_failed)
	putText(frame, " Detection failed", Point(100, 80), FONT_HERSHEY_SIMPLEX, 0.75, Scalar(0, 0, 255), 2);

下面是效果图:


文章作者: Immortalqx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Immortalqx !
评论
  目录