Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
cc447448
Commit
cc447448
authored
Jul 15, 2011
by
Andrey Kamaev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added native camera Android sample; Added manual port of VideoCapture class.
parent
c3d40ca0
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
1045 additions
and
5 deletions
+1045
-5
VideoCaptureTest.java
...id_test/src/org/opencv/test/highgui/VideoCaptureTest.java
+1
-1
gen_java.py
modules/java/gen_java.py
+1
-0
VideoCapture.cpp
modules/java/src/cpp/VideoCapture.cpp
+454
-0
VideoCapture.java
modules/java/src/java/VideoCapture.java
+229
-0
AndroidManifest.xml
samples/android/0-base/AndroidManifest.xml
+3
-1
AndroidManifest.xml
samples/android/1-java/AndroidManifest.xml
+3
-1
AndroidManifest.xml
samples/android/2-native/AndroidManifest.xml
+3
-1
.classpath
samples/android/3-nativecamera/.classpath
+8
-0
.project
samples/android/3-nativecamera/.project
+40
-0
org.eclipse.jdt.core.prefs
...droid/3-nativecamera/.settings/org.eclipse.jdt.core.prefs
+5
-0
AndroidManifest.xml
samples/android/3-nativecamera/AndroidManifest.xml
+31
-0
default.properties
samples/android/3-nativecamera/default.properties
+3
-0
icon.png
samples/android/3-nativecamera/res/drawable/icon.png
+0
-0
strings.xml
samples/android/3-nativecamera/res/values/strings.xml
+4
-0
Sample3NativeCamera.java
...camera/src/org/opencv/samples/s3/Sample3NativeCamera.java
+66
-0
Sample3View.java
...3-nativecamera/src/org/opencv/samples/s3/Sample3View.java
+86
-0
SampleViewBase.java
...ativecamera/src/org/opencv/samples/s3/SampleViewBase.java
+105
-0
AndroidManifest.xml
samples/android/4-mixed/AndroidManifest.xml
+3
-1
No files found.
modules/java/android_test/src/org/opencv/test/highgui/VideoCaptureTest.java
View file @
cc447448
package
org
.
opencv
.
test
.
highgui
;
import
org.opencv.highgui
;
import
org.opencv.
highgui.
VideoCapture
;
import
org.opencv.VideoCapture
;
import
org.opencv.test.OpenCVTestCase
;
...
...
modules/java/gen_java.py
View file @
cc447448
...
...
@@ -88,6 +88,7 @@ func_ignore_list = (
class_ignore_list
=
(
"VideoWriter"
,
"VideoCapture"
,
)
# c_type : { java/jni correspondence }
...
...
modules/java/src/cpp/VideoCapture.cpp
0 → 100644
View file @
cc447448
//
// This file is auto-generated, please don't edit!
//
#include <jni.h>
#ifdef DEBUG
#include <android/log.h>
#define MODULE_LOG_TAG "OpenCV.highgui"
#define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, MODULE_LOG_TAG, __VA_ARGS__))
#endif // DEBUG
#include "opencv2/highgui/highgui_c.h"
#include "opencv2/highgui/highgui.hpp"
using
namespace
cv
;
extern
"C"
{
//
// VideoCapture::VideoCapture()
//
JNIEXPORT
jlong
JNICALL
Java_org_opencv_VideoCapture_n_1VideoCapture__
(
JNIEnv
*
env
,
jclass
cls
)
{
try
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1VideoCapture__()"
);
#endif // DEBUG
VideoCapture
*
_retval_
=
new
VideoCapture
(
);
return
(
jlong
)
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1VideoCapture__() catched cv::Exception: %s"
,
e
.
what
());
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"org/opencv/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(...)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1VideoCapture__() catched unknown exception (...)"
);
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__()}"
);
return
0
;
}
}
//
// VideoCapture::VideoCapture(int device)
//
JNIEXPORT
jlong
JNICALL
Java_org_opencv_VideoCapture_n_1VideoCapture__I
(
JNIEnv
*
env
,
jclass
cls
,
jint
device
)
{
try
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1VideoCapture__I()"
);
#endif // DEBUG
VideoCapture
*
_retval_
=
new
VideoCapture
(
device
);
return
(
jlong
)
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1VideoCapture__I() catched cv::Exception: %s"
,
e
.
what
());
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"org/opencv/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(...)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1VideoCapture__I() catched unknown exception (...)"
);
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1VideoCapture__I()}"
);
return
0
;
}
}
//
// double VideoCapture::get(int propId)
//
JNIEXPORT
jdouble
JNICALL
Java_org_opencv_VideoCapture_n_1get
(
JNIEnv
*
env
,
jclass
cls
,
jlong
self
,
jint
propId
)
{
try
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1get()"
);
#endif // DEBUG
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
double
_retval_
=
me
->
get
(
propId
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1get() catched cv::Exception: %s"
,
e
.
what
());
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"org/opencv/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(...)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1get() catched unknown exception (...)"
);
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1get()}"
);
return
0
;
}
}
//
// bool VideoCapture::grab()
//
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_VideoCapture_n_1grab
(
JNIEnv
*
env
,
jclass
cls
,
jlong
self
)
{
try
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1grab()"
);
#endif // DEBUG
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
bool
_retval_
=
me
->
grab
(
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1grab() catched cv::Exception: %s"
,
e
.
what
());
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"org/opencv/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(...)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1grab() catched unknown exception (...)"
);
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1grab()}"
);
return
0
;
}
}
//
// bool VideoCapture::isOpened()
//
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_VideoCapture_n_1isOpened
(
JNIEnv
*
env
,
jclass
cls
,
jlong
self
)
{
try
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1isOpened()"
);
#endif // DEBUG
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
bool
_retval_
=
me
->
isOpened
(
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1isOpened() catched cv::Exception: %s"
,
e
.
what
());
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"org/opencv/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(...)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1isOpened() catched unknown exception (...)"
);
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1isOpened()}"
);
return
0
;
}
}
//
// bool VideoCapture::open(int device)
//
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_VideoCapture_n_1open__JI
(
JNIEnv
*
env
,
jclass
cls
,
jlong
self
,
jint
device
)
{
try
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1open__JI()"
);
#endif // DEBUG
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
bool
_retval_
=
me
->
open
(
device
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1open__JI() catched cv::Exception: %s"
,
e
.
what
());
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"org/opencv/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(...)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1open__JI() catched unknown exception (...)"
);
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1open__JI()}"
);
return
0
;
}
}
//
// bool VideoCapture::read(Mat image)
//
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_VideoCapture_n_1read
(
JNIEnv
*
env
,
jclass
cls
,
jlong
self
,
jlong
image_nativeObj
)
{
try
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1read()"
);
#endif // DEBUG
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
Mat
&
image
=
*
((
Mat
*
)
image_nativeObj
);
bool
_retval_
=
me
->
read
(
image
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1read() catched cv::Exception: %s"
,
e
.
what
());
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"org/opencv/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(...)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1read() catched unknown exception (...)"
);
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1read()}"
);
return
0
;
}
}
//
// void VideoCapture::release()
//
JNIEXPORT
void
JNICALL
Java_org_opencv_VideoCapture_n_1release
(
JNIEnv
*
env
,
jclass
cls
,
jlong
self
)
{
try
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1release()"
);
#endif // DEBUG
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
me
->
release
(
);
return
;
}
catch
(
cv
::
Exception
e
)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1release() catched cv::Exception: %s"
,
e
.
what
());
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"org/opencv/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
;
}
catch
(...)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1release() catched unknown exception (...)"
);
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1release()}"
);
return
;
}
}
//
// bool VideoCapture::retrieve(Mat image, int channel = 0)
//
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_VideoCapture_n_1retrieve__JJI
(
JNIEnv
*
env
,
jclass
cls
,
jlong
self
,
jlong
image_nativeObj
,
jint
channel
)
{
try
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1retrieve__JJI()"
);
#endif // DEBUG
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
Mat
&
image
=
*
((
Mat
*
)
image_nativeObj
);
bool
_retval_
=
me
->
retrieve
(
image
,
channel
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1retrieve__JJI() catched cv::Exception: %s"
,
e
.
what
());
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"org/opencv/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(...)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1retrieve__JJI() catched unknown exception (...)"
);
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1retrieve__JJI()}"
);
return
0
;
}
}
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_VideoCapture_n_1retrieve__JJ
(
JNIEnv
*
env
,
jclass
cls
,
jlong
self
,
jlong
image_nativeObj
)
{
try
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1retrieve__JJ()"
);
#endif // DEBUG
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
Mat
&
image
=
*
((
Mat
*
)
image_nativeObj
);
bool
_retval_
=
me
->
retrieve
(
image
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1retrieve__JJ() catched cv::Exception: %s"
,
e
.
what
());
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"org/opencv/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(...)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1retrieve__JJ() catched unknown exception (...)"
);
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1retrieve__JJ()}"
);
return
0
;
}
}
//
// bool VideoCapture::set(int propId, double value)
//
JNIEXPORT
jboolean
JNICALL
Java_org_opencv_VideoCapture_n_1set
(
JNIEnv
*
env
,
jclass
cls
,
jlong
self
,
jint
propId
,
jdouble
value
)
{
try
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1set()"
);
#endif // DEBUG
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
bool
_retval_
=
me
->
set
(
propId
,
value
);
return
_retval_
;
}
catch
(
cv
::
Exception
e
)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1set() catched cv::Exception: %s"
,
e
.
what
());
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"org/opencv/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
0
;
}
catch
(...)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1set() catched unknown exception (...)"
);
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1set()}"
);
return
0
;
}
}
JNIEXPORT
jstring
JNICALL
Java_org_opencv_VideoCapture_n_1getSupportedPreviewSizes
(
JNIEnv
*
env
,
jclass
cls
,
jlong
self
)
{
try
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1set()"
);
#endif // DEBUG
VideoCapture
*
me
=
(
VideoCapture
*
)
self
;
//TODO: check for NULL
double
addr
=
me
->
get
(
CV_CAP_PROP_SUPPORTED_PREVIEW_SIZES_STRING
);
char
*
result
=
*
((
char
**
)
&
addr
);
return
env
->
NewStringUTF
(
result
);
}
catch
(
cv
::
Exception
e
)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1getSupportedPreviewSizes() catched cv::Exception: %s"
,
e
.
what
());
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"org/opencv/CvException"
);
if
(
!
je
)
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
e
.
what
());
return
env
->
NewStringUTF
(
""
);
}
catch
(...)
{
#ifdef DEBUG
LOGD
(
"highgui::VideoCapture_n_1getSupportedPreviewSizes() catched unknown exception (...)"
);
#endif // DEBUG
jclass
je
=
env
->
FindClass
(
"java/lang/Exception"
);
env
->
ThrowNew
(
je
,
"Unknown exception in JNI code {highgui::VideoCapture_n_1getSupportedPreviewSizes()}"
);
return
env
->
NewStringUTF
(
""
);
}
}
//
// native support for java finalize()
// static void VideoCapture::n_delete( __int64 self )
//
JNIEXPORT
void
JNICALL
Java_org_opencv_VideoCapture_n_1delete
(
JNIEnv
*
env
,
jclass
cls
,
jlong
self
)
{
delete
(
VideoCapture
*
)
self
;
}
}
// extern "C"
modules/java/src/java/VideoCapture.java
0 → 100644
View file @
cc447448
package
org
.
opencv
;
import
java.util.List
;
import
java.util.LinkedList
;
// C++: class VideoCapture
//javadoc: VideoCapture
public
class
VideoCapture
{
protected
final
long
nativeObj
;
protected
VideoCapture
(
long
addr
)
{
nativeObj
=
addr
;
}
//
// C++: VideoCapture::VideoCapture()
//
//javadoc: VideoCapture::VideoCapture()
public
VideoCapture
()
{
nativeObj
=
n_VideoCapture
();
return
;
}
//
// C++: VideoCapture::VideoCapture(int device)
//
//javadoc: VideoCapture::VideoCapture(device)
public
VideoCapture
(
int
device
)
{
nativeObj
=
n_VideoCapture
(
device
);
return
;
}
//
// C++: double VideoCapture::get(int propId)
//
//javadoc: VideoCapture::get(propId)
public
double
get
(
int
propId
)
{
double
retVal
=
n_get
(
nativeObj
,
propId
);
return
retVal
;
}
public
List
<
Size
>
getSupportedPreviewSizes
()
{
String
[]
sizes_str
=
n_getSupportedPreviewSizes
(
nativeObj
).
split
(
","
);
List
<
Size
>
sizes
=
new
LinkedList
<
Size
>();
for
(
String
str
:
sizes_str
){
String
[]
wh
=
str
.
split
(
"x"
);
sizes
.
add
(
new
Size
(
Double
.
parseDouble
(
wh
[
0
]),
Double
.
parseDouble
(
wh
[
1
])));
}
return
sizes
;
}
//
// C++: bool VideoCapture::grab()
//
//javadoc: VideoCapture::grab()
public
boolean
grab
()
{
boolean
retVal
=
n_grab
(
nativeObj
);
return
retVal
;
}
//
// C++: bool VideoCapture::isOpened()
//
//javadoc: VideoCapture::isOpened()
public
boolean
isOpened
()
{
boolean
retVal
=
n_isOpened
(
nativeObj
);
return
retVal
;
}
//
// C++: bool VideoCapture::open(int device)
//
//javadoc: VideoCapture::open(device)
public
boolean
open
(
int
device
)
{
boolean
retVal
=
n_open
(
nativeObj
,
device
);
return
retVal
;
}
//
// C++: bool VideoCapture::read(Mat image)
//
//javadoc: VideoCapture::read(image)
public
boolean
read
(
Mat
image
)
{
boolean
retVal
=
n_read
(
nativeObj
,
image
.
nativeObj
);
return
retVal
;
}
//
// C++: void VideoCapture::release()
//
//javadoc: VideoCapture::release()
public
void
release
()
{
n_release
(
nativeObj
);
return
;
}
//
// C++: bool VideoCapture::retrieve(Mat image, int channel = 0)
//
//javadoc: VideoCapture::retrieve(image, channel)
public
boolean
retrieve
(
Mat
image
,
int
channel
)
{
boolean
retVal
=
n_retrieve
(
nativeObj
,
image
.
nativeObj
,
channel
);
return
retVal
;
}
//javadoc: VideoCapture::retrieve(image)
public
boolean
retrieve
(
Mat
image
)
{
boolean
retVal
=
n_retrieve
(
nativeObj
,
image
.
nativeObj
);
return
retVal
;
}
//
// C++: bool VideoCapture::set(int propId, double value)
//
//javadoc: VideoCapture::set(propId, value)
public
boolean
set
(
int
propId
,
double
value
)
{
boolean
retVal
=
n_set
(
nativeObj
,
propId
,
value
);
return
retVal
;
}
@Override
protected
void
finalize
()
throws
Throwable
{
n_delete
(
nativeObj
);
super
.
finalize
();
}
// native stuff
static
{
System
.
loadLibrary
(
"opencv_java"
);
}
// C++: VideoCapture::VideoCapture()
private
static
native
long
n_VideoCapture
();
// C++: VideoCapture::VideoCapture(string filename)
private
static
native
long
n_VideoCapture
(
java
.
lang
.
String
filename
);
// C++: VideoCapture::VideoCapture(int device)
private
static
native
long
n_VideoCapture
(
int
device
);
// C++: double VideoCapture::get(int propId)
private
static
native
double
n_get
(
long
nativeObj
,
int
propId
);
// C++: bool VideoCapture::grab()
private
static
native
boolean
n_grab
(
long
nativeObj
);
// C++: bool VideoCapture::isOpened()
private
static
native
boolean
n_isOpened
(
long
nativeObj
);
// C++: bool VideoCapture::open(string filename)
private
static
native
boolean
n_open
(
long
nativeObj
,
java
.
lang
.
String
filename
);
// C++: bool VideoCapture::open(int device)
private
static
native
boolean
n_open
(
long
nativeObj
,
int
device
);
// C++: bool VideoCapture::read(Mat image)
private
static
native
boolean
n_read
(
long
nativeObj
,
long
image_nativeObj
);
// C++: void VideoCapture::release()
private
static
native
void
n_release
(
long
nativeObj
);
// C++: bool VideoCapture::retrieve(Mat image, int channel = 0)
private
static
native
boolean
n_retrieve
(
long
nativeObj
,
long
image_nativeObj
,
int
channel
);
private
static
native
boolean
n_retrieve
(
long
nativeObj
,
long
image_nativeObj
);
// C++: bool VideoCapture::set(int propId, double value)
private
static
native
boolean
n_set
(
long
nativeObj
,
int
propId
,
double
value
);
private
static
native
String
n_getSupportedPreviewSizes
(
long
nativeObj
);
// native support for java finalize()
private
static
native
void
n_delete
(
long
nativeObj
);
}
samples/android/0-base/AndroidManifest.xml
View file @
cc447448
...
...
@@ -12,7 +12,9 @@
<application
android:label=
"@string/app_name"
android:icon=
"@drawable/icon"
>
<activity
android:name=
"Sample0Base"
android:label=
"@string/app_name"
>
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"
/>
...
...
samples/android/1-java/AndroidManifest.xml
View file @
cc447448
...
...
@@ -12,7 +12,9 @@
<application
android:label=
"@string/app_name"
android:icon=
"@drawable/icon"
>
<activity
android:name=
"Sample1Java"
android:label=
"@string/app_name"
>
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"
/>
...
...
samples/android/2-native/AndroidManifest.xml
View file @
cc447448
...
...
@@ -12,7 +12,9 @@
<application
android:label=
"@string/app_name"
android:icon=
"@drawable/icon"
>
<activity
android:name=
"Sample2Native"
android:label=
"@string/app_name"
>
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"
/>
...
...
samples/android/3-nativecamera/.classpath
0 → 100644
View file @
cc447448
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry
kind=
"src"
path=
"src"
/>
<classpathentry
kind=
"src"
path=
"gen"
/>
<classpathentry
kind=
"con"
path=
"com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"
/>
<classpathentry
kind=
"src"
path=
"opencv2.3.1_src"
/>
<classpathentry
kind=
"output"
path=
"bin"
/>
</classpath>
samples/android/3-nativecamera/.project
0 → 100644
View file @
cc447448
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>
Sample 3 Native Camera
</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<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>
</buildSpec>
<natures>
<nature>
com.android.ide.eclipse.adt.AndroidNature
</nature>
<nature>
org.eclipse.jdt.core.javanature
</nature>
</natures>
<linkedResources>
<link>
<name>
opencv2.3.1_src
</name>
<type>
2
</type>
<locationURI>
_android_opencv2_3_1_d2471b5d/src
</locationURI>
</link>
</linkedResources>
</projectDescription>
samples/android/3-nativecamera/.settings/org.eclipse.jdt.core.prefs
0 → 100644
View file @
cc447448
#Wed Jun 29 04:36:40 MSD 2011
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.source=1.5
samples/android/3-nativecamera/AndroidManifest.xml
0 → 100644
View file @
cc447448
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"org.opencv.samples.s3"
android:versionCode=
"1"
android:versionName=
"1.0"
>
<supports-screens
android:resizeable=
"true"
android:smallScreens=
"true"
android:normalScreens=
"true"
android:largeScreens=
"true"
android:anyDensity=
"true"
/>
<application
android:label=
"@string/app_name"
android:icon=
"@drawable/icon"
>
<activity
android:name=
"Sample3NativeCamera"
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>
<uses-sdk
android:minSdkVersion=
"8"
/>
<uses-permission
android:name=
"android.permission.CAMERA"
/>
<uses-feature
android:name=
"android.hardware.camera"
/>
<uses-feature
android:name=
"android.hardware.camera.autofocus"
/>
</manifest>
samples/android/3-nativecamera/default.properties
0 → 100644
View file @
cc447448
android.library.reference.1
=
../../../android/build
# Project target.
target
=
android-8
samples/android/3-nativecamera/res/drawable/icon.png
0 → 100644
View file @
cc447448
5.63 KB
samples/android/3-nativecamera/res/values/strings.xml
0 → 100644
View file @
cc447448
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string
name=
"app_name"
>
Sample 3: Native Camera
</string>
</resources>
samples/android/3-nativecamera/src/org/opencv/samples/s3/Sample3NativeCamera.java
0 → 100644
View file @
cc447448
package
org
.
opencv
.
samples
.
s3
;
import
android.app.Activity
;
import
android.os.Bundle
;
import
android.util.Log
;
import
android.view.Menu
;
import
android.view.MenuItem
;
import
android.view.Window
;
public
class
Sample3NativeCamera
extends
Activity
{
private
static
final
String
TAG
=
"Sample::Activity"
;
public
static
final
int
VIEW_MODE_RGBA
=
0
;
public
static
final
int
VIEW_MODE_GRAY
=
1
;
public
static
final
int
VIEW_MODE_CANNY
=
2
;
public
static
final
int
VIEW_MODE_SOBEL
=
3
;
public
static
final
int
VIEW_MODE_BLUR
=
4
;
private
MenuItem
mItemPreviewRGBA
;
private
MenuItem
mItemPreviewGray
;
private
MenuItem
mItemPreviewCanny
;
private
MenuItem
mItemPreviewSobel
;
private
MenuItem
mItemPreviewBlur
;
public
static
int
viewMode
=
VIEW_MODE_RGBA
;
public
Sample3NativeCamera
()
{
Log
.
i
(
TAG
,
"Instantiated new "
+
this
.
getClass
());
}
/** Called when the activity is first created. */
@Override
public
void
onCreate
(
Bundle
savedInstanceState
)
{
Log
.
i
(
TAG
,
"onCreate"
);
super
.
onCreate
(
savedInstanceState
);
requestWindowFeature
(
Window
.
FEATURE_NO_TITLE
);
setContentView
(
new
Sample3View
(
this
));
}
@Override
public
boolean
onCreateOptionsMenu
(
Menu
menu
)
{
Log
.
i
(
TAG
,
"onCreateOptionsMenu"
);
mItemPreviewRGBA
=
menu
.
add
(
"Preview RGBA"
);
mItemPreviewGray
=
menu
.
add
(
"Preview GRAY"
);
mItemPreviewCanny
=
menu
.
add
(
"Canny"
);
mItemPreviewSobel
=
menu
.
add
(
"Sobel"
);
mItemPreviewBlur
=
menu
.
add
(
"Blur"
);
return
true
;
}
@Override
public
boolean
onOptionsItemSelected
(
MenuItem
item
)
{
Log
.
i
(
TAG
,
"Menu Item selected "
+
item
);
if
(
item
==
mItemPreviewRGBA
)
viewMode
=
VIEW_MODE_RGBA
;
else
if
(
item
==
mItemPreviewGray
)
viewMode
=
VIEW_MODE_GRAY
;
else
if
(
item
==
mItemPreviewCanny
)
viewMode
=
VIEW_MODE_CANNY
;
else
if
(
item
==
mItemPreviewSobel
)
viewMode
=
VIEW_MODE_SOBEL
;
else
if
(
item
==
mItemPreviewBlur
)
viewMode
=
VIEW_MODE_BLUR
;
return
true
;
}
}
samples/android/3-nativecamera/src/org/opencv/samples/s3/Sample3View.java
0 → 100644
View file @
cc447448
package
org
.
opencv
.
samples
.
s3
;
import
org.opencv.*
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.view.SurfaceHolder
;
class
Sample3View
extends
SampleViewBase
{
private
Mat
mRgba
;
private
Mat
mGray
;
private
Mat
mIntermediateMat
;
public
Sample3View
(
Context
context
)
{
super
(
context
);
}
@Override
public
void
surfaceChanged
(
SurfaceHolder
_holder
,
int
format
,
int
width
,
int
height
)
{
super
.
surfaceChanged
(
_holder
,
format
,
width
,
height
);
synchronized
(
this
)
{
// initialize Mats before usage
mGray
=
new
Mat
();
mRgba
=
new
Mat
();
mIntermediateMat
=
new
Mat
();
}
}
@Override
protected
Bitmap
processFrame
(
VideoCapture
capture
)
{
switch
(
Sample3NativeCamera
.
viewMode
)
{
case
Sample3NativeCamera
.
VIEW_MODE_GRAY
:
capture
.
retrieve
(
mGray
,
highgui
.
CV_CAP_ANDROID_GREY_FRAME
);
imgproc
.
cvtColor
(
mGray
,
mRgba
,
imgproc
.
CV_GRAY2RGBA
,
4
);
break
;
case
Sample3NativeCamera
.
VIEW_MODE_RGBA
:
capture
.
retrieve
(
mRgba
,
highgui
.
CV_CAP_ANDROID_COLOR_FRAME_RGBA
);
core
.
putText
(
mRgba
,
"OpenCV + Android"
,
new
Point
(
10
,
100
),
3
/* CV_FONT_HERSHEY_COMPLEX */
,
2
,
new
Scalar
(
255
,
0
,
0
,
255
),
3
);
break
;
case
Sample3NativeCamera
.
VIEW_MODE_CANNY
:
capture
.
retrieve
(
mGray
,
highgui
.
CV_CAP_ANDROID_GREY_FRAME
);
imgproc
.
Canny
(
mGray
,
mIntermediateMat
,
80
,
100
);
imgproc
.
cvtColor
(
mIntermediateMat
,
mRgba
,
imgproc
.
CV_GRAY2BGRA
,
4
);
break
;
case
Sample3NativeCamera
.
VIEW_MODE_SOBEL
:
capture
.
retrieve
(
mGray
,
highgui
.
CV_CAP_ANDROID_GREY_FRAME
);
imgproc
.
Sobel
(
mGray
,
mIntermediateMat
,
CvType
.
CV_8U
,
1
,
1
);
core
.
convertScaleAbs
(
mIntermediateMat
,
mIntermediateMat
,
8
);
imgproc
.
cvtColor
(
mIntermediateMat
,
mRgba
,
imgproc
.
CV_GRAY2BGRA
,
4
);
break
;
case
Sample3NativeCamera
.
VIEW_MODE_BLUR
:
capture
.
retrieve
(
mRgba
,
highgui
.
CV_CAP_ANDROID_COLOR_FRAME_RGBA
);
imgproc
.
blur
(
mRgba
,
mRgba
,
new
Size
(
15
,
15
));
break
;
}
Bitmap
bmp
=
Bitmap
.
createBitmap
(
mRgba
.
cols
(),
mRgba
.
rows
(),
Bitmap
.
Config
.
ARGB_8888
);
if
(
android
.
MatToBitmap
(
mRgba
,
bmp
))
return
bmp
;
bmp
.
recycle
();
return
null
;
}
@Override
public
void
run
()
{
super
.
run
();
synchronized
(
this
)
{
// Explicitly deallocate Mats
if
(
mRgba
!=
null
)
mRgba
.
dispose
();
if
(
mGray
!=
null
)
mGray
.
dispose
();
if
(
mIntermediateMat
!=
null
)
mIntermediateMat
.
dispose
();
mRgba
=
null
;
mGray
=
null
;
mIntermediateMat
=
null
;
}
}
}
\ No newline at end of file
samples/android/3-nativecamera/src/org/opencv/samples/s3/SampleViewBase.java
0 → 100644
View file @
cc447448
package
org
.
opencv
.
samples
.
s3
;
import
java.util.List
;
import
org.opencv.*
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.graphics.Canvas
;
import
android.util.Log
;
import
android.view.SurfaceHolder
;
import
android.view.SurfaceView
;
public
abstract
class
SampleViewBase
extends
SurfaceView
implements
SurfaceHolder
.
Callback
,
Runnable
{
private
static
final
String
TAG
=
"Sample::SurfaceView"
;
private
SurfaceHolder
mHolder
;
private
VideoCapture
mCamera
;
private
boolean
mThreadRun
;
public
SampleViewBase
(
Context
context
)
{
super
(
context
);
mHolder
=
getHolder
();
mHolder
.
addCallback
(
this
);
Log
.
i
(
TAG
,
"Instantiated new "
+
this
.
getClass
());
}
public
void
surfaceChanged
(
SurfaceHolder
_holder
,
int
format
,
int
width
,
int
height
)
{
Log
.
i
(
TAG
,
"surfaceCreated"
);
if
(
mCamera
!=
null
&&
mCamera
.
isOpened
())
{
Log
.
i
(
TAG
,
"before mCamera.getSupportedPreviewSizes()"
);
List
<
Size
>
sizes
=
mCamera
.
getSupportedPreviewSizes
();
Log
.
i
(
TAG
,
"after mCamera.getSupportedPreviewSizes()"
);
int
mFrameWidth
=
width
;
int
mFrameHeight
=
height
;
// selecting optimal camera preview size
{
double
minDiff
=
Double
.
MAX_VALUE
;
for
(
Size
size
:
sizes
)
{
if
(
Math
.
abs
(
size
.
height
-
height
)
<
minDiff
)
{
mFrameWidth
=
(
int
)
size
.
width
;
mFrameHeight
=
(
int
)
size
.
height
;
minDiff
=
Math
.
abs
(
size
.
height
-
height
);
}
}
}
mCamera
.
set
(
highgui
.
CV_CAP_PROP_FRAME_WIDTH
,
mFrameWidth
);
mCamera
.
set
(
highgui
.
CV_CAP_PROP_FRAME_HEIGHT
,
mFrameHeight
);
}
}
public
void
surfaceCreated
(
SurfaceHolder
holder
)
{
Log
.
i
(
TAG
,
"surfaceCreated"
);
mCamera
=
new
VideoCapture
(
highgui
.
CV_CAP_ANDROID
);
if
(
mCamera
.
isOpened
())
{
(
new
Thread
(
this
)).
start
();
}
else
{
mCamera
.
release
();
mCamera
=
null
;
Log
.
e
(
TAG
,
"Failed to open native camera"
);
}
}
public
void
surfaceDestroyed
(
SurfaceHolder
holder
)
{
Log
.
i
(
TAG
,
"surfaceDestroyed"
);
mThreadRun
=
false
;
if
(
mCamera
!=
null
)
{
synchronized
(
this
)
{
mCamera
.
release
();
mCamera
=
null
;
}
}
}
protected
abstract
Bitmap
processFrame
(
VideoCapture
capture
);
public
void
run
()
{
mThreadRun
=
true
;
Log
.
i
(
TAG
,
"Starting processing thread"
);
while
(
mThreadRun
)
{
Bitmap
bmp
=
null
;
if
(!
mCamera
.
grab
())
{
Log
.
e
(
TAG
,
"mCamera.grab() failed"
);
break
;
}
synchronized
(
this
)
{
bmp
=
processFrame
(
mCamera
);
}
if
(
bmp
!=
null
)
{
Canvas
canvas
=
mHolder
.
lockCanvas
();
if
(
canvas
!=
null
)
{
canvas
.
drawBitmap
(
bmp
,
(
canvas
.
getWidth
()
-
bmp
.
getWidth
())
/
2
,
(
canvas
.
getHeight
()
-
bmp
.
getHeight
())
/
2
,
null
);
mHolder
.
unlockCanvasAndPost
(
canvas
);
}
bmp
.
recycle
();
}
}
}
}
\ No newline at end of file
samples/android/4-mixed/AndroidManifest.xml
View file @
cc447448
...
...
@@ -12,7 +12,9 @@
<application
android:label=
"@string/app_name"
android:icon=
"@drawable/icon"
>
<activity
android:name=
"Sample4Mixed"
android:label=
"@string/app_name"
>
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"
/>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment