qn1588840278

qn1588840278

0个粉丝

8

问答

0

专栏

0

资料

qn1588840278  发布于  2020-06-03 10:27:17
采纳率 0%
8个问答
3303

用HI_MPI_VI_GetChnFrame获取vi采集的图像,保存出来的图片是错误

 
请问下vi通道获取的图像不应该是420sp格式吗,我把图像数据保存成文件后是不正确的图片,但是随后把vi绑定vo显示是正常的。
代码如下:
        s32Ret = HI_MPI_VI_GetChnFrame(0, 0, &frameinfo1, s32MilliSec);

        if (HI_SUCCESS != s32Ret)
        {
            SAMPLE_PRT("HI_MPI_VI_GetChnFrame  1 failed with %#x!\n", s32Ret);
            return HI_NULL;
        }
        HI_CHAR *addr1 = (HI_CHAR*)HI_MPI_SYS_Mmap(frameinfo1.stVFrame.u64PhyAddr[0], size1);

        HI_CHAR *virtuv_ptr1 = addr1 + frameinfo1.stVFrame.u32Stride[0] * frameinfo1.stVFrame.u32Height;

        fwrite(addr1,  frameinfo1.stVFrame.u32Stride[0] * frameinfo1.stVFrame.u32Height, 1, fd);
        fwrite(virtuv_ptr1,  frameinfo1.stVFrame.u32Stride[0] * frameinfo1.stVFrame.u32Height / 2, 1, fd);
        fflush(fd);
        HI_MPI_SYS_Munmap((HI_VOID*)addr1, size1);   
       
我来回答
回答7个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2020-06-03 10:35:51
认可0
本帖最后由 zhuangweiye 于 2020-6-3 10:39 编辑

图像信息都有,就看楼主用不用了

typedef struct hiVIDEO_FRAME_S
{
HI_U32 u32Width;
HI_U32 u32Height;
VIDEO_FIELD_E u32Field;
PIXEL_FORMAT_E enPixelFormat;
VIDEO_FORMAT_E enVideoFormat;
COMPRESS_MODE_E enCompressMode;
。。。

直接按sp420来写文件风险有点大,要求
enPixelFormat = PIXEL_FORMAT_YUV_SEMIPLANAR_420
enVideoFormat = VIDEO_FORMAT_LINEAR
enCompressMode = COMPRESS_MODE_NONE

通常来说硬件默认都不会这么用

qn1588840278

0个粉丝

8

问答

0

专栏

0

资料

qn1588840278 2020-06-03 11:00:06
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=159306&ptid=80550]zhuangweiye 发表于 2020-6-3 10:35[/url]
图像信息都有,就看楼主用不用了

typedef struct hiVIDEO_FRAME_S
[/quote]

感谢庄工的答复,确实把enCompressMode 改成COMPRESS_MODE_NONE,保存文件成功了,把vi通道的压缩模式改成COMPRESS_MODE_NONE对使用有没有什么影响,默认是COMPRESS_MODE_SEG的。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2020-06-03 11:58:23
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=159309&ptid=80550]qn1588840278 发表于 2020-6-3 11:00[/url]
感谢庄工的答复,确实把enCompressMode 改成COMPRESS_MODE_NONE,保存文件成功了,把vi通道的压缩模式改 ...[/quote]

这个不能自己该噢,读出来是什么就是什么,如果不满足上面的要求就无法用sp420来写文件

qn1588840278

0个粉丝

8

问答

0

专栏

0

资料

qn1588840278 2020-06-03 13:13:22
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=159313&ptid=80550]zhuangweiye 发表于 2020-6-3 11:58[/url]
这个不能自己该噢,读出来是什么就是什么,如果不满足上面的要求就无法用sp420来写文件[/quote]

我意思是在初始化配置VI的时候,修改VI的通道压缩属性为无压缩格式,然后读出来的图像数据就可以保存成文件了,显示也是正常的

qn1573283653

0个粉丝

1

问答

0

专栏

0

资料

qn1573283653 2020-06-05 16:45:17
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=159315&ptid=80550]qn1588840278 发表于 2020-6-3 13:13[/url]
我意思是在初始化配置VI的时候,修改VI的通道压缩属性为无压缩格式,然后读出来的图像数据就可以保存成文 ...[/quote]

之所有有压缩模式,应该是无损压缩,可以起到节约内存功能,减少内存带宽压力吧

qn1532684965

0个粉丝

11

问答

0

专栏

0

资料

qn1532684965 2020-06-05 16:59:53
认可0
你可以转成jpeg图片保存啊

qn1588840278

0个粉丝

8

问答

0

专栏

0

资料

qn1588840278 2020-06-11 15:21:10
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=159306&ptid=80550]zhuangweiye 发表于 2020-6-3 10:35[/url]
图像信息都有,就看楼主用不用了

typedef struct hiVIDEO_FRAME_S
[/quote]

hi3516dv300做uvc摄像头,PC用amcap打开MJPEG预览画面会出现闪屏的情况,不知道庄工有没有了解过这相关的情况?
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区