parent
5e4ca22737
commit
6aea54e308
6 changed files with 153 additions and 0 deletions
@ -0,0 +1,45 @@ |
||||
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) |
||||
|
||||
IF( NOT PROJECT_NAME ) |
||||
IF ( NOT "x$ENV{PROJECT_NAME}" STREQUAL "x" ) |
||||
SET( PROJECT_NAME $ENV{PROJECT_NAME} ) |
||||
ELSE() |
||||
SET( PROJECT_NAME HelloAndroid ) |
||||
ENDIF() |
||||
ENDIF() |
||||
SET( PROJECT_NAME ${PROJECT_NAME} CACHE STRING "The name of your project") |
||||
|
||||
PROJECT( ${PROJECT_NAME} ) |
||||
|
||||
######################################################### |
||||
# Find OpenCV |
||||
######################################################### |
||||
|
||||
SET( OpenCV_DIR ${CMAKE_SOURCE_DIR}/../../build CACHE PATH "The path where you built opencv for android" ) |
||||
FIND_PACKAGE( OpenCV REQUIRED ) |
||||
|
||||
######################################################### |
||||
# c/c++ flags, includes and lib dependencies |
||||
######################################################### |
||||
|
||||
#notice the "recycling" of CMAKE_C_FLAGS |
||||
#this is necessary to pick up android flags |
||||
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -pedantic" ) |
||||
SET( CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} -Wall -pedantic" ) |
||||
|
||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) |
||||
|
||||
SET( LIBRARY_DEPS ${OpenCV_LIBS} ) |
||||
IF( ANDROID ) |
||||
SET( LIBRARY_DEPS ${LIBRARY_DEPS} log dl ) |
||||
ENDIF() |
||||
|
||||
######################################################### |
||||
# source files |
||||
######################################################### |
||||
|
||||
FILE( GLOB hdrs "*.h*" ) |
||||
FILE( GLOB srcs "*.cpp" ) |
||||
|
||||
ADD_EXECUTABLE( ${PROJECT_NAME} ${srcs} ) |
||||
TARGET_LINK_LIBRARIES( ${PROJECT_NAME} ${LIBRARY_DEPS} ) |
@ -0,0 +1,7 @@ |
||||
@ECHO OFF |
||||
SETLOCAL |
||||
PUSHD %~dp0 |
||||
SET PROJECT_NAME=HelloAndroid |
||||
CALL ..\..\scripts\build.cmd %* |
||||
POPD |
||||
ENDLOCAL |
@ -0,0 +1,12 @@ |
||||
#!/bin/sh |
||||
cd `dirname $0` |
||||
|
||||
BUILD_DIR=build_armeabi |
||||
opencv_android=`pwd`/../.. |
||||
opencv_build_dir=$opencv_android/$BUILD_DIR |
||||
|
||||
mkdir -p $BUILD_DIR |
||||
cd $BUILD_DIR |
||||
|
||||
cmake -DOpenCV_DIR=$opencv_build_dir -DARM_TARGET=armeabi -DCMAKE_TOOLCHAIN_FILE=$opencv_android/android.toolchain.cmake .. |
||||
|
@ -0,0 +1,26 @@ |
||||
#include <opencv2/core/core.hpp> |
||||
#include <opencv2/highgui/highgui.hpp> |
||||
|
||||
using namespace cv; |
||||
const char* message = "Hello Android!"; |
||||
|
||||
int main(int argc, char* argv[]) |
||||
{ |
||||
// print message to console
|
||||
printf("%s\n", message); |
||||
|
||||
// put message to simple image
|
||||
Size textsize = getTextSize(message, CV_FONT_HERSHEY_COMPLEX, 3, 5, 0); |
||||
Mat img(textsize.height + 20, textsize.width + 20, CV_32FC1, Scalar(230,230,230)); |
||||
putText(img, message, Point(10, img.rows - 10), CV_FONT_HERSHEY_COMPLEX, 3, Scalar(0, 0, 0), 5); |
||||
|
||||
// save\show resulting image
|
||||
#if ANDROID |
||||
imwrite("/mnt/sdcard/HelloAndroid.png", img); |
||||
#else |
||||
imshow("test", img); |
||||
waitKey(); |
||||
#endif |
||||
return 0; |
||||
} |
||||
|
@ -0,0 +1,48 @@ |
||||
:: this batch file copies compiled executable to the device, |
||||
:: runs it and gets resulting image back to the host |
||||
:: |
||||
:: Here is sample output of successful run: |
||||
:: |
||||
:: 204 KB/s (2887388 bytes in 13.790s) |
||||
:: Hello Android! |
||||
:: 304 KB/s (8723 bytes in 0.028s) |
||||
|
||||
@ECHO OFF |
||||
|
||||
:: enable command extensions |
||||
VERIFY BADVALUE 2>NUL |
||||
SETLOCAL ENABLEEXTENSIONS || (ECHO Unable to enable command extensions. & EXIT \B) |
||||
|
||||
PUSHD %~dp0 |
||||
SET PROJECT_NAME=HelloAndroid |
||||
|
||||
:: try to load config file |
||||
SET CFG_PATH=..\..\scripts\wincfg.cmd |
||||
IF EXIST %CFG_PATH% CALL %CFG_PATH% |
||||
|
||||
:: check if sdk path defined |
||||
IF NOT DEFINED ANDROID_SDK (ECHO. & ECHO You should set an environment variable ANDROID_SDK to the full path to your copy of Android SDK & GOTO end) |
||||
(PUSHD "%ANDROID_SDK%" 2>NUL && POPD) || (ECHO. & ECHO Directory "%ANDROID_SDK%" specified by ANDROID_SDK variable does not exist & GOTO end) |
||||
SET adb=%ANDROID_SDK%\platform-tools\adb.exe |
||||
|
||||
:: copy file to device (usually takes 10 seconds or more) |
||||
%adb% push .\bin\armeabi\%PROJECT_NAME% /data/bin/sample/%PROJECT_NAME% || GOTO end |
||||
|
||||
:: set execute permission |
||||
%adb% shell chmod 777 /data/bin/sample/%PROJECT_NAME% || GOTO end |
||||
|
||||
:: execute our application |
||||
%adb% shell /data/bin/sample/%PROJECT_NAME% || GOTO end |
||||
|
||||
:: get image result from device |
||||
%adb% pull /mnt/sdcard/HelloAndroid.png || GOTO end |
||||
|
||||
GOTO end |
||||
|
||||
:: cleanup (comment out GOTO above to enable cleanup) |
||||
%adb% shell rm /data/bin/sample/%PROJECT_NAME% |
||||
%adb% shell rm /mnt/sdcard/HelloAndroid.png |
||||
|
||||
:end |
||||
POPD |
||||
ENDLOCAL |
@ -0,0 +1,15 @@ |
||||
#!/bin/sh |
||||
cd `dirname $0` |
||||
PROJECT_NAME=HelloAndroid |
||||
|
||||
# copy file to device (usually takes 10 seconds or more) |
||||
adb push ./bin/armeabi/$PROJECT_NAME /data/bin/sample/$PROJECT_NAME || return |
||||
|
||||
# set execute permission |
||||
adb shell chmod 777 /data/bin/sample/$PROJECT_NAME || return |
||||
|
||||
# execute our application |
||||
adb shell /data/bin/sample/$PROJECT_NAME || return |
||||
|
||||
# get image result from device |
||||
adb pull /mnt/sdcard/HelloAndroid.png || return |
Loading…
Reference in new issue