Установите OpenCV 2.4.9 на ARM

Как лучше всего установить OpenCV на ARM?

У меня есть BeagleBone Black с Linux Debian, и я пытаюсь установить OpenCV с помощью этот скрипт sh, но он очень тяжелый (выполняется более одного дня).

Я компилирую OpenCV на своей Ubuntu x86, используя этот мануал. работает нормально, но теперь я точно не знаю, какие файлы мне нужно скопировать на мой ARM для запуска исполняемых файлов C++ OpenCv, может ли кто-нибудь мне помочь?

Нужно ли мне устанавливать зависимости OpenCV (например, build-essential, cmake, python...) на ARM, если компилировать все на моем Ubuntu x86 с помощью gnueabi? Я хотел бы узнать более легкий способ запуска исполняемого файла C++ OpenCV на моем BeagleBone Black.

Большое спасибо.


person user1851885    schedule 05.11.2014    source источник
comment
Попробуйте Buildroot. Он предоставляет как цель BB (ядро, rootfs), так и последнюю версию OpenCV.   -  person yegorich    schedule 06.11.2014


Ответы (1)


Если вы просто хотите запустить приложение OpenCV, вам не нужны инструменты разработки (build-essential, cmake, python, g++,...).

Короткий ответ: вам нужно скопировать все общие библиотеки OpenCV (файлы .so) на устройство, а также все общие библиотеки, от которых зависит OpenCV.

Длинный ответ: вам, вероятно, не нужны все общие библиотеки OpenCV для запуска вашего приложения. После того, как вы скомпилировали свою собственную программу OpenCV, вы можете использовать ldd, чтобы выяснить, какие общие библиотеки OpenCV ей нужны, а затем снова использовать ldd для каждой из них, чтобы выяснить ее зависимости.

Этот сценарий может подсказать вам, как автоматизировать этот процесс:

#!/bin/bash 
# Author : Hemanth.HM
# Email : hemanth[dot]hm[at]gmail[dot]com
# License : GNU GPLv3
#

function useage()
{
    cat << EOU
Useage: bash $0 <path to the binary> <path to copy the dependencies>
EOU
exit 1
}

#Validate the inputs
[[ $# < 2 ]] && useage

#Check if the paths are vaild
[[ ! -e $1 ]] && echo "Not a vaild input $1" && exit 1 
[[ -d $2 ]] || echo "No such directory $2 creating..."&& mkdir -p "$2"

#Get the library dependencies
echo "Collecting the shared library dependencies for $1..."
deps=$(ldd $1 | awk 'BEGIN{ORS=" "}$1\
~/^\//{print $1}$3~/^\//{print $3}'\
 | sed 's/,$/\n/')
echo "Copying the dependencies to $2"

#Copy the deps
for dep in $deps
do
    echo "Copying $dep to $2"
    cp "$dep" "$2"
done

echo "Done!"
person karlphillip    schedule 07.11.2014