日期:2014-05-16 浏览次数:20448 次
由于在搞zedboard的时候想测试一下程序所用的时间,用到了下面两种方法。
方法一:利用time函数,不过这个是秒级的。
#include "time.h"
time_t start.end;
float total;
main()
{
start=tme(NULL);
........
end=time(NULL);
total=difftime(end,start);
printf("use time is %f",total);
}
测试发现为0.00000秒,因为程序所用时间非常短,用这个方法不行,改用gettimeofday。
方法二:
#include "sys/time.h"
#include "math.h"
main()
{
struct timeval start,end;
float total;
gettimeofday(&start,NULL);
........
gettimeofday(&end,NULL);
total=1000000*(end.tv_sec-start.tv_sec)+end.tv_usec-start.tv_usec;
printf("use time is %f\n",total);
}
注意上面是sys/time.h,而不是time.h。以上这两种方法都亲测可以用。
另外记录和复习今天工作的细节。
Opencv: 在pc机运行的时候敲击的指令
g++ `pkg-config --cflags opencv` -o edge_detection.o edge_detection.cpp `pkg-config --libs opencv`
交叉编译(zedboard运行下)的指令
arm-xilinx-linux-gnueabi-g++ -I /home/xzy/OpenCV-2.3.1/install/include -I/home/xzy/OpenCV-2.3.1/install/include/opencv -L /home/xzy/OpenCV-2.3.1/install/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann ./edge_detection.cpp -o ./edge_detection.o
另外还有注意事项就是一般这个程序都有带图片的参数,有时候忘记了会报出这样的错误。
zynq> ./edge_detection.o
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct null not valid
上面就是没有带参数。
QT:
在pc机运行的时候,在label静态显示一张图片,拖入,设置好大小,
在输入: ui->label->setPixmap(QPixmap("/opt/lena.bmp"))
ui->label->show();
但是要有读写这个照片的权限 哦,没有的话是不能显示的。
在zedboard上运行qt,交叉编译即可。