您的位置 首页 芯闻

Opencv移植和Zedboard测验

Opencv移植和Zedboard测试-继上次生成了ARM架构的链接库之后,我们要把他们拷贝到装载有文件系统的SD卡中即可,在拷贝时,最好是/usr/lib下

继前次生成了ARM架构的链接库之后,咱们要把他们复制到装载有文件体系的SD卡中即可,在复制时,最好是/usr/lib下

实践一:将那些lib复制到U盘里边,由于之前跑过demo,里边便是一个简易的linux体系,就暂时用他试试了,正常发动后,挂载U盘,这些在之前都有做过,mount /dev/sda1 /mnt复制文件夹 cp -R /mnt/lib /usr/ 成果呈现

提示空间缺乏,细心发现问题,发现这个ramdisk镜像最大只能有8M,而整个lib有10.3M,肯定会提示空间缺乏了,在看看/usr/lib下有哪些文件

发现复制了一些lib文件进来。这时就想到了实践二的办法、。

疑问:然后还有一个便是书上的一句话,假如你运用的是ramdisk文件体系,则需求在复制完Opencv链接库之后需求从头紧缩出一个镜像文件。(有待处理这个问题)

问题解说:来自于rainysky,用的体系是SD自带的那个精简版的体系,容量比较小,无法直接将编译的文件复制到里边,只能做一个镜像啦。

实践二:想运用单板机(光盘中第九章有)中的文件来试验一下,单板机的体系时linaro的体系,之前有一个sd卡现已做好了分区,在windows下只能读出第一个分区,第二个分区在windows下是读不出来的。将BOOT.BIN,zImage,devicetree.dtb,zynq-zed-adv7511.dtb复制到第一个分区,也便是FAT分区。将ubuntu-image.tar.gz在linux下复制到EXT4分区,可是成果发现这个体系时不能正常发动的,是否是由于需求PC的外设才干正常发动??(有待验证),现在只能是制造镜像了。原来是光盘供给的BOOT.BIN文件有问题,有待试验。

实践三:

制造镜像的办法:OpenCV库:

dd if=/dev/zero of=qt_lib.img bs=1M count=80//这儿的count与bs组合起来表明制造80M的镜像,详细能够依据实践链接库总的巨细来设置count

mkfs.ext2 -F cv_lib.img

chmod go+w cv_lib.img

mount cv_lib.img -o loop /mnt

//cp -rf $ZYNQ_QT_INSTALL/* /mnt (看你的装置的途径,我的是下面的)

cp –rf /home/xzy/Opencv2.3.1/install/* /mnt

chmod go-w cv_lib.imgumount /mntZedboard

测验留意穿插编辑器编译代码时要用-I 和-L来指定链接库的方位。等下帖过来

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

这儿运用的是书上的edge_detecTIon.cpp。

直接将库文件复制到sd卡就能够了,然后sd卡发动linux之后,进行如下操作:

mount /dev/mmcblk0p1 /mnt/ //挂载sd卡其他部分的东西,

ls能够看到镜像文件

mount /mnt/cv_lib.img /choose/a/directory/to/mount//接着下来设置动态链接库的途径,即LD_LIBRARY_PATH环境变量export LD_LIBRARY_PATH=/usr/lib 假如是这个途径(/usr/lib)就不用了,会自己查找。

前面都设置好了,运转的时分成果呈现error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory,经查验,假如用这个镜像运转的话,会呈现一个问题,便是在运转的时分找不到stdc++.so这个库,因而需求先将这个库copy到/home/xzy/opencv-2.3.1/install/lib,源文件在穿插编译器里边,总的指令为:cp /root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/libc/usr/lib/libstdc++.so* /home/xzy/opencv-2.3.1/install/lib)

然后从头制造镜像文件。至此名字叫opencv_lib.img,或许将这个库挂载到/usr/lib目录下也是能够的。我这儿从头制造镜像文件,搞定之后,挂载,运转./edge_detecTIon_arm lena.jpg lena_edge.jpg成果呈现的是Segmentation fault,怀疑是图片格式的问题,公然,换成了bmp图画今后,./edge_detection.o ./lena.bmp ./lena_edge.bmp,呈现的是sucessful,我就知道成功了,将生成的图片copy到U盘,到pc机上一看 至此,opencv移植到zedboard上是成功了。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/183753.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部