eiudng

eiudng

0个粉丝

17

问答

0

专栏

0

资料

eiudng  发布于  2020-05-28 11:46:40
采纳率 0%
17个问答
2784

模仿hi3531dv200 sdk中的sample_vio例程执行问题

 
本帖最后由 eiudng 于 2020-5-29 13:04 编辑

模仿hi3531dv200 sdk中的sample例程执行问题
0xA0078009 HI_ERR_VPSS_UNEXIST VPSS Group 未创建

[level]:Error,[func]:adas_process_thread [line]:547 [info]:Error(0xa0078009),adas hi_mpi_vpss_get_chn_frame failed, VPSS_GRP(13), VPSS_CHN(2)!



我来回答
回答6个
时间排序
认可量排序

eiudng

0个粉丝

17

问答

0

专栏

0

资料

eiudng 2020-06-03 13:01:10
认可0
本帖最后由 eiudng 于 2020-6-3 14:41 编辑

      调用  savempfiile((hi_uchar*)dstframe.virt_addr[0], dstframe.width, dstframe.height, "/app/rgb.dib");
保存的图片
附件:2020-06-03 14-35-01屏幕截图.png
这是通过vi-->vpss-->ive-->保存的rgb888 图
附件:2020-06-03 14-34-41屏幕截图.png
这是通过sensor工具抓到的图,可以认为是原图吧

哪里出错了?

eiudng

0个粉丝

17

问答

0

专栏

0

资料

eiudng 2020-06-03 13:29:44
认可0
感觉 离 成功不远了:Q
那个椭圆 其实是个钟,方的是 冰箱。:Q

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2020-06-03 14:00:48
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=159316&ptid=80499]eiudng 发表于 2020-6-3 13:29[/url]
感觉 离 成功不远了
那个椭圆 其实是个钟,方的是 冰箱。[/quote]

代码里里面 u32Size 是多少?

eiudng

0个粉丝

17

问答

0

专栏

0

资料

eiudng 2020-06-03 14:36:56
认可0
本帖最后由 eiudng 于 2020-6-3 14:47 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=159317&ptid=80499]zhuangweiye 发表于 2020-6-3 14:00[/url]
代码里里面 u32Size 是多少?[/quote]

dstframe.stride[0] = proc_frame.video_frame.stride[0] * 3;
//dstframe.stride[1] = proc_frame.video_frame.stride[1] * 3;
//dstframe.stride[2] = proc_frame.video_frame.stride[1];
  u32Size =   dstframe.stride[0] * dstframe.height  * 1;

相机是720p的,所以u32Size:2764800(  = 1280×720×3)

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2020-06-03 14:56:58
认可0
本帖最后由 zhuangweiye 于 2020-6-3 15:03 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=159319&ptid=80499]eiudng 发表于 2020-6-3 14:36[/url]
dstframe.stride[0] = proc_frame.video_frame.stride[0] * 3;
//dstframe.stride[1] = proc_frame.vid ...[/quote]

hi_s32 sample_common_ive_write_file(hi_svp_img *img, FILE *fp)
{
    hi_u16 c, h;
    hi_u8 *ptr_tmp = HI_NULL;
    hi_sample_rw_image_loop_info loop_info = {0};
    sample_comm_ive_get_loop_info(img, &loop_info);

    for (c = 0; c < loop_info.loop_c; c++) {
        ptr_tmp = sample_svp_convert_addr_to_ptr(hi_u8, img->virt_addr[c]);
        for (h = 0; h < loop_info.loop_h[c]; h++) {
            if (fwrite(ptr_tmp, img->width * loop_info.ele_size, 1, fp) != 1) {
                sample_svp_trace_err("Write file fail\n");
                return HI_FAILURE;
            }
            ptr_tmp += img->stride[c] * loop_info.ele_size;
        }
    }
    return HI_SUCCESS;
}

注意到
          ptr_tmp += img->stride[c] * loop_info.ele_size;

在sample_comm_ive_get_loop_info()中
        case HI_SVP_IMG_TYPE_U8C3_PACKAGE: {
            loop_info->ele_size = sizeof(hi_u8) + sizeof(hi_u16);

那么ptr_tmp += 3* img->stride[0] ,  按楼主的设置,这个随着h的增加,会越界

再看文档
1.2.1 重要概念
 跨度( stride )):与图像或二维数据的 width 度量一致 的量 ,如 图 1 1 所示 。
− hi_svp_ img 图像数据 跨度 ,表示 图像一行以 像素 计算的单元个数, 像
素 位宽可以是 8bit 16bit 等。

意味着IVE中的图像的stride是像素的个数,不是bytes。

所以楼主
dstframe.stride[0] = proc_frame.video_frame.stride[0] * 3 这个设置是有问题的
应设置为
dstframe.stride[0] = proc_frame.video_frame.stride[0]

同时要注意dstframe开内存时要够,
不能用 u32Size =   dstframe.stride[0] * dstframe.height  * 1
应设置为
u32Size = dstframe.stride[0] * dstframe.height * 3 ,这里3表示一个像素3个bytes

eiudng

0个粉丝

17

问答

0

专栏

0

资料

eiudng 2020-06-03 15:38:02
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=159320&ptid=80499]zhuangweiye 发表于 2020-6-3 14:56[/url]
hi_s32 sample_common_ive_write_file(hi_svp_img *img, FILE *fp)
{
    hi_u16 c, h;
[/quote]

多谢
修改后就正常了。
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区