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
cc3430db
Commit
cc3430db
authored
Oct 17, 2012
by
Alexander Smorkalov
Committed by
Andrey Kamaev
Oct 23, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Naming fixed;
Warnings fixed; Nexus 7 support added to manifest.
parent
cd152c3a
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
23 additions
and
40 deletions
+23
-40
AndroidManifest.xml
samples/android/camera-preview/AndroidManifest.xml
+4
-4
activity_camera_writer.xml
...roid/camera-preview/res/layout/activity_camera_writer.xml
+1
-1
CameraViewBase.java
...view/src/org/opencv/test/camerawriter/CameraViewBase.java
+9
-9
NativeCameraView.java
...ew/src/org/opencv/test/camerawriter/NativeCameraView.java
+5
-20
PreviewActivity.java
...iew/src/org/opencv/test/camerawriter/PreviewActivity.java
+4
-6
No files found.
samples/android/camera-preview/AndroidManifest.xml
View file @
cc3430db
...
...
@@ -3,9 +3,9 @@
android:versionCode=
"1"
android:versionName=
"1.0"
>
<uses-permission
android:name=
"android.permission.CAMERA"
/>
<uses-feature
android:name=
"android.hardware.camera"
/>
<uses-feature
android:name=
"android.hardware.camera.autofocus"
/>
<uses-permission
android:name=
"android.permission.CAMERA"
required=
"false"
/>
<uses-feature
android:name=
"android.hardware.camera"
required=
"false"
/>
<uses-feature
android:name=
"android.hardware.camera.autofocus"
required=
"false"
/>
<uses-sdk
android:minSdkVersion=
"8"
/>
...
...
@@ -14,7 +14,7 @@
android:label=
"@string/app_name"
android:theme=
"@style/AppTheme"
>
<activity
android:name=
".
CameraWriter
Activity"
android:name=
".
Preview
Activity"
android:label=
"@string/title_activity_camera_writer"
>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
...
...
samples/android/camera-preview/res/layout/activity_camera_writer.xml
View file @
cc3430db
...
...
@@ -3,7 +3,7 @@
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<view
class=
"org.opencv.test.camerawriter.OpenCv
NativeCameraView"
<view
class=
"org.opencv.test.camerawriter.
NativeCameraView"
android:id=
"@+id/camera_surface_view"
android:layout_width =
"fill_parent"
android:layout_height=
"fill_parent"
...
...
samples/android/camera-preview/src/org/opencv/test/camerawriter/
OpenCvCameraBridge
ViewBase.java
→
samples/android/camera-preview/src/org/opencv/test/camerawriter/
Camera
ViewBase.java
View file @
cc3430db
...
...
@@ -5,8 +5,6 @@ import java.util.List;
import
org.opencv.android.Utils
;
import
org.opencv.core.Mat
;
import
org.opencv.core.Size
;
import
org.opencv.highgui.Highgui
;
import
org.opencv.highgui.VideoCapture
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
...
...
@@ -23,7 +21,7 @@ import android.view.SurfaceView;
* frame to the screen.
* The clients shall implement CvCameraViewListener
*/
public
abstract
class
OpenCvCameraBridge
ViewBase
extends
SurfaceView
implements
SurfaceHolder
.
Callback
{
public
abstract
class
Camera
ViewBase
extends
SurfaceView
implements
SurfaceHolder
.
Callback
{
private
static
final
int
MAX_UNSPECIFIED
=
-
1
;
...
...
@@ -36,8 +34,9 @@ public abstract class OpenCvCameraBridgeViewBase extends SurfaceView implements
private
Bitmap
mCacheBitmap
;
public
OpenCvCameraBridge
ViewBase
(
Context
context
,
AttributeSet
attrs
)
{
public
Camera
ViewBase
(
Context
context
,
AttributeSet
attrs
)
{
super
(
context
,
attrs
);
Log
.
d
(
TAG
,
"call CameraViewBase constructor"
);
getHolder
().
addCallback
(
this
);
mMaxWidth
=
MAX_UNSPECIFIED
;
mMaxHeight
=
MAX_UNSPECIFIED
;
...
...
@@ -113,7 +112,7 @@ public abstract class OpenCvCameraBridgeViewBase extends SurfaceView implements
/**
* This method is provided for clients, so they can enable the camera connection.
* The actual
l
onCameraViewStarted callback will be delivered only after both this method is called and surface is available
* The actual onCameraViewStarted callback will be delivered only after both this method is called and surface is available
*/
public
void
enableView
()
{
synchronized
(
mSyncObject
)
{
...
...
@@ -124,7 +123,7 @@ public abstract class OpenCvCameraBridgeViewBase extends SurfaceView implements
/**
* This method is provided for clients, so they can disable camera connection and stop
* the delivery of frames even
though the surface
view itself is not destroyed and still stays on the scren
* the delivery of frames even
though the surface
view itself is not destroyed and still stays on the scren
*/
public
void
disableView
()
{
synchronized
(
mSyncObject
)
{
...
...
@@ -143,9 +142,9 @@ public abstract class OpenCvCameraBridgeViewBase extends SurfaceView implements
* size - the biggest size which less or equal the size set will be selected.
* As an example - we set setMaxFrameSize(200,200) and we have 176x152 and 320x240 sizes. The
* preview frame will be selected with 176x152 size.
* This method is useful
l
when need to restrict the size of preview frame for some reason (for example for video recording)
* This method is useful when need to restrict the size of preview frame for some reason (for example for video recording)
* @param maxWidth - the maximum width allowed for camera frame.
* @param maxHeight - the max
u
mum height allowed for camera frame
* @param maxHeight - the max
i
mum height allowed for camera frame
*/
public
void
setMaxFrameSize
(
int
maxWidth
,
int
maxHeight
)
{
mMaxWidth
=
maxWidth
;
...
...
@@ -212,7 +211,7 @@ public abstract class OpenCvCameraBridgeViewBase extends SurfaceView implements
private
void
onEnterStartedState
()
{
connectCamera
(
getWidth
(),
getHeight
());
/* Now create cahe Bitmap */
/* Now create ca
c
he Bitmap */
mCacheBitmap
=
Bitmap
.
createBitmap
(
mFrameWidth
,
mFrameHeight
,
Bitmap
.
Config
.
ARGB_8888
);
}
...
...
@@ -249,6 +248,7 @@ public abstract class OpenCvCameraBridgeViewBase extends SurfaceView implements
if
(
mCacheBitmap
!=
null
)
{
Canvas
canvas
=
getHolder
().
lockCanvas
();
if
(
canvas
!=
null
)
{
canvas
.
drawColor
(
0
,
android
.
graphics
.
PorterDuff
.
Mode
.
CLEAR
);
canvas
.
drawBitmap
(
mCacheBitmap
,
(
canvas
.
getWidth
()
-
mCacheBitmap
.
getWidth
())
/
2
,
(
canvas
.
getHeight
()
-
mCacheBitmap
.
getHeight
())
/
2
,
null
);
getHolder
().
unlockCanvasAndPost
(
canvas
);
}
...
...
samples/android/camera-preview/src/org/opencv/test/camerawriter/
OpenCv
NativeCameraView.java
→
samples/android/camera-preview/src/org/opencv/test/camerawriter/NativeCameraView.java
View file @
cc3430db
package
org
.
opencv
.
test
.
camerawriter
;
import
org.opencv.android.Utils
;
import
org.opencv.core.Mat
;
import
org.opencv.core.Size
;
import
org.opencv.highgui.Highgui
;
import
org.opencv.highgui.VideoCapture
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.graphics.Canvas
;
import
android.util.AttributeSet
;
import
android.util.Log
;
...
...
@@ -17,7 +14,7 @@ import android.util.Log;
* Due to the big amount of work done, by the base class this child is only responsible
* for creating camera, destroying camera and delivering frames while camera is enabled
*/
public
class
OpenCvNativeCameraView
extends
OpenCvCameraBridge
ViewBase
{
public
class
NativeCameraView
extends
Camera
ViewBase
{
public
static
final
String
TAG
=
"OpenCvNativeCameraView"
;
private
boolean
mStopThread
;
...
...
@@ -25,7 +22,7 @@ public class OpenCvNativeCameraView extends OpenCvCameraBridgeViewBase {
private
VideoCapture
mCamera
;
public
OpenCv
NativeCameraView
(
Context
context
,
AttributeSet
attrs
)
{
public
NativeCameraView
(
Context
context
,
AttributeSet
attrs
)
{
super
(
context
,
attrs
);
}
...
...
@@ -40,7 +37,7 @@ public class OpenCvNativeCameraView extends OpenCvCameraBridgeViewBase {
initializeCamera
(
getWidth
(),
getHeight
());
/* now we can start update thread */
mThread
=
new
Thread
(
new
CameraWorker
(
getWidth
(),
getHeight
()
));
mThread
=
new
Thread
(
new
CameraWorker
(
));
mThread
.
start
();
}
...
...
@@ -94,20 +91,7 @@ public class OpenCvNativeCameraView extends OpenCvCameraBridgeViewBase {
}
private
class
CameraWorker
implements
Runnable
{
private
Mat
mRgba
=
new
Mat
();
private
int
mWidth
;
private
int
mHeight
;
CameraWorker
(
int
w
,
int
h
)
{
mWidth
=
w
;
mHeight
=
h
;
}
public
void
run
()
{
Mat
modified
;
do
{
if
(!
mCamera
.
grab
())
{
Log
.
e
(
TAG
,
"Camera frame grab failed"
);
...
...
@@ -118,8 +102,9 @@ public class OpenCvNativeCameraView extends OpenCvCameraBridgeViewBase {
deliverAndDrawFrame
(
mRgba
);
}
while
(!
mStopThread
);
}
private
Mat
mRgba
=
new
Mat
();
}
}
samples/android/camera-preview/src/org/opencv/test/camerawriter/
CameraWriter
Activity.java
→
samples/android/camera-preview/src/org/opencv/test/camerawriter/
Preview
Activity.java
View file @
cc3430db
...
...
@@ -4,19 +4,17 @@ import org.opencv.android.BaseLoaderCallback;
import
org.opencv.android.LoaderCallbackInterface
;
import
org.opencv.android.OpenCVLoader
;
import
org.opencv.core.Mat
;
import
org.opencv.test.camerawriter.
OpenCvCameraBridge
ViewBase.CvCameraViewListener
;
import
org.opencv.test.camerawriter.
Camera
ViewBase.CvCameraViewListener
;
import
android.os.Bundle
;
import
android.app.Activity
;
import
android.util.Log
;
public
class
CameraWriter
Activity
extends
Activity
implements
CvCameraViewListener
{
public
class
Preview
Activity
extends
Activity
implements
CvCameraViewListener
{
protected
static
final
String
TAG
=
"CameraWriterActivity"
;
private
OpenCvCameraBridgeViewBase
mCameraView
;
private
CameraViewBase
mCameraView
;
private
BaseLoaderCallback
mLoaderCallback
=
new
BaseLoaderCallback
(
this
)
{
@Override
...
...
@@ -40,7 +38,7 @@ public class CameraWriterActivity extends Activity implements CvCameraViewListen
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_camera_writer
);
mCameraView
=
(
OpenCvCameraBridge
ViewBase
)
findViewById
(
R
.
id
.
camera_surface_view
);
mCameraView
=
(
Camera
ViewBase
)
findViewById
(
R
.
id
.
camera_surface_view
);
mCameraView
.
setCvCameraViewListener
(
this
);
OpenCVLoader
.
initAsync
(
OpenCVLoader
.
OPENCV_VERSION_2_4_2
,
this
,
mLoaderCallback
);
...
...
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