目前,y数据可以成功读取出来,就是uv数据出问题。出现的图片有些纵向压缩一半,不知道怎么回事,我调试代码,感觉没有错哈!代码如下:
pdata=ive_420_img->pu8VirAddr[1];
qdata=ive_444_img->pu8VirAddr[1];
for(HI_U16 i=0;i<ive_420_img->u16Height;i++)
{
for(HI_U16 j=0;j<ive_420_img->u16Stride[0];j++)
{
y_index=i*ive_420_img->u16Stride[0]+j;
uv_index=(i>>1)*(ive_420_img->u16Stride[0]>>1)+(j>>1);
qdata[y_index]=pdata[uv_index];
}
}
上面代码的意思是,将YUV420转化为YUV444,其中pdata直接指向的是420的U数据(源数据),qdata指向的是444的U数据(目的数据)。我用opencv显示U分量数据,结果见下:
(对不起图像传不上去:纵向压缩:正确转化后的坐标为(x,y),但是目前却显示在了(x,y/2)的位置,图像的分辨率不变,其余部分是以灰色填充的。大家帮忙分析一下什么问题?