1

我的最终目标是在Altera DE2 FPGA上进行人脸检测和通用图像处理应用。我使用Catapult C来编程FPGA(所以我使用的是C代码,而不是Verilog或VHDL)。我可以在Catapult C上使用openCV库吗?

我的问题是如果Catapult C支持openCV库,以及有关如何安装库以便它们在Catapult内运行的任何提示/链接。有什么特别的考虑吗?搜索谷歌和stackoverflow,但没有运气。 谢谢。

回答

1

我甚至不会尝试编译FPGA执行目标的OpenCV源代码。在OpenCV中(或任何大型微处理器目标代码库),有太多的库依赖性和面向微处理器体系结构的假设。

在任何系统上都有编译时和运行时库。举一个例子,如果我们看一下OpenCV的共享库的运行时库的依赖,有许多微处理器代码库的OpenCV本身使用:

[email protected]:~$ ldd /usr/lib/libcv.so 
linux-vdso.so.1 => (0x00007fff1c1ff000) 
libcxcore.so.4 => /usr/lib/libcxcore.so.4 (0x00007f03279f7000) 
libavformat.so.52 => /usr/lib/libavformat.so.52 (0x00007f0327701000) 
libavcodec.so.52 => /usr/lib/libavcodec.so.52 (0x00007f0326ca7000) 
librt.so.1 => /lib/librt.so.1 (0x00007f0326a9f000) 
libz.so.1 => /lib/libz.so.1 (0x00007f0326888000) 
libdl.so.2 => /lib/libdl.so.2 (0x00007f0326683000) 
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f032636f000) 
libm.so.6 => /lib/libm.so.6 (0x00007f03260ec000) 
libgomp.so.1 => /usr/lib/libgomp.so.1 (0x00007f0325edd000) 
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f0325cc0000) 
libc.so.6 => /lib/libc.so.6 (0x00007f032593a000) 
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f0325722000) 
libavutil.so.49 => /usr/lib/libavutil.so.49 (0x00007f0325513000) 
libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x00007f0325302000) 
libgsm.so.1 => /usr/lib/libgsm.so.1 (0x00007f03250f3000) 
libschroedinger-1.0.so.0 => /usr/lib/libschroedinger-1.0.so.0 (0x00007f0324e74000) 
libspeex.so.1 => /usr/lib/libspeex.so.1 (0x00007f0324c5a000) 
libtheora.so.0 => /usr/lib/libtheora.so.0 (0x00007f0324a0b000) 
libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00007f0324630000) 
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007f0324403000) 
/lib64/ld-linux-x86-64.so.2 (0x00007f03282f1000) 
liboil-0.3.so.0 => /usr/lib/liboil-0.3.so.0 (0x00007f0324172000) 
libogg.so.0 => /usr/lib/libogg.so.0 (0x00007f0323f6b000) 
[email protected]:~$ 

如果你想编译和FPGA系统上使用OpenCV的,您也需要编译FPGA的所有库代码。而且您需要一个FPGA系统运行时环境,以确保您的代码在FPGA系统上运行时,FPGA上的这些库可用。

这是一项艰巨的任务 - 您必须编译OpenCV使用的所有库,这些库所需的所有库,OpenCV本身以及顶级应用程序代码。哦,并为您的FPGA系统编写运行环境。即使您可以编译所有这些,也不适合FPGA资源。另一方面,您可以编写顶级C代码和任何所需的图像处理C代码,并编译为FPGA系统。 OpenCV源代码是如何为FPGA目标实现各种图像处理算法的杰出参考工具。

+0

我明白了,谢谢。然而,我并没有真正获得“提取...合理的目标”部分。这意味着我首先在计算机上正常编译,然后调整我的FPGA算法? – Chris 2013-04-27 08:21:44

+0

@Chris - 我的意思是你需要编写图像处理代码,而不是简单地重新编译所有的OpenCV C代码。我修改了我的答案,以概述我认为你提议的复杂性和规模。 – 2013-04-29 14:33:08

+0

现在更清楚了,再次感谢您的额外信息。我会坚持简单的C代码。 – Chris 2013-04-29 18:33:17

相关问题