软硬件清单
SDSoC
Zybo Z7
包括Linux内核+根文件体系的渠道
装有Linux体系的计算机
获取OpenCV
这一步你至少能够有两个挑选,一种是下载并穿插编译库(docs.opencv.org/2.4/doc/tutorials/introducTIon/crosscompilaTIon/arm_crosscompile_with_cmake);第二种是获取一个现已穿插编译好的库。在这一教程中,咱们事前现已在SDSoC装置文件夹中树立好了OpenCV 2.4.5版别。
修正渠道
这儿咱们需求将编译好的库增加到你想要用于项目的SDSoC渠道的根文件体系中。在这步操作之后,可履行文件(你的应用程序)将能够加载库。 在Zybo Z7渠道中运用的文件体系镜像类型是initramfs。假如你手头的是另一种镜像类型,你能够在Xilinx wiki上得到更多的所需信息:+and+Modify+a+Rootfs
3.1 将根文件体系仿制到临时文件夹中
将坐落渠道的发动文件夹中名为“uramdisk.image.gz”的存档仿制黏贴到一个临时文件夹中。翻开终端,并进入该文件夹。
3.2 去掉U-BOOT头文件以取得CPIO存档
dd if=uramdisk.image.gz bs=64 skip=1 of=ramdisk.gz
3.3 将新的CPIO存档压缩到一个新创立的文件夹中
mkdir my_root
gunzip -c ramdisk.gz | sh -c ‘cd my_root/ && sudo cpio -i’
3.4 仿制库与头文件(-P保存链接)
sudo cp -p /opt/Xilinx/SDSoC/2015.4/SDK/2015.4/data/embeddedsw/ThirdParty/opencv/lib/* my_root/lib/
sudo cp -r /opt/Xilinx/SDSoC/2015.4/SDK/2015.4/data/embeddedsw/ThirdParty/opencv/include/* my_root/usr/include/
3.5 压缩到CPIO和GUNZIP
sudo sh -c ‘cd my_root/ && find 。 | cpio -H newc -o’ | gzip -9 》 my_ramdisk.image.gz
3.6 增加U-BOOT头文件
mkimage -A arm -T ramdisk -C gzip -d my_ramdisk.image.gz my_uramdisk.image.gz
这儿需求保证文件的权限设置为755:
sudo chmod 755 。/my_uramdisk.image.gz
3.7 在渠道中替换新创立的镜像
cp 。/my_uramdisk.image.gz /pathToZyboPlatform/boot/uramdisk.image.gz
在SDSoC中创立并装备一个新项目
4.1 增加包括途径
创立一个新项目,挑选你修正后的渠道,然后挑选你想要运用Linux。在project explorer(左边面板)中右键单击项目,然后点击特点。 进入“C/C ++ build” – 》“设置” – 》 “SDS ++编译器” – 》“目录”,为所选的“build/debug/esTImate装备”增加OpenCV的包括途径(/opt/Xilinx/SDSoC/2015.4/SDK/2015.4/data/embeddedsw/ThirdParty/opencv/include),如下图所示:
4.2 链接库
完结后,转到SDS ++ linker‘s configuraTIon,在“库”下,增加要在项目中运用的库及其地点的途径(我这儿是:/opt/Xilinx/SDSoC/2015.4/SDK/2015.4/data/embeddedsw/ThirdParty/opencv/lib)
4.3 增加-RPATH-LINK
最终,你需求指定途径,使得链接器能够查找OpenCV所需的依靠联系(libs)。 转到SDS ++linker configuration,在“Miscellaneous” – 》“Linker Flag”下增加以下行(-Wl,-rpath-link = / opt / Xilinx / SDSoC / 2015.4 / SDK / 2015.4 / data / embeddedsw / ThirdParty / opencv /LIB)。 -Wl选项向东西链标明选项-rpath-link = 。。。将被提供给链接器。
进行测验
到这儿,咱们就要进行本文中最令人兴奋的部分:测验! 以下代码将对一张图画进行FAST特征点检测:
创立你的程序,完结之后将“sd_card”文件夹中的内容仿制到方针SD卡中,这儿不要忘记在根目录下增加一个测验图画(有爱好测验的朋友,能够点击阅览原文,获取本教程所运用的图画源文件)。
boot操作完结后,运用以下指令在方针上运转可履行文件:
cd /mnt
。/00_ocv_helloworld.elf Buildings.jpg ocv.jpg
假如一切顺利的话,则可履行文件会生成一个输出图画“ocv.jpg”,如下所示:
总结
咱们将构建的库增加到SDSoC渠道中运用的Linux根文件体系中。然后,咱们根据这个新的SDSoC渠道装备了一个新的项目,其间包括正确的包括途径和链接。
到这儿,你就能够随意运用OpenCV啦!