我是一名本科在校生,目前正在在学习开发DM6446,做人脸识别的毕业设计。
DM6446是DSP/ARM双核处理器,ARM端的例程分为codecs、servers、*_app(比如video_osd_app)三个文件夹。
我想在不改变例程框架的前提下,修改、添加上我的算法。经过自己的研究,servers文件夹下有个img64x.lib文件,里面包含了很多算法,并且这个文件就是CCS软件自带的库(具体目录是C:\CCStudio_v3.3\c6400\imglib\lib,并且还提供了一些源代码)。
问题是这个img64x.lib库是怎么生成的?我想修改源代码中部分函数的算法,可是编译都通不过。
另外,我通过修改lib来添加自己的算法实现人脸识别,这个方法是否可行?或者有没有其他更好的方法?
Chris Meng:
Xu Zhenhua,
Image lib提供的库不提供源码,你可以使用库里面提供的API。
Zhenhua Xu:
回复 Chris Meng:
那请教一下如何封装一个符合xDM标准lib库?
我自己在CCS下封装一个lib算法,比如
void IMG_sobel( const unsigned char *restrict in, /* Input image data */ unsigned char *restrict out, /* Output image data */ short cols, short rows /* Image dimensions */){ int H, O, V, i; int i00, i01, i02; int i10, i12; int i20, i21, i22; int w = cols;
for (i = 0; i < cols*(rows-2) – 2; i++) { i00=in[i ]; i01=in[i +1]; i02=in[i +2]; i10=in[i+ w]; i12=in[i+ w+2]; i20=in[i+2*w]; i21=in[i+2*w+1]; i22=in[i+2*w+2];
H = – i00 – 2*i01 – i02 + + i20 + 2*i21 + i22;
V = – i00 + i02 – 2*i10 + 2*i12 – i20 + i22;
O = abs(H) + abs(V);
if (O > 255) O = 255;
out[i + 1] = O; }}
编译后生成*.lib文件成功了,然后在linux下封装成*.x64P却失败了。
是不是编译lib时出错了?
Chris Meng:
回复 Zhenhua Xu:
Xu Zhenhua,
请问你是想封装成codec server么?较新的CE支持IUNIVERSAL的接口。
http://processors.wiki.ti.com/index.php/Getting_started_with_IUNIVERSAL