Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以将openCV库与Catapult C一起使用吗?_Opencv_Image Processing_Fpga_Face Recognition_Hardware Design - Fatal编程技术网

我可以将openCV库与Catapult C一起使用吗?

我可以将openCV库与Catapult C一起使用吗?,opencv,image-processing,fpga,face-recognition,hardware-design,Opencv,Image Processing,Fpga,Face Recognition,Hardware Design,我的最终目标是在Altera DE2 FPGA上实现人脸/目标检测和通用图像处理应用。我使用Catapult C来编程FPGA(因此我使用的是C代码,而不是Verilog或VHDL) 我的问题是Catapult C是否支持openCV库,以及关于如何安装库以便它们在Catapult中运行的任何提示/链接。有什么特别的考虑吗?搜索了Google和stackoverflow,但还没有找到运气。 谢谢。我甚至不会尝试为FPGA执行目标编译OpenCV源代码。在OpenCV(或任何大型以微处理器为目标的

我的最终目标是在Altera DE2 FPGA上实现人脸/目标检测和通用图像处理应用。我使用Catapult C来编程FPGA(因此我使用的是C代码,而不是Verilog或VHDL)

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

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

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

dpointer@death:~$ 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)
dpointer@death:~$ 
如果您想在FPGA系统上编译和使用OpenCV,那么您也需要为FPGA编译所有这些库代码。您需要一个FPGA系统运行时环境,以确保当您的代码在FPGA系统上运行时,FPGA上的这些库是可用的

这是一项艰巨的任务——您必须编译OpenCV使用的所有库、这些库所需的所有库、OpenCV本身以及顶级应用程序代码。哦,为您的FPGA系统编写一个运行时环境。即使您可以编译所有这些,它也不适合FPGA资源


另一方面,您可以编写顶级C代码和任何需要的图像处理C代码,并为FPGA系统编译这些代码。OpenCV源代码是如何为FPGA目标实现各种图像处理算法的优秀参考工具

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

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

dpointer@death:~$ 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)
dpointer@death:~$ 
如果您想在FPGA系统上编译和使用OpenCV,那么您也需要为FPGA编译所有这些库代码。您需要一个FPGA系统运行时环境,以确保当您的代码在FPGA系统上运行时,FPGA上的这些库是可用的

这是一项艰巨的任务——您必须编译OpenCV使用的所有库、这些库所需的所有库、OpenCV本身以及顶级应用程序代码。哦,为您的FPGA系统编写一个运行时环境。即使您可以编译所有这些,它也不适合FPGA资源


另一方面,您可以编写顶级C代码和任何需要的图像处理C代码,并为FPGA系统编译这些代码。OpenCV源代码是如何为FPGA目标实现各种图像处理算法的优秀参考工具

我明白了,谢谢。然而,我并没有真正得到“提取……合理目标”部分。这意味着我首先在计算机上正常编译,然后为FPGA调整算法?@Chris-我的意思是你需要编写图像处理代码,而不是简单地重新编译所有OpenCV C代码。我修改了我的答案,以概述我认为你的建议的复杂性和重要性。现在更清楚了,再次感谢你提供的额外信息。我将坚持使用简单的C代码。@Chris-不客气。谢谢你要求澄清!我明白了,谢谢。然而,我并没有真正得到“提取……合理目标”部分。这意味着我首先在计算机上正常编译,然后为FPGA调整算法?@Chris-我的意思是你需要编写图像处理代码,而不是简单地重新编译所有OpenCV C代码。我修改了我的答案,以概述我认为你的建议的复杂性和重要性。现在更清楚了,再次感谢你提供的额外信息。我将坚持使用简单的C代码。@Chris-不客气。谢谢你要求澄清!