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

相關問題