604
- 收藏
- 点赞
- 分享
- 举报
如何获取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
下载
我来回答
回答14个
时间排序
认可量排序
认可0
认可0
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2019-03-26 16:25:04
-
2016-04-07 15:28:05
-
2023-10-18 14:11:10
-
2019-08-02 17:08:44
-
2020-07-21 18:05:59
-
2020-06-08 16:25:37
-
2019-11-25 18:36:13
-
2020-06-08 15:31:47
-
2020-05-11 15:28:32
-
2022-11-02 20:17:05
-
32017-12-13 17:34:51
-
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
-
2025-01-06 18:27:15
-
2019-04-30 15:04:29
-
2020-01-13 16:19:44
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
最佳回答
被评为最佳回答,即可获得50元悬赏金额,先回答帮助题主解决问题,会更具优势
悬赏问答
-
5想要咨询一下Sil9135+Sil9134形成的一个显示链路.
-
5Hi3516移植USB摄像头的SDK,如何修改Makefile?
-
5ss928从SD卡启动
-
50HI3516CV610调试raw+ahd,均使用2lane mipi
-
5HI3516DV500接收不到FPGA传过来的BT1120数据,时钟和配置都没问题VI就是检测不到数据~
-
5请教一下,Hi3516DV500 ebaina的SDK有没有实现RTSP推流?
-
5SS928的emmc有32GB,bootargs设置使用16GB,但是为啥能用的只有rootfs的大小
-
33SS928怎样烧写ubuntu系统
-
10ToolPlatform下载rootfs提示网络失败
-
10谁有GK7205V500的SDK
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认