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
504264ab
Commit
504264ab
authored
Feb 08, 2013
by
Andrey Kamaev
Committed by
OpenCV Buildbot
Feb 08, 2013
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #402 from asmorkalov:samples_data_rase_fix
parents
46ca5c32
076941bb
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
221 additions
and
216 deletions
+221
-216
android+CameraBridgeViewBase.java
...java/generator/src/java/android+CameraBridgeViewBase.java
+81
-5
android+JavaCameraView.java
modules/java/generator/src/java/android+JavaCameraView.java
+41
-21
android+NativeCameraView.java
...les/java/generator/src/java/android+NativeCameraView.java
+26
-14
Puzzle15Activity.java
...zle/src/org/opencv/samples/puzzle15/Puzzle15Activity.java
+5
-5
ColorBlobDetectionActivity.java
...v/samples/colorblobdetect/ColorBlobDetectionActivity.java
+6
-5
FdActivity.java
...tection/src/org/opencv/samples/facedetect/FdActivity.java
+7
-7
FpsMeter.java
...detection/src/org/opencv/samples/facedetect/FpsMeter.java
+0
-50
FpsMeter.java
...s/src/org/opencv/samples/imagemanipulations/FpsMeter.java
+0
-50
ImageManipulationsActivity.java
...amples/imagemanipulations/ImageManipulationsActivity.java
+7
-6
Sample1Java.java
...dopencv/src/org/opencv/samples/tutorial1/Sample1Java.java
+6
-5
Sample2NativeCamera.java
...src/org/opencv/samples/tutorial2/Sample2NativeCamera.java
+9
-12
Sample3Native.java
...ative/src/org/opencv/samples/tutorial3/Sample3Native.java
+11
-11
Sample4Mixed.java
...-mixed/src/org/opencv/samples/tutorial4/Sample4Mixed.java
+16
-20
Sample5CameraControl.java
...rc/org/opencv/samples/tutorial5/Sample5CameraControl.java
+6
-5
No files found.
modules/java/generator/src/java/android+CameraBridgeViewBase.java
View file @
504264ab
...
...
@@ -36,7 +36,7 @@ public abstract class CameraBridgeViewBase extends SurfaceView implements Surfac
private
int
mState
=
STOPPED
;
private
Bitmap
mCacheBitmap
;
private
CvCameraViewListener
mListener
;
private
CvCameraViewListener
2
mListener
;
private
boolean
mSurfaceExist
;
private
Object
mSyncObject
=
new
Object
();
...
...
@@ -92,9 +92,75 @@ public abstract class CameraBridgeViewBase extends SurfaceView implements Surfac
* TODO: pass the parameters specifying the format of the frame (BPP, YUV or RGB and etc)
*/
public
Mat
onCameraFrame
(
Mat
inputFrame
);
}
public
interface
CvCameraViewListener2
{
/**
* This method is invoked when camera preview has started. After this method is invoked
* the frames will start to be delivered to client via the onCameraFrame() callback.
* @param width - the width of the frames that will be delivered
* @param height - the height of the frames that will be delivered
*/
public
void
onCameraViewStarted
(
int
width
,
int
height
);
/**
* This method is invoked when camera preview has been stopped for some reason.
* No frames will be delivered via onCameraFrame() callback after this method is called.
*/
public
void
onCameraViewStopped
();
/**
* This method is invoked when delivery of the frame needs to be done.
* The returned values - is a modified frame which needs to be displayed on the screen.
* TODO: pass the parameters specifying the format of the frame (BPP, YUV or RGB and etc)
*/
public
Mat
onCameraFrame
(
CvCameraViewFrame
inputFrame
);
};
protected
class
CvCameraViewListenerAdapter
implements
CvCameraViewListener2
{
public
CvCameraViewListenerAdapter
(
CvCameraViewListener
oldStypeListener
)
{
mOldStyleListener
=
oldStypeListener
;
}
public
void
onCameraViewStarted
(
int
width
,
int
height
)
{
mOldStyleListener
.
onCameraViewStarted
(
width
,
height
);
}
public
void
onCameraViewStopped
()
{
mOldStyleListener
.
onCameraViewStopped
();
}
public
Mat
onCameraFrame
(
CvCameraViewFrame
inputFrame
)
{
Mat
result
=
null
;
switch
(
mPreviewFormat
)
{
case
Highgui
.
CV_CAP_ANDROID_COLOR_FRAME_RGBA
:
result
=
mOldStyleListener
.
onCameraFrame
(
inputFrame
.
rgba
());
break
;
case
Highgui
.
CV_CAP_ANDROID_GREY_FRAME
:
result
=
mOldStyleListener
.
onCameraFrame
(
inputFrame
.
gray
());
break
;
default
:
Log
.
e
(
TAG
,
"Invalid frame format! Only RGBA and Gray Scale are supported!"
);
};
return
result
;
}
public
void
setFrameFormat
(
int
format
)
{
mPreviewFormat
=
format
;
}
private
CvCameraViewListenerAdapter
()
{}
private
int
mPreviewFormat
=
Highgui
.
CV_CAP_ANDROID_COLOR_FRAME_RGBA
;
private
CvCameraViewListener
mOldStyleListener
;
};
public
interface
CvCameraViewFrame
{
public
abstract
Mat
rgba
();
public
abstract
Mat
gray
();
};
public
void
surfaceChanged
(
SurfaceHolder
arg0
,
int
arg1
,
int
arg2
,
int
arg3
)
{
Log
.
d
(
TAG
,
"call surfaceChanged event"
);
synchronized
(
mSyncObject
)
{
...
...
@@ -165,10 +231,16 @@ public abstract class CameraBridgeViewBase extends SurfaceView implements Surfac
* @param listener
*/
public
void
setCvCameraViewListener
(
CvCameraViewListener
listener
)
{
public
void
setCvCameraViewListener
(
CvCameraViewListener
2
listener
)
{
mListener
=
listener
;
}
public
void
setCvCameraViewListener
(
CvCameraViewListener
listener
)
{
CvCameraViewListenerAdapter
adapter
=
new
CvCameraViewListenerAdapter
(
listener
);
adapter
.
setFrameFormat
(
mPreviewFormat
);
mListener
=
adapter
;
}
/**
* This method sets the maximum size that camera frame is allowed to be. When selecting
* size - the biggest size which less or equal the size set will be selected.
...
...
@@ -186,6 +258,10 @@ public abstract class CameraBridgeViewBase extends SurfaceView implements Surfac
public
void
SetCaptureFormat
(
int
format
)
{
mPreviewFormat
=
format
;
if
(
mListener
instanceof
CvCameraViewListenerAdapter
)
{
CvCameraViewListenerAdapter
adapter
=
(
CvCameraViewListenerAdapter
)
mListener
;
adapter
.
setFrameFormat
(
mPreviewFormat
);
}
}
/**
...
...
@@ -276,13 +352,13 @@ public abstract class CameraBridgeViewBase extends SurfaceView implements Surfac
* then displayed on the screen.
* @param frame - the current frame to be delivered
*/
protected
void
deliverAndDrawFrame
(
Mat
frame
)
{
protected
void
deliverAndDrawFrame
(
CvCameraViewFrame
frame
)
{
Mat
modified
;
if
(
mListener
!=
null
)
{
modified
=
mListener
.
onCameraFrame
(
frame
);
}
else
{
modified
=
frame
;
modified
=
frame
.
rgba
()
;
}
boolean
bmpValid
=
true
;
...
...
modules/java/generator/src/java/android+JavaCameraView.java
View file @
504264ab
...
...
@@ -16,7 +16,6 @@ import android.view.SurfaceHolder;
import
org.opencv.core.CvType
;
import
org.opencv.core.Mat
;
import
org.opencv.core.Size
;
import
org.opencv.highgui.Highgui
;
import
org.opencv.imgproc.Imgproc
;
/**
...
...
@@ -33,7 +32,6 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
private
static
final
int
MAGIC_TEXTURE_ID
=
10
;
private
static
final
String
TAG
=
"JavaCameraView"
;
private
Mat
mBaseMat
;
private
byte
mBuffer
[];
private
Mat
[]
mFrameChain
;
private
int
mChainIdx
=
0
;
...
...
@@ -41,7 +39,7 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
private
boolean
mStopThread
;
protected
Camera
mCamera
;
protected
JavaCameraFrame
mCameraFrame
;
private
SurfaceTexture
mSurfaceTexture
;
public
static
class
JavaCameraSizeAccessor
implements
ListItemAccessor
{
...
...
@@ -146,14 +144,14 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
mCamera
.
addCallbackBuffer
(
mBuffer
);
mCamera
.
setPreviewCallbackWithBuffer
(
this
);
mBaseMat
=
new
Mat
(
mFrameHeight
+
(
mFrameHeight
/
2
),
mFrameWidth
,
CvType
.
CV_8UC1
);
mFrameChain
=
new
Mat
[
2
];
mFrameChain
[
0
]
=
new
Mat
();
mFrameChain
[
1
]
=
new
Mat
();
mFrameChain
[
0
]
=
new
Mat
(
mFrameHeight
+
(
mFrameHeight
/
2
),
mFrameWidth
,
CvType
.
CV_8UC1
);
mFrameChain
[
1
]
=
new
Mat
(
mFrameHeight
+
(
mFrameHeight
/
2
),
mFrameWidth
,
CvType
.
CV_8UC1
);
AllocateCache
();
mCameraFrame
=
new
JavaCameraFrame
(
mFrameChain
[
mChainIdx
],
mFrameWidth
,
mFrameHeight
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
HONEYCOMB
)
{
mSurfaceTexture
=
new
SurfaceTexture
(
MAGIC_TEXTURE_ID
);
getHolder
().
setType
(
SurfaceHolder
.
SURFACE_TYPE_PUSH_BUFFERS
);
...
...
@@ -183,12 +181,12 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
mCamera
.
release
();
}
mCamera
=
null
;
if
(
mBaseMat
!=
null
)
mBaseMat
.
release
();
if
(
mFrameChain
!=
null
)
{
mFrameChain
[
0
].
release
();
mFrameChain
[
1
].
release
();
}
if
(
mCameraFrame
!=
null
)
mCameraFrame
.
release
();
}
}
...
...
@@ -242,13 +240,45 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
Log
.
i
(
TAG
,
"Frame size is "
+
frame
.
length
);
synchronized
(
this
)
{
m
BaseMat
.
put
(
0
,
0
,
frame
);
m
FrameChain
[
1
-
mChainIdx
]
.
put
(
0
,
0
,
frame
);
this
.
notify
();
}
if
(
mCamera
!=
null
)
mCamera
.
addCallbackBuffer
(
mBuffer
);
}
private
class
JavaCameraFrame
implements
CvCameraViewFrame
{
public
Mat
gray
()
{
return
mYuvFrameData
.
submat
(
0
,
mHeight
,
0
,
mWidth
);
}
public
Mat
rgba
()
{
Imgproc
.
cvtColor
(
mYuvFrameData
,
mRgba
,
Imgproc
.
COLOR_YUV2BGR_NV12
,
4
);
return
mRgba
;
}
public
JavaCameraFrame
(
Mat
Yuv420sp
,
int
width
,
int
height
)
{
super
();
mWidth
=
width
;
mHeight
=
height
;
mYuvFrameData
=
Yuv420sp
;
mRgba
=
new
Mat
();
}
public
void
release
()
{
mRgba
.
release
();
}
private
JavaCameraFrame
(
CvCameraViewFrame
obj
)
{
}
private
Mat
mYuvFrameData
;
private
Mat
mRgba
;
private
int
mWidth
;
private
int
mHeight
;
};
private
class
CameraWorker
implements
Runnable
{
public
void
run
()
{
...
...
@@ -263,18 +293,8 @@ public class JavaCameraView extends CameraBridgeViewBase implements PreviewCallb
}
if
(!
mStopThread
)
{
switch
(
mPreviewFormat
)
{
case
Highgui
.
CV_CAP_ANDROID_COLOR_FRAME_RGBA
:
Imgproc
.
cvtColor
(
mBaseMat
,
mFrameChain
[
mChainIdx
],
Imgproc
.
COLOR_YUV2RGBA_NV21
,
4
);
break
;
case
Highgui
.
CV_CAP_ANDROID_GREY_FRAME
:
mFrameChain
[
mChainIdx
]
=
mBaseMat
.
submat
(
0
,
mFrameHeight
,
0
,
mFrameWidth
);
break
;
default
:
Log
.
e
(
TAG
,
"Invalid frame format! Only RGBA and Gray Scale are supported!"
);
};
if
(!
mFrameChain
[
mChainIdx
].
empty
())
deliverAndDrawFrame
(
m
FrameChain
[
mChainIdx
]
);
deliverAndDrawFrame
(
m
CameraFrame
);
mChainIdx
=
1
-
mChainIdx
;
}
}
while
(!
mStopThread
);
...
...
modules/java/generator/src/java/android+NativeCameraView.java
View file @
504264ab
...
...
@@ -125,6 +125,31 @@ public class NativeCameraView extends CameraBridgeViewBase {
}
}
private
class
NativeCameraFrame
implements
CvCameraViewFrame
{
@Override
public
Mat
rgba
()
{
mCamera
.
retrieve
(
mRgba
,
Highgui
.
CV_CAP_ANDROID_COLOR_FRAME_RGBA
);
return
mRgba
;
}
@Override
public
Mat
gray
()
{
mCamera
.
retrieve
(
mGray
,
Highgui
.
CV_CAP_ANDROID_GREY_FRAME
);
return
mGray
;
}
public
NativeCameraFrame
(
VideoCapture
capture
)
{
mCapture
=
capture
;
mGray
=
new
Mat
();
mRgba
=
new
Mat
();
}
private
VideoCapture
mCapture
;
private
Mat
mRgba
;
private
Mat
mGray
;
};
private
class
CameraWorker
implements
Runnable
{
private
Mat
mRgba
=
new
Mat
();
...
...
@@ -137,22 +162,9 @@ public class NativeCameraView extends CameraBridgeViewBase {
break
;
}
switch
(
mPreviewFormat
)
{
case
Highgui
.
CV_CAP_ANDROID_COLOR_FRAME_RGBA
:
{
mCamera
.
retrieve
(
mRgba
,
Highgui
.
CV_CAP_ANDROID_COLOR_FRAME_RGBA
);
deliverAndDrawFrame
(
mRgba
);
}
break
;
case
Highgui
.
CV_CAP_ANDROID_GREY_FRAME
:
mCamera
.
retrieve
(
mGray
,
Highgui
.
CV_CAP_ANDROID_GREY_FRAME
);
deliverAndDrawFrame
(
mGray
);
break
;
default
:
Log
.
e
(
TAG
,
"Invalid frame format! Only RGBA and Gray Scale are supported!"
);
}
deliverAndDrawFrame
(
new
NativeCameraFrame
(
mCamera
));
}
while
(!
mStopThread
);
}
}
...
...
samples/android/15-puzzle/src/org/opencv/samples/puzzle15/Puzzle15Activity.java
View file @
504264ab
...
...
@@ -63,9 +63,9 @@ public class Puzzle15Activity extends Activity implements CvCameraViewListener,
@Override
public
void
onPause
()
{
super
.
onPause
();
if
(
mOpenCvCameraView
!=
null
)
mOpenCvCameraView
.
disableView
();
super
.
onPause
();
}
@Override
...
...
@@ -109,10 +109,6 @@ public class Puzzle15Activity extends Activity implements CvCameraViewListener,
public
void
onCameraViewStopped
()
{
}
public
Mat
onCameraFrame
(
Mat
inputFrame
)
{
return
mPuzzle15
.
puzzleFrame
(
inputFrame
);
}
public
boolean
onTouch
(
View
view
,
MotionEvent
event
)
{
int
xpos
,
ypos
;
...
...
@@ -129,4 +125,8 @@ public class Puzzle15Activity extends Activity implements CvCameraViewListener,
return
false
;
}
public
Mat
onCameraFrame
(
Mat
inputFrame
)
{
return
mPuzzle15
.
puzzleFrame
(
inputFrame
);
}
}
samples/android/color-blob-detection/src/org/opencv/samples/colorblobdetect/ColorBlobDetectionActivity.java
View file @
504264ab
...
...
@@ -3,6 +3,7 @@ package org.opencv.samples.colorblobdetect;
import
java.util.List
;
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.Core
;
...
...
@@ -13,7 +14,7 @@ import org.opencv.core.Rect;
import
org.opencv.core.Scalar
;
import
org.opencv.core.Size
;
import
org.opencv.android.CameraBridgeViewBase
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener
2
;
import
org.opencv.imgproc.Imgproc
;
import
android.app.Activity
;
...
...
@@ -25,7 +26,7 @@ import android.view.Window;
import
android.view.WindowManager
;
import
android.view.View.OnTouchListener
;
public
class
ColorBlobDetectionActivity
extends
Activity
implements
OnTouchListener
,
CvCameraViewListener
{
public
class
ColorBlobDetectionActivity
extends
Activity
implements
OnTouchListener
,
CvCameraViewListener
2
{
private
static
final
String
TAG
=
"OCVSample::Activity"
;
private
boolean
mIsColorSelected
=
false
;
...
...
@@ -78,9 +79,9 @@ public class ColorBlobDetectionActivity extends Activity implements OnTouchListe
@Override
public
void
onPause
()
{
super
.
onPause
();
if
(
mOpenCvCameraView
!=
null
)
mOpenCvCameraView
.
disableView
();
super
.
onPause
();
}
@Override
...
...
@@ -160,8 +161,8 @@ public class ColorBlobDetectionActivity extends Activity implements OnTouchListe
return
false
;
// don't need subsequent touch events
}
public
Mat
onCameraFrame
(
Mat
inputFrame
)
{
inputFrame
.
copyTo
(
mRgba
);
public
Mat
onCameraFrame
(
CvCameraViewFrame
inputFrame
)
{
mRgba
=
inputFrame
.
rgba
(
);
if
(
mIsColorSelected
)
{
mDetector
.
process
(
mRgba
);
...
...
samples/android/face-detection/src/org/opencv/samples/facedetect/FdActivity.java
View file @
504264ab
...
...
@@ -6,6 +6,7 @@ import java.io.IOException;
import
java.io.InputStream
;
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.Core
;
...
...
@@ -15,8 +16,7 @@ import org.opencv.core.Rect;
import
org.opencv.core.Scalar
;
import
org.opencv.core.Size
;
import
org.opencv.android.CameraBridgeViewBase
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener
;
import
org.opencv.imgproc.Imgproc
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener2
;
import
org.opencv.objdetect.CascadeClassifier
;
import
android.app.Activity
;
...
...
@@ -27,7 +27,7 @@ import android.view.Menu;
import
android.view.MenuItem
;
import
android.view.WindowManager
;
public
class
FdActivity
extends
Activity
implements
CvCameraViewListener
{
public
class
FdActivity
extends
Activity
implements
CvCameraViewListener
2
{
private
static
final
String
TAG
=
"OCVSample::Activity"
;
private
static
final
Scalar
FACE_RECT_COLOR
=
new
Scalar
(
0
,
255
,
0
,
255
);
...
...
@@ -130,9 +130,9 @@ public class FdActivity extends Activity implements CvCameraViewListener {
@Override
public
void
onPause
()
{
super
.
onPause
();
if
(
mOpenCvCameraView
!=
null
)
mOpenCvCameraView
.
disableView
();
super
.
onPause
();
}
@Override
...
...
@@ -157,10 +157,10 @@ public class FdActivity extends Activity implements CvCameraViewListener {
mRgba
.
release
();
}
public
Mat
onCameraFrame
(
Mat
inputFrame
)
{
public
Mat
onCameraFrame
(
CvCameraViewFrame
inputFrame
)
{
inputFrame
.
copyTo
(
mRgba
);
Imgproc
.
cvtColor
(
inputFrame
,
mGray
,
Imgproc
.
COLOR_RGBA2GRAY
);
mRgba
=
inputFrame
.
rgba
(
);
mGray
=
inputFrame
.
gray
(
);
if
(
mAbsoluteFaceSize
==
0
)
{
int
height
=
mGray
.
rows
();
...
...
samples/android/face-detection/src/org/opencv/samples/facedetect/FpsMeter.java
deleted
100644 → 0
View file @
46ca5c32
package
org
.
opencv
.
samples
.
facedetect
;
import
java.text.DecimalFormat
;
import
org.opencv.core.Core
;
import
android.graphics.Canvas
;
import
android.graphics.Color
;
import
android.graphics.Paint
;
import
android.util.Log
;
public
class
FpsMeter
{
private
static
final
String
TAG
=
"OCVSample::FpsMeter"
;
int
step
;
int
framesCouner
;
double
freq
;
long
prevFrameTime
;
String
strfps
;
DecimalFormat
twoPlaces
=
new
DecimalFormat
(
"0.00"
);
Paint
paint
;
public
void
init
()
{
step
=
20
;
framesCouner
=
0
;
freq
=
Core
.
getTickFrequency
();
prevFrameTime
=
Core
.
getTickCount
();
strfps
=
""
;
paint
=
new
Paint
();
paint
.
setColor
(
Color
.
BLUE
);
paint
.
setTextSize
(
50
);
}
public
void
measure
()
{
framesCouner
++;
if
(
framesCouner
%
step
==
0
)
{
long
time
=
Core
.
getTickCount
();
double
fps
=
step
*
freq
/
(
time
-
prevFrameTime
);
prevFrameTime
=
time
;
DecimalFormat
twoPlaces
=
new
DecimalFormat
(
"0.00"
);
strfps
=
twoPlaces
.
format
(
fps
)
+
" FPS"
;
Log
.
i
(
TAG
,
strfps
);
}
}
public
void
draw
(
Canvas
canvas
,
float
offsetx
,
float
offsety
)
{
canvas
.
drawText
(
strfps
,
20
+
offsetx
,
10
+
50
+
offsety
,
paint
);
}
}
samples/android/image-manipulations/src/org/opencv/samples/imagemanipulations/FpsMeter.java
deleted
100644 → 0
View file @
46ca5c32
package
org
.
opencv
.
samples
.
imagemanipulations
;
import
java.text.DecimalFormat
;
import
org.opencv.core.Core
;
import
android.graphics.Canvas
;
import
android.graphics.Color
;
import
android.graphics.Paint
;
import
android.util.Log
;
public
class
FpsMeter
{
private
static
final
String
TAG
=
"OCVSample::FpsMeter"
;
int
step
;
int
framesCouner
;
double
freq
;
long
prevFrameTime
;
String
strfps
;
DecimalFormat
twoPlaces
=
new
DecimalFormat
(
"0.00"
);
Paint
paint
;
public
void
init
()
{
step
=
20
;
framesCouner
=
0
;
freq
=
Core
.
getTickFrequency
();
prevFrameTime
=
Core
.
getTickCount
();
strfps
=
""
;
paint
=
new
Paint
();
paint
.
setColor
(
Color
.
BLUE
);
paint
.
setTextSize
(
50
);
}
public
void
measure
()
{
framesCouner
++;
if
(
framesCouner
%
step
==
0
)
{
long
time
=
Core
.
getTickCount
();
double
fps
=
step
*
freq
/
(
time
-
prevFrameTime
);
prevFrameTime
=
time
;
DecimalFormat
twoPlaces
=
new
DecimalFormat
(
"0.00"
);
strfps
=
twoPlaces
.
format
(
fps
)
+
" FPS"
;
Log
.
i
(
TAG
,
strfps
);
}
}
public
void
draw
(
Canvas
canvas
,
float
offsetx
,
float
offsety
)
{
canvas
.
drawText
(
strfps
,
20
+
offsetx
,
10
+
50
+
offsety
,
paint
);
}
}
samples/android/image-manipulations/src/org/opencv/samples/imagemanipulations/ImageManipulationsActivity.java
View file @
504264ab
...
...
@@ -3,6 +3,7 @@ package org.opencv.samples.imagemanipulations;
import
java.util.Arrays
;
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.Core
;
...
...
@@ -14,7 +15,7 @@ import org.opencv.core.Point;
import
org.opencv.core.Scalar
;
import
org.opencv.core.Size
;
import
org.opencv.android.CameraBridgeViewBase
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener
2
;
import
org.opencv.imgproc.Imgproc
;
import
android.app.Activity
;
...
...
@@ -24,7 +25,7 @@ import android.view.Menu;
import
android.view.MenuItem
;
import
android.view.WindowManager
;
public
class
ImageManipulationsActivity
extends
Activity
implements
CvCameraViewListener
{
public
class
ImageManipulationsActivity
extends
Activity
implements
CvCameraViewListener
2
{
private
static
final
String
TAG
=
"OCVSample::Activity"
;
public
static
final
int
VIEW_MODE_RGBA
=
0
;
...
...
@@ -111,9 +112,9 @@ public class ImageManipulationsActivity extends Activity implements CvCameraView
@Override
public
void
onPause
()
{
super
.
onPause
();
if
(
mOpenCvCameraView
!=
null
)
mOpenCvCameraView
.
disableView
();
super
.
onPause
();
}
@Override
...
...
@@ -258,8 +259,8 @@ public class ImageManipulationsActivity extends Activity implements CvCameraView
mZoomWindow
=
null
;
}
public
Mat
onCameraFrame
(
Mat
inputFrame
)
{
inputFrame
.
copyTo
(
mRgba
);
public
Mat
onCameraFrame
(
CvCameraViewFrame
inputFrame
)
{
mRgba
=
inputFrame
.
rgba
(
);
switch
(
ImageManipulationsActivity
.
viewMode
)
{
case
ImageManipulationsActivity
.
VIEW_MODE_RGBA
:
...
...
@@ -315,7 +316,7 @@ public class ImageManipulationsActivity extends Activity implements CvCameraView
break
;
case
ImageManipulationsActivity
.
VIEW_MODE_SOBEL
:
Imgproc
.
cvtColor
(
mRgba
,
mGray
,
Imgproc
.
COLOR_RGBA2GRAY
);
mGray
=
inputFrame
.
gray
(
);
if
((
mRgbaInnerWindow
==
null
)
||
(
mGrayInnerWindow
==
null
)
||
(
mRgba
.
cols
()
!=
mSizeRgba
.
width
)
||
(
mRgba
.
height
()
!=
mSizeRgba
.
height
))
CreateAuxiliaryMats
();
...
...
samples/android/tutorial-1-addopencv/src/org/opencv/samples/tutorial1/Sample1Java.java
View file @
504264ab
package
org
.
opencv
.
samples
.
tutorial1
;
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.Mat
;
import
org.opencv.android.CameraBridgeViewBase
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener
2
;
import
android.app.Activity
;
import
android.os.Bundle
;
...
...
@@ -16,7 +17,7 @@ import android.view.SurfaceView;
import
android.view.WindowManager
;
import
android.widget.Toast
;
public
class
Sample1Java
extends
Activity
implements
CvCameraViewListener
{
public
class
Sample1Java
extends
Activity
implements
CvCameraViewListener
2
{
private
static
final
String
TAG
=
"OCVSample::Activity"
;
private
CameraBridgeViewBase
mOpenCvCameraView
;
...
...
@@ -66,9 +67,9 @@ public class Sample1Java extends Activity implements CvCameraViewListener {
@Override
public
void
onPause
()
{
super
.
onPause
();
if
(
mOpenCvCameraView
!=
null
)
mOpenCvCameraView
.
disableView
();
super
.
onPause
();
}
@Override
...
...
@@ -124,7 +125,7 @@ public class Sample1Java extends Activity implements CvCameraViewListener {
public
void
onCameraViewStopped
()
{
}
public
Mat
onCameraFrame
(
Mat
inputFrame
)
{
return
inputFrame
;
public
Mat
onCameraFrame
(
CvCameraViewFrame
inputFrame
)
{
return
inputFrame
.
rgba
()
;
}
}
samples/android/tutorial-2-opencvcamera/src/org/opencv/samples/tutorial2/Sample2NativeCamera.java
View file @
504264ab
package
org
.
opencv
.
samples
.
tutorial2
;
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.Core
;
...
...
@@ -9,8 +10,7 @@ import org.opencv.core.Mat;
import
org.opencv.core.Point
;
import
org.opencv.core.Scalar
;
import
org.opencv.android.CameraBridgeViewBase
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener
;
import
org.opencv.highgui.Highgui
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener2
;
import
org.opencv.imgproc.Imgproc
;
import
android.app.Activity
;
...
...
@@ -20,7 +20,7 @@ import android.view.Menu;
import
android.view.MenuItem
;
import
android.view.WindowManager
;
public
class
Sample2NativeCamera
extends
Activity
implements
CvCameraViewListener
{
public
class
Sample2NativeCamera
extends
Activity
implements
CvCameraViewListener
2
{
private
static
final
String
TAG
=
"OCVSample::Activity"
;
public
static
final
int
VIEW_MODE_RGBA
=
0
;
...
...
@@ -73,9 +73,9 @@ public class Sample2NativeCamera extends Activity implements CvCameraViewListene
@Override
public
void
onPause
()
{
super
.
onPause
();
if
(
mOpenCvCameraView
!=
null
)
mOpenCvCameraView
.
disableView
();
super
.
onPause
();
}
@Override
...
...
@@ -101,20 +101,20 @@ public class Sample2NativeCamera extends Activity implements CvCameraViewListene
mIntermediateMat
.
release
();
}
public
Mat
onCameraFrame
(
Mat
inputFrame
)
{
public
Mat
onCameraFrame
(
CvCameraViewFrame
inputFrame
)
{
switch
(
Sample2NativeCamera
.
viewMode
)
{
case
Sample2NativeCamera
.
VIEW_MODE_GRAY
:
{
Imgproc
.
cvtColor
(
inputFrame
,
mRgba
,
Imgproc
.
COLOR_GRAY2RGBA
,
4
);
Imgproc
.
cvtColor
(
inputFrame
.
gray
()
,
mRgba
,
Imgproc
.
COLOR_GRAY2RGBA
,
4
);
}
break
;
case
Sample2NativeCamera
.
VIEW_MODE_RGBA
:
{
inputFrame
.
copyTo
(
mRgba
);
Core
.
putText
(
mRgba
,
"OpenCV+Android"
,
new
Point
(
10
,
inputFrame
.
rows
()
-
10
),
3
,
1
,
new
Scalar
(
255
,
0
,
0
,
255
),
2
);
mRgba
=
inputFrame
.
rgba
(
);
Core
.
putText
(
mRgba
,
"OpenCV+Android"
,
new
Point
(
10
,
mRgba
.
rows
()
-
10
),
3
,
1
,
new
Scalar
(
255
,
0
,
0
,
255
),
2
);
}
break
;
case
Sample2NativeCamera
.
VIEW_MODE_CANNY
:
{
Imgproc
.
Canny
(
inputFrame
,
mIntermediateMat
,
80
,
100
);
Imgproc
.
Canny
(
inputFrame
.
gray
()
,
mIntermediateMat
,
80
,
100
);
Imgproc
.
cvtColor
(
mIntermediateMat
,
mRgba
,
Imgproc
.
COLOR_GRAY2BGRA
,
4
);
}
break
;
}
...
...
@@ -136,17 +136,14 @@ public class Sample2NativeCamera extends Activity implements CvCameraViewListene
Log
.
i
(
TAG
,
"called onOptionsItemSelected; selected item: "
+
item
);
if
(
item
==
mItemPreviewRGBA
)
{
mOpenCvCameraView
.
SetCaptureFormat
(
Highgui
.
CV_CAP_ANDROID_COLOR_FRAME_RGBA
);
viewMode
=
VIEW_MODE_RGBA
;
}
else
if
(
item
==
mItemPreviewGray
)
{
mOpenCvCameraView
.
SetCaptureFormat
(
Highgui
.
CV_CAP_ANDROID_GREY_FRAME
);
viewMode
=
VIEW_MODE_GRAY
;
}
else
if
(
item
==
mItemPreviewCanny
)
{
mOpenCvCameraView
.
SetCaptureFormat
(
Highgui
.
CV_CAP_ANDROID_GREY_FRAME
);
viewMode
=
VIEW_MODE_CANNY
;
}
...
...
samples/android/tutorial-3-native/src/org/opencv/samples/tutorial3/Sample3Native.java
View file @
504264ab
package
org
.
opencv
.
samples
.
tutorial3
;
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.CvCameraViewListener
;
import
org.opencv.imgproc.Imgproc
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener2
;
import
android.app.Activity
;
import
android.os.Bundle
;
import
android.util.Log
;
import
android.view.WindowManager
;
public
class
Sample3Native
extends
Activity
implements
CvCameraViewListener
{
public
class
Sample3Native
extends
Activity
implements
CvCameraViewListener
2
{
private
static
final
String
TAG
=
"OCVSample::Activity"
;
private
Mat
mRgba
;
private
Mat
mGray
Mat
;
private
Mat
mGray
;
private
CameraBridgeViewBase
mOpenCvCameraView
;
private
BaseLoaderCallback
mLoaderCallback
=
new
BaseLoaderCallback
(
this
)
{
...
...
@@ -62,9 +62,9 @@ public class Sample3Native extends Activity implements CvCameraViewListener {
@Override
public
void
onPause
()
{
super
.
onPause
();
if
(
mOpenCvCameraView
!=
null
)
mOpenCvCameraView
.
disableView
();
super
.
onPause
();
}
@Override
...
...
@@ -82,18 +82,18 @@ public class Sample3Native extends Activity implements CvCameraViewListener {
public
void
onCameraViewStarted
(
int
width
,
int
height
)
{
mRgba
=
new
Mat
(
height
,
width
,
CvType
.
CV_8UC4
);
mGray
Mat
=
new
Mat
(
height
,
width
,
CvType
.
CV_8UC1
);
mGray
=
new
Mat
(
height
,
width
,
CvType
.
CV_8UC1
);
}
public
void
onCameraViewStopped
()
{
mRgba
.
release
();
mGray
Mat
.
release
();
mGray
.
release
();
}
public
Mat
onCameraFrame
(
Mat
inputFrame
)
{
inputFrame
.
copyTo
(
mRgba
);
Imgproc
.
cvtColor
(
mRgba
,
mGrayMat
,
Imgproc
.
COLOR_RGBA2GRAY
);
FindFeatures
(
mGray
Mat
.
getNativeObjAddr
(),
mRgba
.
getNativeObjAddr
());
public
Mat
onCameraFrame
(
CvCameraViewFrame
inputFrame
)
{
mRgba
=
inputFrame
.
rgba
(
);
mGray
=
inputFrame
.
gray
(
);
FindFeatures
(
mGray
.
getNativeObjAddr
(),
mRgba
.
getNativeObjAddr
());
return
mRgba
;
}
...
...
samples/android/tutorial-4-mixed/src/org/opencv/samples/tutorial4/Sample4Mixed.java
View file @
504264ab
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.CvCameraViewListener
;
import
org.opencv.highgui.Highgui
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener2
;
import
org.opencv.imgproc.Imgproc
;
import
android.app.Activity
;
...
...
@@ -17,7 +17,7 @@ import android.view.Menu;
import
android.view.MenuItem
;
import
android.view.WindowManager
;
public
class
Sample4Mixed
extends
Activity
implements
CvCameraViewListener
{
public
class
Sample4Mixed
extends
Activity
implements
CvCameraViewListener
2
{
private
static
final
String
TAG
=
"OCVSample::Activity"
;
private
static
final
int
VIEW_MODE_RGBA
=
0
;
...
...
@@ -28,7 +28,7 @@ public class Sample4Mixed extends Activity implements CvCameraViewListener {
private
int
mViewMode
;
private
Mat
mRgba
;
private
Mat
mIntermediateMat
;
private
Mat
mGray
Mat
;
private
Mat
mGray
;
private
MenuItem
mItemPreviewRGBA
;
private
MenuItem
mItemPreviewGray
;
...
...
@@ -88,9 +88,9 @@ public class Sample4Mixed extends Activity implements CvCameraViewListener {
@Override
public
void
onPause
()
{
super
.
onPause
();
if
(
mOpenCvCameraView
!=
null
)
mOpenCvCameraView
.
disableView
();
super
.
onPause
();
}
@Override
...
...
@@ -109,37 +109,37 @@ public class Sample4Mixed extends Activity implements CvCameraViewListener {
public
void
onCameraViewStarted
(
int
width
,
int
height
)
{
mRgba
=
new
Mat
(
height
,
width
,
CvType
.
CV_8UC4
);
mIntermediateMat
=
new
Mat
(
height
,
width
,
CvType
.
CV_8UC4
);
mGray
Mat
=
new
Mat
(
height
,
width
,
CvType
.
CV_8UC1
);
mGray
=
new
Mat
(
height
,
width
,
CvType
.
CV_8UC1
);
}
public
void
onCameraViewStopped
()
{
mRgba
.
release
();
mGray
Mat
.
release
();
mGray
.
release
();
mIntermediateMat
.
release
();
}
public
Mat
onCameraFrame
(
Mat
inputFrame
)
{
public
Mat
onCameraFrame
(
CvCameraViewFrame
inputFrame
)
{
final
int
viewMode
=
mViewMode
;
switch
(
viewMode
)
{
case
VIEW_MODE_GRAY:
// input frame has gray scale format
Imgproc
.
cvtColor
(
inputFrame
,
mRgba
,
Imgproc
.
COLOR_GRAY2RGBA
,
4
);
Imgproc
.
cvtColor
(
inputFrame
.
gray
()
,
mRgba
,
Imgproc
.
COLOR_GRAY2RGBA
,
4
);
break
;
case
VIEW_MODE_RGBA:
// input frame has RBGA format
inputFrame
.
copyTo
(
mRgba
);
mRgba
=
inputFrame
.
rgba
(
);
break
;
case
VIEW_MODE_CANNY:
// input frame has gray scale format
Imgproc
.
Canny
(
inputFrame
,
mIntermediateMat
,
80
,
100
);
Imgproc
.
cvtColor
(
mIntermediateMat
,
mRgba
,
Imgproc
.
COLOR_GRAY2BGRA
,
4
);
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
inputFrame
.
copyTo
(
mRgba
);
Imgproc
.
cvtColor
(
mRgba
,
mGrayMat
,
Imgproc
.
COLOR_RGBA2GRAY
);
FindFeatures
(
mGray
Mat
.
getNativeObjAddr
(),
mRgba
.
getNativeObjAddr
());
mRgba
=
inputFrame
.
rgba
(
);
mGray
=
inputFrame
.
gray
(
);
FindFeatures
(
mGray
.
getNativeObjAddr
(),
mRgba
.
getNativeObjAddr
());
break
;
}
...
...
@@ -150,17 +150,13 @@ public class Sample4Mixed extends Activity implements CvCameraViewListener {
Log
.
i
(
TAG
,
"called onOptionsItemSelected; selected item: "
+
item
);
if
(
item
==
mItemPreviewRGBA
)
{
mOpenCvCameraView
.
SetCaptureFormat
(
Highgui
.
CV_CAP_ANDROID_COLOR_FRAME_RGBA
);
mViewMode
=
VIEW_MODE_RGBA
;
}
else
if
(
item
==
mItemPreviewGray
)
{
mOpenCvCameraView
.
SetCaptureFormat
(
Highgui
.
CV_CAP_ANDROID_GREY_FRAME
);
mViewMode
=
VIEW_MODE_GRAY
;
}
else
if
(
item
==
mItemPreviewCanny
)
{
mOpenCvCameraView
.
SetCaptureFormat
(
Highgui
.
CV_CAP_ANDROID_GREY_FRAME
);
mViewMode
=
VIEW_MODE_CANNY
;
}
else
if
(
item
==
mItemPreviewFeatures
)
{
mViewMode
=
VIEW_MODE_FEATURES
;
mOpenCvCameraView
.
SetCaptureFormat
(
Highgui
.
CV_CAP_ANDROID_COLOR_FRAME_RGBA
);
}
return
true
;
...
...
samples/android/tutorial-5-cameracontrol/src/org/opencv/samples/tutorial5/Sample5CameraControl.java
View file @
504264ab
...
...
@@ -6,10 +6,11 @@ import java.util.List;
import
java.util.ListIterator
;
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.Mat
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener
;
import
org.opencv.android.CameraBridgeViewBase.CvCameraViewListener
2
;
import
android.annotation.SuppressLint
;
import
android.app.Activity
;
...
...
@@ -27,7 +28,7 @@ import android.view.View.OnTouchListener;
import
android.view.WindowManager
;
import
android.widget.Toast
;
public
class
Sample5CameraControl
extends
Activity
implements
CvCameraViewListener
,
OnTouchListener
{
public
class
Sample5CameraControl
extends
Activity
implements
CvCameraViewListener
2
,
OnTouchListener
{
private
static
final
String
TAG
=
"OCVSample::Activity"
;
private
SampleJavaCameraView
mOpenCvCameraView
;
...
...
@@ -78,9 +79,9 @@ public class Sample5CameraControl extends Activity implements CvCameraViewListen
@Override
public
void
onPause
()
{
super
.
onPause
();
if
(
mOpenCvCameraView
!=
null
)
mOpenCvCameraView
.
disableView
();
super
.
onPause
();
}
@Override
...
...
@@ -102,8 +103,8 @@ public class Sample5CameraControl extends Activity implements CvCameraViewListen
public
void
onCameraViewStopped
()
{
}
public
Mat
onCameraFrame
(
Mat
inputFrame
)
{
return
inputFrame
;
public
Mat
onCameraFrame
(
CvCameraViewFrame
inputFrame
)
{
return
inputFrame
.
rgba
()
;
}
@Override
...
...
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