parent
60906d9175
commit
b3eee49451
14 changed files with 480 additions and 0 deletions
@ -0,0 +1,8 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<classpath> |
||||||
|
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> |
||||||
|
<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> |
||||||
|
<classpathentry kind="src" path="src"/> |
||||||
|
<classpathentry kind="src" path="gen"/> |
||||||
|
<classpathentry kind="output" path="bin/classes"/> |
||||||
|
</classpath> |
@ -0,0 +1,76 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
||||||
|
<?fileVersion 4.0.0?> |
||||||
|
|
||||||
|
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> |
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.settings"> |
||||||
|
<cconfiguration id="0.1227367918"> |
||||||
|
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="0.1227367918" moduleId="org.eclipse.cdt.core.settings" name="Default"> |
||||||
|
<externalSettings/> |
||||||
|
<extensions> |
||||||
|
<extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
||||||
|
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
||||||
|
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> |
||||||
|
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
||||||
|
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
||||||
|
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> |
||||||
|
</extensions> |
||||||
|
</storageModule> |
||||||
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> |
||||||
|
<configuration artifactName="${ProjName}" buildProperties="" description="" id="0.1227367918" name="Default" parent="org.eclipse.cdt.build.core.prefbase.cfg"> |
||||||
|
<folderInfo id="0.1227367918." name="/" resourcePath=""> |
||||||
|
<toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.1817556292" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain"> |
||||||
|
<targetPlatform id="org.eclipse.cdt.build.core.prefbase.toolchain.1817556292.437475188" name=""/> |
||||||
|
<builder autoBuildTarget="" command="${NDKROOT}/ndk-build.cmd" enableAutoBuild="true" enableCleanBuild="false" id="org.eclipse.cdt.build.core.settings.default.builder.141883337" incrementalBuildTarget="" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/> |
||||||
|
<tool id="org.eclipse.cdt.build.core.settings.holder.libs.914869649" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/> |
||||||
|
<tool id="org.eclipse.cdt.build.core.settings.holder.1504728878" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder"> |
||||||
|
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1470189286" languageId="org.eclipse.cdt.core.assembly" languageName="Assembly" sourceContentType="org.eclipse.cdt.core.asmSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/> |
||||||
|
</tool> |
||||||
|
<tool id="org.eclipse.cdt.build.core.settings.holder.260316541" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder"> |
||||||
|
<option id="org.eclipse.cdt.build.core.settings.holder.symbols.892620793" superClass="org.eclipse.cdt.build.core.settings.holder.symbols" valueType="definedSymbols"> |
||||||
|
<listOptionValue builtIn="false" value="ANDROID=1"/> |
||||||
|
</option> |
||||||
|
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.1772035264" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath"> |
||||||
|
<listOptionValue builtIn="false" value=""${NDKROOT}/platforms/android-9/arch-arm/usr/include""/> |
||||||
|
<listOptionValue builtIn="false" value=""${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/include""/> |
||||||
|
<listOptionValue builtIn="false" value=""${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include""/> |
||||||
|
<listOptionValue builtIn="false" value=""${CUDA_TOOLKIT_ROOT}/include""/> |
||||||
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/../../sdk/native/jni/include""/> |
||||||
|
</option> |
||||||
|
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.159439464" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/> |
||||||
|
</tool> |
||||||
|
<tool id="org.eclipse.cdt.build.core.settings.holder.1147885196" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder"> |
||||||
|
<option id="org.eclipse.cdt.build.core.settings.holder.symbols.1153621931" superClass="org.eclipse.cdt.build.core.settings.holder.symbols" valueType="definedSymbols"> |
||||||
|
<listOptionValue builtIn="false" value="ANDROID=1"/> |
||||||
|
</option> |
||||||
|
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.1841493632" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath"> |
||||||
|
<listOptionValue builtIn="false" value=""${NDKROOT}/platforms/android-9/arch-arm/usr/include""/> |
||||||
|
<listOptionValue builtIn="false" value=""${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/include""/> |
||||||
|
<listOptionValue builtIn="false" value=""${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include""/> |
||||||
|
<listOptionValue builtIn="false" value=""${CUDA_TOOLKIT_ROOT}/include""/> |
||||||
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/../../sdk/native/jni/include""/> |
||||||
|
</option> |
||||||
|
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.608739504" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" sourceContentType="org.eclipse.cdt.core.cSource,org.eclipse.cdt.core.cHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/> |
||||||
|
</tool> |
||||||
|
</toolChain> |
||||||
|
</folderInfo> |
||||||
|
<sourceEntries> |
||||||
|
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="jni"/> |
||||||
|
</sourceEntries> |
||||||
|
</configuration> |
||||||
|
</storageModule> |
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> |
||||||
|
</cconfiguration> |
||||||
|
</storageModule> |
||||||
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> |
||||||
|
<project id="OpenCV Tutorial 4 - CUDA OpenCV.null.1819504790" name="OpenCV Tutorial 4 - CUDA"/> |
||||||
|
</storageModule> |
||||||
|
<storageModule moduleId="scannerConfiguration"> |
||||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> |
||||||
|
<scannerConfigBuildInfo instanceId="0.1227367918"> |
||||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> |
||||||
|
</scannerConfigBuildInfo> |
||||||
|
</storageModule> |
||||||
|
<storageModule moduleId="refreshScope" versionNumber="1"> |
||||||
|
<resource resourceType="PROJECT" workspacePath="/OpenCV Tutorial 4 - CUDA"/> |
||||||
|
</storageModule> |
||||||
|
</cproject> |
@ -0,0 +1,101 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<projectDescription> |
||||||
|
<name>OpenCV Tutorial 4 - CUDA</name> |
||||||
|
<comment></comment> |
||||||
|
<projects> |
||||||
|
</projects> |
||||||
|
<buildSpec> |
||||||
|
<buildCommand> |
||||||
|
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> |
||||||
|
<triggers>auto,full,incremental,</triggers> |
||||||
|
<arguments> |
||||||
|
<dictionary> |
||||||
|
<key>?name?</key> |
||||||
|
<value></value> |
||||||
|
</dictionary> |
||||||
|
<dictionary> |
||||||
|
<key>org.eclipse.cdt.make.core.append_environment</key> |
||||||
|
<value>true</value> |
||||||
|
</dictionary> |
||||||
|
<dictionary> |
||||||
|
<key>org.eclipse.cdt.make.core.autoBuildTarget</key> |
||||||
|
<value></value> |
||||||
|
</dictionary> |
||||||
|
<dictionary> |
||||||
|
<key>org.eclipse.cdt.make.core.buildArguments</key> |
||||||
|
<value></value> |
||||||
|
</dictionary> |
||||||
|
<dictionary> |
||||||
|
<key>org.eclipse.cdt.make.core.buildCommand</key> |
||||||
|
<value>${NDKROOT}/ndk-build.cmd</value> |
||||||
|
</dictionary> |
||||||
|
<dictionary> |
||||||
|
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key> |
||||||
|
<value>clean</value> |
||||||
|
</dictionary> |
||||||
|
<dictionary> |
||||||
|
<key>org.eclipse.cdt.make.core.contents</key> |
||||||
|
<value>org.eclipse.cdt.make.core.activeConfigSettings</value> |
||||||
|
</dictionary> |
||||||
|
<dictionary> |
||||||
|
<key>org.eclipse.cdt.make.core.enableAutoBuild</key> |
||||||
|
<value>true</value> |
||||||
|
</dictionary> |
||||||
|
<dictionary> |
||||||
|
<key>org.eclipse.cdt.make.core.enableCleanBuild</key> |
||||||
|
<value>false</value> |
||||||
|
</dictionary> |
||||||
|
<dictionary> |
||||||
|
<key>org.eclipse.cdt.make.core.enableFullBuild</key> |
||||||
|
<value>true</value> |
||||||
|
</dictionary> |
||||||
|
<dictionary> |
||||||
|
<key>org.eclipse.cdt.make.core.fullBuildTarget</key> |
||||||
|
<value></value> |
||||||
|
</dictionary> |
||||||
|
<dictionary> |
||||||
|
<key>org.eclipse.cdt.make.core.stopOnError</key> |
||||||
|
<value>true</value> |
||||||
|
</dictionary> |
||||||
|
<dictionary> |
||||||
|
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key> |
||||||
|
<value>false</value> |
||||||
|
</dictionary> |
||||||
|
</arguments> |
||||||
|
</buildCommand> |
||||||
|
<buildCommand> |
||||||
|
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> |
||||||
|
<arguments> |
||||||
|
</arguments> |
||||||
|
</buildCommand> |
||||||
|
<buildCommand> |
||||||
|
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> |
||||||
|
<arguments> |
||||||
|
</arguments> |
||||||
|
</buildCommand> |
||||||
|
<buildCommand> |
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name> |
||||||
|
<arguments> |
||||||
|
</arguments> |
||||||
|
</buildCommand> |
||||||
|
<buildCommand> |
||||||
|
<name>com.android.ide.eclipse.adt.ApkBuilder</name> |
||||||
|
<arguments> |
||||||
|
</arguments> |
||||||
|
</buildCommand> |
||||||
|
<buildCommand> |
||||||
|
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> |
||||||
|
<triggers>full,incremental,</triggers> |
||||||
|
<arguments> |
||||||
|
</arguments> |
||||||
|
</buildCommand> |
||||||
|
</buildSpec> |
||||||
|
<natures> |
||||||
|
<nature>com.android.ide.eclipse.adt.AndroidNature</nature> |
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature> |
||||||
|
<nature>org.eclipse.cdt.core.cnature</nature> |
||||||
|
<nature>org.eclipse.cdt.core.ccnature</nature> |
||||||
|
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> |
||||||
|
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> |
||||||
|
</natures> |
||||||
|
</projectDescription> |
@ -0,0 +1,4 @@ |
|||||||
|
eclipse.preferences.version=1 |
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 |
||||||
|
org.eclipse.jdt.core.compiler.compliance=1.6 |
||||||
|
org.eclipse.jdt.core.compiler.source=1.6 |
@ -0,0 +1,38 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
package="org.opencv.samples.tutorial4" |
||||||
|
android:versionCode="21" |
||||||
|
android:versionName="2.1"> |
||||||
|
|
||||||
|
<application |
||||||
|
android:label="@string/app_name" |
||||||
|
android:icon="@drawable/icon" |
||||||
|
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > |
||||||
|
|
||||||
|
<activity android:name="Tutorial4Activity" |
||||||
|
android:label="@string/app_name" |
||||||
|
android:screenOrientation="landscape" |
||||||
|
android:configChanges="keyboardHidden|orientation"> |
||||||
|
<intent-filter> |
||||||
|
<action android:name="android.intent.action.MAIN" /> |
||||||
|
<category android:name="android.intent.category.LAUNCHER" /> |
||||||
|
</intent-filter> |
||||||
|
</activity> |
||||||
|
</application> |
||||||
|
|
||||||
|
<supports-screens android:resizeable="true" |
||||||
|
android:smallScreens="true" |
||||||
|
android:normalScreens="true" |
||||||
|
android:largeScreens="true" |
||||||
|
android:anyDensity="true" /> |
||||||
|
|
||||||
|
<uses-sdk android:minSdkVersion="8" /> |
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.CAMERA"/> |
||||||
|
|
||||||
|
<uses-feature android:name="android.hardware.camera" android:required="false"/> |
||||||
|
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/> |
||||||
|
<uses-feature android:name="android.hardware.camera.front" android:required="false"/> |
||||||
|
<uses-feature android:name="android.hardware.camera.front.autofocus" android:required="false"/> |
||||||
|
|
||||||
|
</manifest> |
@ -0,0 +1,16 @@ |
|||||||
|
set(sample example-tutorial-4-cuda) |
||||||
|
|
||||||
|
ocv_check_dependencies(opencv_core opencv_java opencv_gpu) |
||||||
|
|
||||||
|
if (OCV_DEPENDENCIES_FOUND) |
||||||
|
if(BUILD_FAT_JAVA_LIB) |
||||||
|
set(native_deps opencv_java opencv_gpu) |
||||||
|
else() |
||||||
|
set(native_deps opencv_gpu) |
||||||
|
endif() |
||||||
|
|
||||||
|
add_android_project(${sample} "${CMAKE_CURRENT_SOURCE_DIR}" LIBRARY_DEPS ${OpenCV_BINARY_DIR} SDK_TARGET 11 ${ANDROID_SDK_TARGET} NATIVE_DEPS ${native_deps}) |
||||||
|
if(TARGET ${sample}) |
||||||
|
add_dependencies(opencv_android_examples ${sample}) |
||||||
|
endif() |
||||||
|
endif() |
@ -0,0 +1,13 @@ |
|||||||
|
LOCAL_PATH := $(call my-dir)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS) |
||||||
|
|
||||||
|
CUDA_TOOLKIT_DIR=$(CUDA_TOOLKIT_ROOT)
|
||||||
|
include ../../sdk/native/jni/OpenCV.mk |
||||||
|
|
||||||
|
LOCAL_MODULE := cuda_sample
|
||||||
|
LOCAL_SRC_FILES := jni_part.cpp
|
||||||
|
LOCAL_LDLIBS += -llog -ldl
|
||||||
|
LOCAL_LDFLAGS += -Os
|
||||||
|
|
||||||
|
include $(BUILD_SHARED_LIBRARY) |
@ -0,0 +1,4 @@ |
|||||||
|
APP_STL := gnustl_static
|
||||||
|
APP_CPPFLAGS := -frtti -fexceptions
|
||||||
|
APP_ABI := armeabi-v7a
|
||||||
|
APP_PLATFORM := android-8
|
@ -0,0 +1,35 @@ |
|||||||
|
#include <jni.h> |
||||||
|
#include <opencv2/core/core.hpp> |
||||||
|
#include <opencv2/imgproc/imgproc.hpp> |
||||||
|
#include <opencv2/features2d/features2d.hpp> |
||||||
|
#include <opencv2/gpu/gpu.hpp> |
||||||
|
#include <vector> |
||||||
|
|
||||||
|
using namespace std; |
||||||
|
using namespace cv; |
||||||
|
using namespace cv::gpu; |
||||||
|
|
||||||
|
#include <android/log.h> |
||||||
|
|
||||||
|
#define LOG_TAG "Cuda" |
||||||
|
#define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)) |
||||||
|
|
||||||
|
extern "C" { |
||||||
|
JNIEXPORT void JNICALL Java_org_opencv_samples_tutorial4_Tutorial4Activity_FindFeatures(JNIEnv*, jobject, jlong addrGray, jlong addrRgba); |
||||||
|
|
||||||
|
JNIEXPORT void JNICALL Java_org_opencv_samples_tutorial4_Tutorial4Activity_FindFeatures(JNIEnv*, jobject, jlong addrGray, jlong addrRgba) |
||||||
|
{ |
||||||
|
Mat& mGr = *(Mat*)addrGray; |
||||||
|
Mat& mRgb = *(Mat*)addrRgba; |
||||||
|
vector<KeyPoint> keypoints; |
||||||
|
GpuMat grGpu(mGr); |
||||||
|
|
||||||
|
FAST_GPU fast(50); |
||||||
|
fast(grGpu, GpuMat(), keypoints); |
||||||
|
for( unsigned int i = 0; i < keypoints.size(); i++ ) |
||||||
|
{ |
||||||
|
const KeyPoint& kp = keypoints[i]; |
||||||
|
circle(mRgb, Point(kp.pt.x, kp.pt.y), 10, Scalar(255,0,0,255)); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
After Width: | Height: | Size: 2.0 KiB |
@ -0,0 +1,11 @@ |
|||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
xmlns:tools="http://schemas.android.com/tools" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="match_parent" > |
||||||
|
|
||||||
|
<org.opencv.android.JavaCameraView |
||||||
|
android:layout_width="fill_parent" |
||||||
|
android:layout_height="fill_parent" |
||||||
|
android:id="@+id/tutorial4_activity_surface_view" /> |
||||||
|
|
||||||
|
</LinearLayout> |
@ -0,0 +1,4 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<resources> |
||||||
|
<string name="app_name">OCV T4 CUDA</string> |
||||||
|
</resources> |
@ -0,0 +1,166 @@ |
|||||||
|
package org.opencv.samples.tutorial4; |
||||||
|
|
||||||
|
import org.opencv.android.BaseLoaderCallback; |
||||||
|
import org.opencv.android.CameraBridgeViewBase.CvCameraViewFrame; |
||||||
|
import org.opencv.android.LoaderCallbackInterface; |
||||||
|
import org.opencv.android.OpenCVLoader; |
||||||
|
import org.opencv.core.CvType; |
||||||
|
import org.opencv.core.Mat; |
||||||
|
import org.opencv.android.CameraBridgeViewBase; |
||||||
|
import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener2; |
||||||
|
import org.opencv.imgproc.Imgproc; |
||||||
|
|
||||||
|
import android.app.Activity; |
||||||
|
import android.os.Bundle; |
||||||
|
import android.util.Log; |
||||||
|
import android.view.Menu; |
||||||
|
import android.view.MenuItem; |
||||||
|
import android.view.WindowManager; |
||||||
|
|
||||||
|
public class Tutorial4Activity extends Activity implements CvCameraViewListener2 { |
||||||
|
private static final String TAG = "OCVSample::Activity"; |
||||||
|
|
||||||
|
private static final int VIEW_MODE_RGBA = 0; |
||||||
|
private static final int VIEW_MODE_GRAY = 1; |
||||||
|
private static final int VIEW_MODE_CANNY = 2; |
||||||
|
private static final int VIEW_MODE_FEATURES = 5; |
||||||
|
|
||||||
|
private int mViewMode; |
||||||
|
private Mat mRgba; |
||||||
|
private Mat mIntermediateMat; |
||||||
|
private Mat mGray; |
||||||
|
|
||||||
|
private MenuItem mItemPreviewRGBA; |
||||||
|
private MenuItem mItemPreviewGray; |
||||||
|
private MenuItem mItemPreviewCanny; |
||||||
|
private MenuItem mItemPreviewFeatures; |
||||||
|
|
||||||
|
private CameraBridgeViewBase mOpenCvCameraView; |
||||||
|
|
||||||
|
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { |
||||||
|
@Override |
||||||
|
public void onManagerConnected(int status) { |
||||||
|
switch (status) { |
||||||
|
case LoaderCallbackInterface.SUCCESS: |
||||||
|
{ |
||||||
|
Log.i(TAG, "OpenCV loaded successfully"); |
||||||
|
|
||||||
|
// Load native library after(!) OpenCV initialization
|
||||||
|
System.loadLibrary("cuda_sample"); |
||||||
|
|
||||||
|
mOpenCvCameraView.enableView(); |
||||||
|
} break; |
||||||
|
default: |
||||||
|
{ |
||||||
|
super.onManagerConnected(status); |
||||||
|
} break; |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
public Tutorial4Activity() { |
||||||
|
Log.i(TAG, "Instantiated new " + this.getClass()); |
||||||
|
} |
||||||
|
|
||||||
|
/** Called when the activity is first created. */ |
||||||
|
@Override |
||||||
|
public void onCreate(Bundle savedInstanceState) { |
||||||
|
Log.i(TAG, "called onCreate"); |
||||||
|
super.onCreate(savedInstanceState); |
||||||
|
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); |
||||||
|
|
||||||
|
setContentView(R.layout.tutorial4_surface_view); |
||||||
|
|
||||||
|
mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.tutorial4_activity_surface_view); |
||||||
|
mOpenCvCameraView.setCvCameraViewListener(this); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean onCreateOptionsMenu(Menu menu) { |
||||||
|
Log.i(TAG, "called onCreateOptionsMenu"); |
||||||
|
mItemPreviewRGBA = menu.add("Preview RGBA"); |
||||||
|
mItemPreviewGray = menu.add("Preview GRAY"); |
||||||
|
mItemPreviewCanny = menu.add("Canny"); |
||||||
|
mItemPreviewFeatures = menu.add("Find features"); |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onPause() |
||||||
|
{ |
||||||
|
super.onPause(); |
||||||
|
if (mOpenCvCameraView != null) |
||||||
|
mOpenCvCameraView.disableView(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void onResume() |
||||||
|
{ |
||||||
|
super.onResume(); |
||||||
|
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_8, this, mLoaderCallback); |
||||||
|
} |
||||||
|
|
||||||
|
public void onDestroy() { |
||||||
|
super.onDestroy(); |
||||||
|
if (mOpenCvCameraView != null) |
||||||
|
mOpenCvCameraView.disableView(); |
||||||
|
} |
||||||
|
|
||||||
|
public void onCameraViewStarted(int width, int height) { |
||||||
|
mRgba = new Mat(height, width, CvType.CV_8UC4); |
||||||
|
mIntermediateMat = new Mat(height, width, CvType.CV_8UC4); |
||||||
|
mGray = new Mat(height, width, CvType.CV_8UC1); |
||||||
|
} |
||||||
|
|
||||||
|
public void onCameraViewStopped() { |
||||||
|
mRgba.release(); |
||||||
|
mGray.release(); |
||||||
|
mIntermediateMat.release(); |
||||||
|
} |
||||||
|
|
||||||
|
public Mat onCameraFrame(CvCameraViewFrame inputFrame) { |
||||||
|
final int viewMode = mViewMode; |
||||||
|
switch (viewMode) { |
||||||
|
case VIEW_MODE_GRAY: |
||||||
|
// input frame has gray scale format
|
||||||
|
Imgproc.cvtColor(inputFrame.gray(), mRgba, Imgproc.COLOR_GRAY2RGBA, 4); |
||||||
|
break; |
||||||
|
case VIEW_MODE_RGBA: |
||||||
|
// input frame has RBGA format
|
||||||
|
mRgba = inputFrame.rgba(); |
||||||
|
break; |
||||||
|
case VIEW_MODE_CANNY: |
||||||
|
// input frame has gray scale format
|
||||||
|
mRgba = inputFrame.rgba(); |
||||||
|
Imgproc.Canny(inputFrame.gray(), mIntermediateMat, 80, 100); |
||||||
|
Imgproc.cvtColor(mIntermediateMat, mRgba, Imgproc.COLOR_GRAY2RGBA, 4); |
||||||
|
break; |
||||||
|
case VIEW_MODE_FEATURES: |
||||||
|
// input frame has RGBA format
|
||||||
|
mRgba = inputFrame.rgba(); |
||||||
|
mGray = inputFrame.gray(); |
||||||
|
FindFeatures(mGray.getNativeObjAddr(), mRgba.getNativeObjAddr()); |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
return mRgba; |
||||||
|
} |
||||||
|
|
||||||
|
public boolean onOptionsItemSelected(MenuItem item) { |
||||||
|
Log.i(TAG, "called onOptionsItemSelected; selected item: " + item); |
||||||
|
|
||||||
|
if (item == mItemPreviewRGBA) { |
||||||
|
mViewMode = VIEW_MODE_RGBA; |
||||||
|
} else if (item == mItemPreviewGray) { |
||||||
|
mViewMode = VIEW_MODE_GRAY; |
||||||
|
} else if (item == mItemPreviewCanny) { |
||||||
|
mViewMode = VIEW_MODE_CANNY; |
||||||
|
} else if (item == mItemPreviewFeatures) { |
||||||
|
mViewMode = VIEW_MODE_FEATURES; |
||||||
|
} |
||||||
|
|
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
public native void FindFeatures(long matAddrGr, long matAddrRgba); |
||||||
|
} |
Loading…
Reference in new issue