337
- 收藏
- 点赞
- 分享
- 举报
如何获取vpss chn的图像修改后发送至vo
悬赏金¥ 50
已结题
getframe的接口有两个:mpi_vpss_get_grp_frame
和mpi_vpss_get_chn_frame
,经过测试前者获取的是vpss的源图像,后者获取的是通道输出的图像,在SDK的mpp/tools下分别有对应的两个sample:vpss_src_dump.c
和vpss_chn_dump.c
,我在此基础上进行修改,加入cpu上的算法处理后mpi_vo_send_frame发送至vo chn1显示(chn0显示原图像):
vi->vpss-vo(chn0 chn1)
使用mpi_vpss_get_grp_frame时vo能够正常显示处理后的图像,但使用mpi_vpss_get_chn_frame时候vo显示的还是原图像,打印算法处理前后虚拟地址的像素点值确实被改变了,不知道原因为啥vo_send_frame过去的还是原图像,就像在虚拟地址上对图像的改动没有映射到物理地址上似的。
有人知道两种get frame的方式在需要重新send frame的情况下有什么使用上的不同么?
// user insert opencv process
//------------------------------------------------------------------------
printf("before %d %d\n", *(g_user_page_addr[0]), *(g_user_page_addr[1]));
cv::Mat mat_Y(frame->height, frame->width, CV_8UC1, g_user_page_addr[0]);
cv::Mat mat_UV(uv_height, frame->width, CV_8UC1, g_user_page_addr[1]);
cv::Mat mat_YUV;
cv::Mat mat_list[] = {mat_Y, mat_UV};
cv::vconcat(mat_list, 2, mat_YUV);
cv::Mat mat_RGB = cv::Mat(frame->height, frame->width, CV_8UC3);
cv::cvtColor(mat_YUV, mat_RGB, cv::COLOR_YUV2RGB_YV12);
printf("%d %d\n", mat_RGB.rows, mat_RGB.cols);
cv::flip(mat_RGB, mat_RGB, 1);
cv::cvtColor(mat_RGB, mat_YUV, cv::COLOR_RGB2YUV_YV12);
mat_YUV(cv::Range(0, frame->height),
cv::Range(0, mat_YUV.cols)).copyTo(mat_Y);
mat_YUV(cv::Range(frame->height, frame->height + uv_height),
cv::Range(0, mat_YUV.cols)).copyTo(mat_UV);
printf("after %d %d\n", *(g_user_page_addr[0]), *(g_user_page_addr[1]));
//------------------------------------------------------------------------
//user
const td_s32 milli_sec = -1;
ss_mpi_vo_send_frame(0, 1, &g_frame, milli_sec);
文件: vpss_src_dump.c
下载
文件: vpss_chn_dump.c
下载
我来回答
回答12个
时间排序
认可量排序
认可0
认可0
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2019-03-26 16:25:04
-
2023-10-18 14:11:10
-
2019-08-02 17:08:44
-
2016-04-07 15:28:05
-
2019-11-25 18:36:13
-
2020-06-08 16:25:37
-
2020-07-21 18:05:59
-
2020-06-08 15:31:47
-
32017-12-13 17:34:51
-
2020-05-11 15:28:32
-
2022-11-02 20:17:05
-
2015-05-30 17:21:40
-
52015-07-17 15:47:28
-
2020-04-03 10:30:30
-
2016-11-11 10:40:53
-
2021-07-29 11:58:34
-
2019-02-25 11:24:53
-
2020-01-13 16:19:44
-
2016-08-30 15:17:42
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
最佳回答
被评为最佳回答,即可获得50元悬赏金额,先回答帮助题主解决问题,会更具优势
悬赏问答
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认