首先感谢阅读,如果您也对TDA4相关的开发感兴趣,我们这边有个学习交流微信群,可以入群和大家一起交流学习。
资历较浅,水平有限,如遇错误,请大家多指正!
保持开源精神,共同分享、进步!
博主WX : AIR_12 我会拉你入群。
链接:TDA4 相关专栏 链接:TDA4 Demo Gitee开源库
欢迎大家加入,一起维护这个开源库,给更多的朋友提供帮助。
很久之前写了一篇关于图像相关操作的博客,经过一段时间的研究,有了比较深入的了解,现在将比较系统的总结一下,并修正之前版本的一些错误。
一、创建图像
目前在官方给出的版本内,有以下几种方法可以实现创建图像的操作。

| 函数名 | 说明 | |
| vxCreateImage |
直接创建一个图像 | 根据图像格式定义 |
| vxCreateImageFromHandle |
从一个句柄中创建一个图像 | 可以是一个文件的句柄/或者另一个图像在内存内的指针索引 |
| vxCreateImageFromChannel |
从另一个图像的单个平面通道创建子图像。 子图像是指原始图像中的数据。 对此图像的更新会更新父图像,反之亦然。 该功能仅支持占据多平面图像整个平面的通道,如下所列。 不支持其他情况。 VX_CHANNEL_Y 来自 YUV4、IYUV、NV12、NV21 VX_CHANNEL_U 来自 YUV4、IYUV VX_CHANNEL_V 来自 YUV4、IYUV | 需要满足一定的条件 |
| vxCreateImageFromROI |
给定一个矩形,从另一个图像创建一个图像。 第二个参考是指原始图像中的数据。 对此图像的更新会更新父图像。 矩形必须在父图像的像素空间内定义。 | 从另一个图像内部截取或者复制整个图像 |
| vxCreateVirtualImage |
创建对图像缓冲区的不透明引用,用户无法直接访问。 此功能允许设置图像宽度、高度或格式。 | 暂时没研究 |
| vxCreateUniformImage |
创建对在所有像素中具有单一、统一值的图像对象的引用。 创建的统一图像是只读的。 | 暂时没研究 |
1、直接创建图像:
vx_image image = vxCreateImage(context, width, height, <FORMAT>);
vxCreateImage 用于创建图像,输入参数
context:上下文
widht:所需创建图像的宽度
height:所需创建图像的高度
<FORMAT>:所需创建图像的格式。(TDA4 所有支持的格式如下所示)
目前我们比较常用的是NV12格式的图片。
enum vx_df_image_e {
/*! \brief A virtual image of no defined type. */
VX_DF_IMAGE_VIRT = VX_DF_IMAGE('V','I','R','T'),
/*! \brief A single plane of 24-bit pixel as 3 interleaved 8-bit units of
* R then G then B data. This uses the BT709 full range by default.
*/
VX_DF_IMAGE_RGB = VX_DF_IMAGE('R','G','B','2'),
/*! \brief A single plane of 32-bit pixel as 4 interleaved 8-bit units of
* R then G then B data, then a <i>don't care</i> byte.
* This uses the BT709 full range by default.
*/
VX_DF_IMAGE_RGBX = VX_DF_IMAGE('R','G','B','A'),
/*! \brief A 2-plane YUV format of Luma (Y) and interleaved UV data at
* 4:2:0 sampling. This uses the BT709 full range by default.
*/
VX_DF_IMAGE_NV12 = VX_DF_IMAGE('N','V','1','2'),
/*! \brief A 2-plane YUV format of Luma (Y) and interleaved VU data at
* 4:2:0 sampl

&spm=1001.2101.3001.5002&articleId=122170313&d=1&t=3&u=b16406ea98064763a4bee7f2c5f02176)
2136

被折叠的 条评论
为什么被折叠?



