前言
操作过程
NCNN:
https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux-x86;
vector初始化:
int num[4] = { 1, 4, 3, 2 };
int numLength = sizeof(num) / sizeof(num[0]);
vector<int> nums(num, num + numLength); //使用数组初始化向量
Q:
make[2]: *** No rule to make target 'ncnn/src/libncnn.a', needed by 'mtcnn'. Stop.
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/mtcnn.dir/all' failed
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/mtcnn.dir/all' failed
A:
No rule to make target `XXX'.
No rule to make target ` XXX ', needed by `yyy'.
无法为重建目标“XXX”找到合适的规则,包括明确规则和隐含规则。
修正这个错误的方法是:在Makefile中添加一个重建目标的规则。其它可能导致这些错误的原因是Makefile中文件名拼写错误,或者破坏了源文件树(一个文件不能被重建,可能是由于依赖文件的问题)。
No rule to make target ` XXX ', needed by `yyy'.
无法为重建目标“XXX”找到合适的规则,包括明确规则和隐含规则。
修正这个错误的方法是:在Makefile中添加一个重建目标的规则。其它可能导致这些错误的原因是Makefile中文件名拼写错误,或者破坏了源文件树(一个文件不能被重建,可能是由于依赖文件的问题)。
仔细检查之后发现是文件路径不对;需要将libncnn.a文件复制到需要的文件目录;
cmake之后需要将./MTCNN_cpuimage/ncnn/build/src目录下的libncnn.a文件复制到./MTCNN_cpuimage/build/ncnn/src目录下,才可以正常make编译;
Q:
/home/rjzheng/uisee/code/MTCNN/MTCNN_cpuimage/src/main.cpp:
In function ‘void saveImage(const char*, int, int, int, unsigned
char*)’:
/home/rjzheng/uisee/code/MTCNN/MTCNN_cpuimage/src/main.cpp:57:20: error: ‘browse’ was not declared in this scope
browse(saveFile);
/home/rjzheng/uisee/code/MTCNN/MTCNN_cpuimage/src/main.cpp:57:20: error: ‘browse’ was not declared in this scope
browse(saveFile);
A:
static函数的定义位于头文件中,在main文件中调用,这种可以直接调用吗???我将该函数直接添加到main文件中可以编译通过,这可以证明该函数再头文件中不能直接被拿来调用;
struct Bbox {
float score;
int x1;
int y1;
int x2;
int y2;
float area;
float ppoint[10];
float regreCoord[4];
};
运行
$./mtcnn ../models/ ../sample.jpg
参考
2. https://github.com/cpuimage/MTCNN;
3. NCNN_github;
完