9crk

9crk

1个粉丝

34

问答

0

专栏

6

资料

9crk  发布于  2016-03-07 10:35:26
采纳率 0%
34个问答
6642

3518e保存图像到opencv IplImage结构体

本帖最后由 9crk 于 2016-3-7 16:48 编辑

[code]int venc_getYUV(char*buff)
{
        HI_S32 s32ret;
        VI_CHN ViChn = 0;
        VIDEO_FRAME_INFO_S stFrame;
        HI_U32 u32Depth;
        u32Depth = 2;
        HI_VOID* ptr;
        int len;
        s32ret = HI_MPI_VI_SetFrameDepth(ViChn, u32Depth);
        s32ret = HI_MPI_VI_GetFrame(ViChn, &stFrame);
        if(s32ret != 0)return 0;
        len = stFrame.stVFrame.u32Width* stFrame.stVFrame.u32Height;

        ptr = HI_MPI_SYS_Mmap(stFrame.stVFrame.u32PhyAddr[0], len);
        memcpy(buff,ptr,len);
        HI_MPI_SYS_Munmap(ptr,len);       
         
        (void)HI_MPI_VI_ReleaseFrame(ViChn, &stFrame);
        return len;
}[/code]

HI_MPI_VI_SetFrameDepth(ViChn, u32Depth);
这个“设置深度”其实就是从VI拿走一块缓冲区,如果VideoBuffer设置的比较小的话,可能会引起 get stream timeout.

[code]int main()
{
        char data[1280*720];
        int len;
        IplImage *img = cvCreateImageHeader(cvSize(1280,720), 8, 1);
        cvSetImageData(img,data,1280);//最后面一个参数是图像的宽度。使用此方法避免了多次内存拷贝。
       
        while(1){
                len = venc_getYUV(data);
                //TODO:直接对img进行算法处理
        }
        cvSaveImage("myImage.jpg",img);
        cvReleaseImageHeader(&img);
}[/code]

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

david

41个粉丝

368

问答

253

专栏

229

资料

david 2016-03-07 12:42:44
认可0
好久不见楼主出来透气了 :)

kibin

0个粉丝

6

问答

0

专栏

1

资料

kibin 2016-07-19 09:35:07
认可0
我顶,顶顶顶

13086733170

0个粉丝

1

问答

0

专栏

0

资料

13086733170 2016-10-12 15:30:15
认可0
楼主你好,ptr = HI_MPI_SYS_Mmap(stFrame.stVFrame.u32PhyAddr[0], len);  这句获取的是图像的Y分量,也就是灰度分量,想问下如果想获取彩色图像应该怎么做呢?

9crk

1个粉丝

34

问答

0

专栏

6

资料

9crk 2016-10-12 15:53:09
认可0
UV分量不就在u32PhyAddr[1]里面么。。。

13086733170

0个粉丝

1

问答

0

专栏

0

资料

13086733170 2016-10-12 16:28:23
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39258&ptid=10271]9crk 发表于 2016-10-12 15:53[/url]
UV分量不就在u32PhyAddr[1]里面么。。。[/quote]

楼主你好,那UV分量应该怎么提取呢?是把映射的空间大小增加到u32PhyAddr[1]吗?也就是映射长度增加原来的一倍?

13086733170

0个粉丝

1

问答

0

专栏

0

资料

13086733170 2016-10-13 09:15:54
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39258&ptid=10271]9crk 发表于 2016-10-12 15:53[/url]
UV分量不就在u32PhyAddr[1]里面么。。。[/quote]

楼主,我发现addr[0]存储的是Y分量,像素大小=w*h,addr[1]存储的是UV分量,像素大小=w*h/2,但是应该怎么吧Y分量和UV分量整合成YUV格式的图片,然后再输出呢?

9crk

1个粉丝

34

问答

0

专栏

6

资料

