
merz


3.8w 访问量
0 原创专栏
0 资料
1 粉丝
个性签名:此E友还没有留下个性签名哦~
加入易百纳时间:2019-08-22
-
请教大家,HI_IVS_MD_Process中的pstSad应该怎么输出。论坛里有关pstSad的帖子我也看了,可是还是不懂应该怎么用,有没有相关代码参考下呢:P2019-09-272 0 1901
-
主要是想实现用Mat加载一张彩色图像后转换成yuv420sp格式,不用memcpy,想请教大家应该怎么实现,有意者可以加Q 27160103492019-12-190 0 1751
-
本帖最后由 merz 于 2019-12-12 16:21 编辑 我参考海思提供的LKOpticalFlow.cpp的IveImage2Mat函数已经完成IveImage转成Mat格式的操作 海思提供的LKOpticalFlow.cpp的IveImage2Mat函数代码如下 [code]HI_VOID IveImage2Mat(IVE_SRC_IMAGE_S *pstSrc, Mat *dst) { if(dst->cols != pstSrc->u32Width || dst->rows != pstSrc->u32Height) { printf("width or height didn't equal,line:%d\n",__LINE__); return; } for(HI_U32 r=0; ru32Height; r++) { HI_U8 *ptm = dst->ptr(r); HI_U8 *pti = (HI_U8*)(pstSrc->au64VirAddr[0] + r * pstSrc->au32Stride[0]); { for(HI_U32 c=0; cu32Width; c++) { ptm[c] = pti[c]; } } } }[/code] 在3519A上对1280x720像素的图片操作一次为0.12秒,我又试着改动了代码。将按位赋值改为memcpy 我的代码如下 [code] static HI_VOID IveImage2Mat(IVE_SRC_IMAGE_S *pstSrc, Mat *dst) { HI_U32 u32Size; HI_U8 *pti = NULL; HI_U8 *ptm = NULL; if(dst->cols != pstSrc->u32Width || dst->rows != pstSrc->u32Height) { printf("width or height didn't equal,line:%d\n",__LINE__); return; } IVE_IMAGE_TYPE_E ImgType = pstSrc->enType; if(IVE_IMAGE_TYPE_U8C1 == ImgType) { u32Size = (pstSrc->au32Stride[0]) * (pstSrc->u32Height); } if(IVE_IMAGE_TYPE_U8C3_PACKAGE == ImgType) { u32Size = (pstSrc->au32Stride[0]) * (pstSrc->u32Height) * 3; } pti = (HI_U8*)(HI_UL)pstSrc->au64VirAddr[0]; ptm = dst->ptr(0); memcpy(ptm, pti, u32Size); // ptm = pti; } [/code] 改动后对720p的图像单次处理速度为5ms,对BGR格式图像单次处理速度为15ms。我又试着将memcpy改成直接把地址赋值过去,即 ptm = pti; 虽然可以编译成功,但是处理后的图像是全黑的。我想问一下大家,应该怎么样把mat的图像数据指针指向Ive_Image的地址,使2者共享同一内存。 【更新】 我尝试将mat 1的ptr直接用等号赋值给mat 2的ptr,将mat 2保存下来,图像依旧是全黑的。那么Mat b = a; 这种操作是怎么实现共享内存的呢2019-12-126 1 3278
-
本帖最后由 merz 于 2019-12-4 14:30 编辑 我现在已经可以在mpp目录下编译成功了,现在想单独编译一个含有ive算子的可执行程序,根据编译时的打印信息 [quote]arm-himix200-linux-gcc -Wall -g -I/nfs/ive_opencv/sample/../../mpp/include -Dhi3519av100 -DHI_XXXX -lpthread -lm -ldl -DISP_V2 -lstdc++ -mcpu=cortex-a53 -mfloat-abi=softfp -mfpu=neon-vfpv4 -fno-aggressive-loop-optimizations -ldl -ffunction-sections -fdata-sections -O2 -fstack-protector -fPIC -mcpu=cortex-a53 -mfloat-abi=softfp -mfpu=neon-vfpv4 -fno-aggressive-loop-optimizations -ldl -ffunction-sections -fdata-sections -O2 -fstack-protector -fPIC -Wall -DHI_RELEASE -Wno-error=implicit-function-declaration -DVER_X=1 -DVER_Y=0 -DVER_Z=0 -DVER_P=0 -DVER_B=10 -DUSER_BIT_32 -DKERNEL_BIT_32 -Wno-date-time -DSENSOR0_TYPE=SONY_IMX334_MIPI_8M_30FPS_12BIT -DSENSOR1_TYPE=SONY_IMX290_SLAVE_MIPI_2M_60FPS_10BIT -DSENSOR2_TYPE=SONY_IMX290_SLAVE_MIPI_2M_60FPS_10BIT -DSENSOR3_TYPE=SONY_IMX290_SLAVE_MIPI_2M_60FPS_10BIT -DSENSOR4_TYPE=SONY_IMX334_MIPI_8M_30FPS_12BIT -DHI_ACODEC_TYPE_INNER -DHI_ACODEC_TYPE_HDMI -I/nfs/ive_opencv/sample/svp/ive/../common -DSMP -I/nfs/ive_opencv/sample/svp/ive/sample -I/nfs/ive_opencv/sample/svp/ive/../../common -I/nfs/ive_opencv/sample/svp/ive/../../audio/adp -c -o sample_ive_main.o sample_ive_main.c [/quote] 我也编译出.o 文件,想再把.o文件编译出可执行文件时,提示有未定义的内容,尝试着静态链接libive.a,结果libive.a里有更多未定义的。想请教大家应该怎么样配置编译选项,还有海思的打印信息里的编译选项都是必须的吗?是否可以有所简化。2019-12-041 0 1922
-
在IVE中找到了HI_MPI_IVE_Add可以用来做加权加,但是它的控制参数IVE_ADD_CTRL_S不支持两个图像的加权系数之和大于65536 经过摸索,当2个系数为32768时,相当于 C = 0.5 * A + 0.5 * B。请问一下大家有没有解决的办法?2019-11-234 0 2564

共5条