给mpp里的MPPFrame图层叠加时间,C代码示例
时间: 2024-01-11 22:05:42 浏览: 135
mipi.rar_hi3516_mpp mipi_yesterday5yg_华为代码_海思
5星 · 资源好评率100%
好的,以下是将时间戳叠加到MPPFrame上并保存的C代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "mpp_frame.h"
void add_timestamp_to_frame(MPPFrame* frame) {
// 获取当前时间戳
time_t rawtime;
struct tm* timeinfo;
char time_str[20];
time(&rawtime);
timeinfo = localtime(&rawtime);
strftime(time_str, sizeof(time_str), "%Y-%m-%d %H:%M:%S", timeinfo);
// 设置字体
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 1.0, 1.0, 0, 2, CV_AA);
// 设置字体颜色(蓝色)
CvScalar color = cvScalar(255, 0, 0, 0);
// 获取时间文本大小
CvSize text_size;
int baseline;
cvGetTextSize(time_str, &font, &text_size, &baseline);
// 计算时间文本放置位置
int x = frame->width - text_size.width - 10;
int y = frame->height - text_size.height - 10;
// 在MPPFrame上绘制时间文本
cvPutText(frame, time_str, cvPoint(x, y), &font, color);
// 保存帧到文件
cvSaveImage("output.jpg", frame);
}
int main() {
// 从文件中读取MPPFrame
MPP_FRAME_S mpp_frame;
memset(&mpp_frame, 0, sizeof(MPP_FRAME_S));
FILE* fp = fopen("input.yuv", "rb");
mpp_frame.buf = malloc(frame_size);
fread(mpp_frame.buf, 1, frame_size, fp);
fclose(fp);
mpp_frame.width = frame_width;
mpp_frame.height = frame_height;
mpp_frame.frm_size = frame_size;
mpp_frame.pix_fmt = PIXEL_FMT_YUV420SP;
// 将MPPFrame转换为OpenCV格式
IplImage* img_y = cvCreateImageHeader(cvSize(mpp_frame.width, mpp_frame.height), IPL_DEPTH_8U, 1);
IplImage* img_uv = cvCreateImageHeader(cvSize(mpp_frame.width / 2, mpp_frame.height / 2), IPL_DEPTH_8U, 2);
cvSetData(img_y, mpp_frame.buf, mpp_frame.width);
cvSetData(img_uv, mpp_frame.buf + mpp_frame.width * mpp_frame.height, mpp_frame.width);
IplImage* img = cvCreateImage(cvSize(mpp_frame.width, mpp_frame.height), IPL_DEPTH_8U, 3);
cvMerge(img_y, img_uv, img_uv, NULL, img);
// 在MPPFrame上添加时间戳
add_timestamp_to_frame(img);
// 释放内存
free(mpp_frame.buf);
cvReleaseImage(&img_y);
cvReleaseImage(&img_uv);
cvReleaseImage(&img);
return 0;
}
```
这个示例代码将会在MPPFrame右下角添加一个蓝色的时间戳,并将结果保存到output.jpg文件中。您可以根据需要自行调整字体大小、颜色、位置等参数。
阅读全文