9crk 2016-10-17 11:43:19
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39305&ptid=10271]13086733170 发表于 2016-10-13 09:15[/url]
楼主,我发现addr[0]存储的是Y分量,像素大小=w*h,addr[1]存储的是UV分量,像素大小=w*h/2,但是应该怎 ...[/quote]

参考SP420数据格式

13086733170

0个粉丝

1

问答

0

专栏

0

资料

13086733170 2016-10-17 20:37:30
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39610&ptid=10271]9crk 发表于 2016-10-17 11:43[/url]
参考SP420数据格式[/quote]

好的,谢谢楼主

July

0个粉丝

2

问答

0

专栏

0

资料

July 2017-07-18 13:37:56
认可0
请问楼主,我分别交叉编译opencv程序或是sample_xxx.c 程序是可以的,但如果我在sample_xxx.c中添加了opencv相关的库,就无法编译好了,出了各种问题。请问您是使用g++还是gcc编译的呢?

9crk

1个粉丝

34

问答

0

专栏

6

资料

9crk 2017-08-04 15:47:51
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=55630&ptid=10271]July 发表于 2017-7-18 13:37[/url]
请问楼主,我分别交叉编译opencv程序或是sample_xxx.c 程序是可以的,但如果我在sample_xxx.c中添加了openc ...[/quote]

学习一下c链接c++库的用法。

July

0个粉丝

2

问答

0

专栏

0

资料

July 2017-08-07 09:48:43
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=56840&ptid=10271]9crk 发表于 2017-8-4 15:47[/url]
学习一下c链接c++库的用法。[/quote]

尝试了不同的方法,最后试出来一种可以编译通过:
opencv需要使用g++编译才行(不知道是不是我在编译opencv时出了问题?),那就直接用g++编译源代码就可以了,只是需要在链接的时候加上-lstdc++。thanks

arthur_liu

0个粉丝

2

问答

0

专栏

0

资料

arthur_liu 2017-08-25 15:47:19
认可0
楼主,为啥我转化出来的图像是全黑的?

9crk

1个粉丝

34

问答

0

专栏

6

资料

9crk 2017-08-26 13:31:25
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=62971&ptid=10271]arthur_liu 发表于 2017-8-25 15:47[/url]
楼主,为啥我转化出来的图像是全黑的?[/quote]

前几帧是黑的,后面的不会了。
或者其他地方有问题。

双鱼曦阳

0个粉丝

1

问答

0

专栏

0

资料

双鱼曦阳 2017-09-13 10:35:02
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=56897&ptid=10271]July 发表于 2017-8-7 09:48[/url]
尝试了不同的方法,最后试出来一种可以编译通过:
opencv需要使用g++编译才行(不知道是不是我在编译ope ...[/quote]

请问,我按照您的方法编译,如果加上——cvSaveImage这个函数就会出现:对‘cvSaveImage’未定义的引用,不加编译就能通过,请问您有遇到这个问题吗?

双鱼曦阳

0个粉丝

1

问答

0

专栏

0

资料

双鱼曦阳 2017-09-13 13:57:18
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=63939&ptid=10271]双鱼曦阳 发表于 2017-9-13 10:35[/url]
请问,我按照您的方法编译,如果加上——cvSaveImage这个函数就会出现:对‘cvSaveImage’未定义的引用, ...[/quote]

问题解决了,是链接库的时候顺序不对,参见[url]http://ebaina.com/bbs/forum.php?mod=viewthread&tid=7828&highlight=opencv[/url]

刘胜126

0个粉丝

18

问答

0

专栏

0

资料

刘胜126 2018-03-02 10:05:42
认可0
编译的时候怎么报cvSetImageData未定义的错误

qn1519888678

0个粉丝

2

问答

0

专栏

0

资料

qn1519888678 2018-12-21 15:32:04
认可0
这里的opencv是那个版本的

hero

0个粉丝

1

问答

0

专栏

0

资料

hero 2017-09-13 14:00:49
认可0
学习了......
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区