ma7562042

ma7562042

0个粉丝

4

问答

0

专栏

0

资料

ma7562042  发布于  2017-03-01 17:04:08
采纳率 0%
4个问答
5605

求解!!!Hi3516A VPSS和VENC图像处理问题

 
最近需要用Hi3516A板子测试一些图像处理的问题。在文档中有讲在VPSS中支持对一副输入图像进行统一预处理,如去噪、去隔行等,然后再对各通道分别进行缩放、锐化等处理。但是我在自己进行测试的时候,发现很多功能都只能是必须设置为HI_FALSE。
比如HI_VPSS_GRP_ATTR_S结构体中,bIeEn,bDciEn,等成员只能被设置为HI_FALSE。
请问这些图形处理怎么进行实现?比如Cover,Border和Crop功能?
关于Crop问题:在文档中给的例子中只能将裁剪矩形的大小设置为比图像分辨率大。那这样子裁剪还有什么用呢?
我来回答
回答5个
时间排序
认可量排序

ma7562042

0个粉丝

4

问答

0

专栏

0

资料

ma7562042 2017-03-01 17:07:27
认可0
Crop问题的代码;
VPSS_GRP_ATTR_S stGrpVpssAttr;
VPSS_CHN_ATTR_S stChnAttr;
VPSS_CROP_INFO_S stCropInfo;
HI_S32 s32Ret = HI_SUCCESS;
VPSS_GRP VpssGrp;
VPSS_CHN VpssChn
  
VpssGrp = 0;
VpssChn = 0;
     
stGrpVpssAttr.u32MaxW = 720;
stGrpVpssAttr.u32MaxH = 576;
stGrpVpssAttr.bIeEn = HI_FALSE;
stGrpVpssAttr.bDciEn = HI_FALSE;
stGrpVpssAttr.bNrEn = HI_FALSE;
stGrpVpssAttr.bHistEn = HI_FALSE;
stGrpVpssAttr.enDieMode = VPSS_DIE_MODE_NODIE;
stGrpVpssAttr.enPixFmt = PIXEL_FORMAT_YUV_SEMIPLANAR_422;
     
s32Ret = HI_MPI_VPSS_CreateGrp(VpssGrp, &stGrpVpssAttr);
if(s32Ret != HI_SUCCESS)
{
  return s32Ret;
}
     
s32Ret = HI_MPI_VPSS_GetGrpAttr(VpssGrp, &stGrpVpssAttr);
if(s32Ret != HI_SUCCESS)
{
  return s32Ret;
}
     
stGrpVpssAttr.bIeEn = HI_FALSE;
stGrpVpssAttr.bNrEn = HI_TRUE;
s32Ret = HI_MPI_VPSS_SetGrpAttr(VpssGrp, &stGrpVpssAttr);
if(s32Ret != HI_SUCCESS)
{
  return s32Ret;
}
s32Ret = HI_MPI_VPSS_GetGrpCrop(VpssGrp, &stCropInfo);
if(s32Ret != HI_SUCCESS)
{
return s32Ret;
}
stCropInfo.bEnable = HI_TRUE;
stCropInfo.enCropCoordinate = VPSS_CROP_ABS_COOR;
stCropInfo.stCropRect.s32X = 180;
stCropInfo.stCropRect.s32Y = 252;
stCropInfo.stCropRect.u32Width = 1920;
stCropInfo.stCropRect.u32Height = 1080;
s32Ret = HI_MPI_VPSS_SetGrpCrop(VpssGrp, &stCropInfo);
if(s32Ret != HI_SUCCESS)
{
   return s32Ret;
}
s32Ret = HI_MPI_VPSS_GetChnAttr(VpssGrp, VpssChn,&stChn
if(s32Ret != HI_SUCCESS)
{
  return s32Ret;
}
stChnAttr.bFrameEn = 0;
stChnAttr.bSpEn = HI_FALSE;
s32Ret = HI_MPI_VPSS_SetChnAttr(VpssGrp, VpssChn,&stChn
if(s32Ret != HI_SUCCESS)
{
  return s32Ret;
}
s32Ret = HI_MPI_VPSS_EnableChn(VpssGrp, VpssChn);
if(s32Ret != HI_SUCCESS)
{
  return s32Ret;
}
  
s32Ret = HI_MPI_VPSS_StartGrp (VpssGrp);
if(s32Ret != HI_SUCCESS)
{
  return s32Ret;
}

它将VPSS组的分辨率设置为720*576,但是在后面裁剪的时候,裁剪区域大小确实1920*1080.这是为什么呢?
我自己将裁剪区域改小之后就会报get venc stream time out, exit thread错误。

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-03-02 15:36:24
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45828&ptid=14364]ma7562042 发表于 2017-3-1 17:07[/url]
Crop问题的代码;
VPSS_GRP_ATTR_S stGrpVpssAttr;
VPSS_CHN_ATTR_S stChnAttr;
[/quote]

看上去文档自相矛盾了

文档上
HI_MPI_VPSS_SetGrpCrop()

CROP 区域的尺寸不能小于VPSS 最小尺寸要求且不能超过VPSS 最大尺寸。

对比其他文档, 个人认为这个比较靠谱

ma7562042

0个粉丝

4

问答

0

专栏

0

资料

ma7562042 2017-03-04 16:42:59
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45946&ptid=14364]ligang04800605 发表于 2017-3-2 21:31[/url]
注意离线/在线模式[/quote]

使用的是离线模式

ma7562042

0个粉丝

4

问答

0

专栏

0

资料

ma7562042 2017-03-04 16:47:10
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=45901&ptid=14364]zhuangweiye 发表于 2017-3-2 15:36[/url]
看上去文档自相矛盾了

文档上
[/quote]

但是我的CROP区域的尺寸并没有超出这个范围,只是将Region区域改都改小了一点,就会报错。只能往大改。

ligang04800605

0个粉丝

1

问答

0

专栏

0

资料

ligang04800605 2017-03-02 21:31:56
认可0
注意离线/在线模式
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区