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
334cb1dc
Commit
334cb1dc
authored
Jun 29, 2011
by
Andrey Kamaev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Android sample is refactored according to Google code style guidelines for Android developers
parent
f27796e8
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
128 additions
and
128 deletions
+128
-128
org.eclipse.jdt.core.prefs
samples/android/0-base/.settings/org.eclipse.jdt.core.prefs
+5
-0
Sample0Base.java
...es/android/0-base/src/org/opencv/samples/Sample0Base.java
+23
-23
Sample0View.java
...es/android/0-base/src/org/opencv/samples/Sample0View.java
+100
-105
No files found.
samples/android/0-base/.settings/org.eclipse.jdt.core.prefs
0 → 100644
View file @
334cb1dc
#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/0-base/src/org/opencv/samples/Sample0Base.java
View file @
334cb1dc
...
...
@@ -9,36 +9,36 @@ import android.view.Window;
public
class
Sample0Base
extends
Activity
{
private
static
final
String
TAG
=
"Sample0Base::Activity"
;
public
static
final
int
view_mode_rgba
=
0
;
public
static
final
int
view_mode_gray
=
1
;
private
MenuItem
item_preview_rgba
;
private
MenuItem
item_preview_g
ray
;
public
int
view_m
ode
;
public
static
final
int
VIEW_MODE_RGBA
=
0
;
public
static
final
int
VIEW_MODE_GRAY
=
1
;
private
MenuItem
mItemPreviewRGBA
;
private
MenuItem
mItemPreviewG
ray
;
public
int
viewM
ode
;
/** Called when the activity is first created. */
@Override
public
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
requestWindowFeature
(
Window
.
FEATURE_NO_TITLE
);
setContentView
(
new
Sample0View
(
this
)
);
view
_mode
=
view_mode_rgba
;
setContentView
(
new
Sample0View
(
this
)
);
view
Mode
=
VIEW_MODE_RGBA
;
}
public
boolean
onCreateOptionsMenu
(
Menu
menu
)
{
item_preview_rgba
=
menu
.
add
(
"Preview RGBA"
);
item_preview_g
ray
=
menu
.
add
(
"Preview GRAY"
);
return
true
;
mItemPreviewRGBA
=
menu
.
add
(
"Preview RGBA"
);
mItemPreviewG
ray
=
menu
.
add
(
"Preview GRAY"
);
return
true
;
}
public
boolean
onOptionsItemSelected
(
MenuItem
item
)
{
Log
.
i
(
TAG
,
"Menu Item selected "
+
item
);
if
(
item
==
item_preview_rgba
)
view_mode
=
view_mode_rgba
;
else
if
(
item
==
item_preview_g
ray
)
view_mode
=
view_mode_gray
;
return
true
;
public
boolean
onOptionsItemSelected
(
MenuItem
item
)
{
Log
.
i
(
TAG
,
"Menu Item selected "
+
item
);
if
(
item
==
mItemPreviewRGBA
)
viewMode
=
VIEW_MODE_RGBA
;
else
if
(
item
==
mItemPreviewG
ray
)
viewMode
=
VIEW_MODE_GRAY
;
return
true
;
}
}
samples/android/0-base/src/org/opencv/samples/Sample0View.java
View file @
334cb1dc
package
org
.
opencv
.
samples
;
import
java.util.List
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.graphics.Canvas
;
...
...
@@ -10,128 +9,123 @@ import android.util.Log;
import
android.view.SurfaceHolder
;
import
android.view.SurfaceView
;
class
Sample0View
extends
SurfaceView
implements
SurfaceHolder
.
Callback
,
Runnable
{
import
java.util.List
;
class
Sample0View
extends
SurfaceView
implements
SurfaceHolder
.
Callback
,
Runnable
{
private
static
final
String
TAG
=
"Sample0Base::View"
;
private
Camera
camera
;
private
SurfaceHolder
holder
;
private
int
frame_width
;
private
int
frame_height
;
private
byte
[]
frame
;
private
Camera
mCamera
;
private
SurfaceHolder
mHolder
;
private
int
mFrameWidth
;
private
int
mFrameHeight
;
private
byte
[]
mFrame
;
private
boolean
mThreadRun
;
public
Sample0View
(
Context
context
)
{
super
(
context
);
holder
=
getHolder
();
holder
.
addCallback
(
this
);
}
public
Sample0View
(
Context
context
)
{
super
(
context
);
mHolder
=
getHolder
();
mHolder
.
addCallback
(
this
);
}
public
void
surfaceChanged
(
SurfaceHolder
_holder
,
int
format
,
int
width
,
int
height
)
{
if
(
c
amera
!=
null
)
{
Camera
.
Parameters
params
=
c
amera
.
getParameters
();
public
void
surfaceChanged
(
SurfaceHolder
_holder
,
int
format
,
int
width
,
int
height
)
{
if
(
mC
amera
!=
null
)
{
Camera
.
Parameters
params
=
mC
amera
.
getParameters
();
List
<
Camera
.
Size
>
sizes
=
params
.
getSupportedPreviewSizes
();
frame_w
idth
=
width
;
frame_h
eight
=
height
;
mFrameW
idth
=
width
;
mFrameH
eight
=
height
;
//selecting optimal camera preview size
//selecting optimal camera preview size
{
double
minDiff
=
Double
.
MAX_VALUE
;
for
(
Camera
.
Size
size
:
sizes
)
{
if
(
Math
.
abs
(
size
.
height
-
height
)
<
minDiff
)
{
frame_w
idth
=
size
.
width
;
frame_h
eight
=
size
.
height
;
mFrameW
idth
=
size
.
width
;
mFrameH
eight
=
size
.
height
;
minDiff
=
Math
.
abs
(
size
.
height
-
height
);
}
}
}
params
.
setPreviewSize
(
frame_width
,
frame_h
eight
);
c
amera
.
setParameters
(
params
);
c
amera
.
startPreview
();
params
.
setPreviewSize
(
mFrameWidth
,
mFrameH
eight
);
mC
amera
.
setParameters
(
params
);
mC
amera
.
startPreview
();
}
}
public
void
surfaceCreated
(
SurfaceHolder
holder
)
{
camera
=
Camera
.
open
();
camera
.
setPreviewCallback
(
new
PreviewCallback
()
{
public
void
onPreviewFrame
(
byte
[]
data
,
Camera
camera
)
{
synchronized
(
Sample0View
.
this
)
{
frame
=
data
;
Sample0View
.
this
.
notify
();
}
}
}
);
(
new
Thread
(
this
)).
start
();
}
public
void
surfaceCreated
(
SurfaceHolder
holder
)
{
mCamera
=
Camera
.
open
();
mCamera
.
setPreviewCallback
(
new
PreviewCallback
()
{
public
void
onPreviewFrame
(
byte
[]
data
,
Camera
camera
)
{
synchronized
(
Sample0View
.
this
)
{
mFrame
=
data
;
Sample0View
.
this
.
notify
();
}
}
}
);
(
new
Thread
(
this
)).
start
();
}
public
void
surfaceDestroyed
(
SurfaceHolder
holder
)
{
mThreadRun
=
false
;
if
(
c
amera
!=
null
)
{
c
amera
.
stopPreview
();
c
amera
.
setPreviewCallback
(
null
);
c
amera
.
release
();
c
amera
=
null
;
}
}
public
void
surfaceDestroyed
(
SurfaceHolder
holder
)
{
mThreadRun
=
false
;
if
(
mC
amera
!=
null
)
{
mC
amera
.
stopPreview
();
mC
amera
.
setPreviewCallback
(
null
);
mC
amera
.
release
();
mC
amera
=
null
;
}
}
public
void
run
()
{
mThreadRun
=
true
;
Log
.
i
(
TAG
,
"Starting thread"
);
while
(
mThreadRun
)
{
byte
[]
data
=
null
;
synchronized
(
this
)
{
try
{
this
.
wait
();
data
=
frame
;
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
}
Canvas
canvas
=
holder
.
lockCanvas
();
int
frameSize
=
frame_width
*
frame_height
;
int
[]
rgba
=
new
int
[
frameSize
];
Sample0Base
a
=
(
Sample0Base
)
getContext
();
int
view_mode
=
a
.
view_mode
;
if
(
view_mode
==
Sample0Base
.
view_mode_gray
)
{
for
(
int
i
=
0
;
i
<
frameSize
;
i
++)
{
int
y
=
(
0xff
&
((
int
)
data
[
i
]));
rgba
[
i
]
=
0xff000000
+
(
y
<<
16
)
+
(
y
<<
8
)
+
y
;
}
}
else
if
(
view_mode
==
Sample0Base
.
view_mode_rgba
)
{
for
(
int
i
=
0
;
i
<
frame_height
;
i
++)
for
(
int
j
=
0
;
j
<
frame_width
;
j
++)
{
int
y
=
(
0xff
&
((
int
)
data
[
i
*
frame_width
+
j
]));
int
u
=
(
0xff
&
((
int
)
data
[
frameSize
+
(
i
>>
1
)
*
frame_width
+
(
j
&
~
1
)
+
0
]));
int
v
=
(
0xff
&
((
int
)
data
[
frameSize
+
(
i
>>
1
)
*
frame_width
+
(
j
&
~
1
)
+
1
]));
if
(
y
<
16
)
y
=
16
;
int
r
=
Math
.
round
(
1.164f
*
(
y
-
16
)
+
1.596f
*
(
v
-
128
)
);
int
g
=
Math
.
round
(
1.164f
*
(
y
-
16
)
-
0.813f
*
(
v
-
128
)
-
0.391f
*
(
u
-
128
));
int
b
=
Math
.
round
(
1.164f
*
(
y
-
16
)
+
2.018f
*
(
u
-
128
));
if
(
r
<
0
)
r
=
0
;
if
(
r
>
255
)
r
=
255
;
if
(
g
<
0
)
g
=
0
;
if
(
g
>
255
)
g
=
255
;
if
(
b
<
0
)
b
=
0
;
if
(
b
>
255
)
b
=
255
;
rgba
[
i
*
frame_width
+
j
]
=
0xff000000
+
(
b
<<
16
)
+
(
g
<<
8
)
+
r
;
}
}
Bitmap
bmp
=
Bitmap
.
createBitmap
(
frame_width
,
frame_height
,
Bitmap
.
Config
.
ARGB_8888
);
bmp
.
setPixels
(
rgba
,
0
/*offset*/
,
frame_width
/*stride*/
,
0
,
0
,
frame_width
,
frame_height
);
canvas
.
drawBitmap
(
bmp
,
(
canvas
.
getWidth
()-
frame_width
)/
2
,
(
canvas
.
getHeight
()-
frame_height
)/
2
,
null
);
holder
.
unlockCanvasAndPost
(
canvas
);
}
}
public
void
run
()
{
mThreadRun
=
true
;
Log
.
i
(
TAG
,
"Starting thread"
);
while
(
mThreadRun
)
{
byte
[]
data
=
null
;
synchronized
(
this
)
{
try
{
this
.
wait
();
data
=
mFrame
;
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
}
int
frameSize
=
mFrameWidth
*
mFrameHeight
;
int
[]
rgba
=
new
int
[
frameSize
];
Sample0Base
a
=
(
Sample0Base
)
getContext
();
int
view_mode
=
a
.
viewMode
;
if
(
view_mode
==
Sample0Base
.
VIEW_MODE_GRAY
)
{
for
(
int
i
=
0
;
i
<
frameSize
;
i
++)
{
int
y
=
(
0xff
&
((
int
)
data
[
i
]));
rgba
[
i
]
=
0xff000000
+
(
y
<<
16
)
+
(
y
<<
8
)
+
y
;
}
}
else
if
(
view_mode
==
Sample0Base
.
VIEW_MODE_RGBA
)
{
for
(
int
i
=
0
;
i
<
mFrameHeight
;
i
++)
for
(
int
j
=
0
;
j
<
mFrameWidth
;
j
++)
{
int
y
=
(
0xff
&
((
int
)
data
[
i
*
mFrameWidth
+
j
]));
int
u
=
(
0xff
&
((
int
)
data
[
frameSize
+
(
i
>>
1
)
*
mFrameWidth
+
(
j
&
~
1
)
+
0
]));
int
v
=
(
0xff
&
((
int
)
data
[
frameSize
+
(
i
>>
1
)
*
mFrameWidth
+
(
j
&
~
1
)
+
1
]));
if
(
y
<
16
)
y
=
16
;
int
r
=
Math
.
round
(
1.164f
*
(
y
-
16
)
+
1.596f
*
(
v
-
128
)
);
int
g
=
Math
.
round
(
1.164f
*
(
y
-
16
)
-
0.813f
*
(
v
-
128
)
-
0.391f
*
(
u
-
128
));
int
b
=
Math
.
round
(
1.164f
*
(
y
-
16
)
+
2.018f
*
(
u
-
128
));
if
(
r
<
0
)
r
=
0
;
if
(
r
>
255
)
r
=
255
;
if
(
g
<
0
)
g
=
0
;
if
(
g
>
255
)
g
=
255
;
if
(
b
<
0
)
b
=
0
;
if
(
b
>
255
)
b
=
255
;
rgba
[
i
*
mFrameWidth
+
j
]
=
0xff000000
+
(
b
<<
16
)
+
(
g
<<
8
)
+
r
;
}
}
Bitmap
bmp
=
Bitmap
.
createBitmap
(
mFrameWidth
,
mFrameHeight
,
Bitmap
.
Config
.
ARGB_8888
);
bmp
.
setPixels
(
rgba
,
0
/*offset*/
,
mFrameWidth
/*stride*/
,
0
,
0
,
mFrameWidth
,
mFrameHeight
);
Canvas
canvas
=
mHolder
.
lockCanvas
();
canvas
.
drawBitmap
(
bmp
,
(
canvas
.
getWidth
()-
mFrameWidth
)/
2
,
(
canvas
.
getHeight
()-
mFrameHeight
)/
2
,
null
);
mHolder
.
unlockCanvasAndPost
(
canvas
);
}
}
}
\ No newline at end of file
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