mirror of
https://github.com/opencv/opencv.git
synced 2024-11-29 05:29:54 +08:00
8e088d38a5
a simple sample will look like: ```java public class MainActivity extends Activity implements CameraGLSurfaceView.CameraTextureListener { CameraGLSurfaceView mView; ByteBuffer buf; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); mView = new CameraGLSurfaceView(this, null); mView.setCameraTextureListener(this); setContentView(mView); buf = ByteBuffer.allocateDirect(1920*1080*4); } @Override protected void onPause() { mView.onPause(); super.onPause(); } @Override protected void onResume() { super.onResume(); mView.onResume(); } @Override public void onCameraViewStarted(int width, int height) { // TODO Auto-generated method stub } @Override public void onCameraViewStopped() { // TODO Auto-generated method stub } @Override public boolean onCameraFrame(int texIn, int texOut, int width, int height) { Log.i("MAIN", "onCameraFrame"); int w=width, h=height; /* // option 1: // just return 'false' to display texIn on screen retutn false; */ /* // option 2: // fast copy texIn to texOut GLES20.glActiveTexture(GLES20.GL_TEXTURE0); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texOut); GLES20.glCopyTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 0, 0, w, h, 0); return true; */ // option 3: // read, modify and write back pixels GLES20.glReadPixels(0, 0, w, h, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buf); buf.rewind(); // red line for(int i=0; i<h; i++) { buf.position(w*4*i+i*4); buf.put((byte) -1); buf.position(w*4*i+i*4+4); buf.put((byte) -1); } buf.rewind(); GLES20.glActiveTexture(GLES20.GL_TEXTURE0); GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texOut); GLES20.glTexSubImage2D(GLES20.GL_TEXTURE_2D, 0, 0, 0, w, h, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buf); return true; } } ``` |
||
---|---|---|
.. | ||
calib3d | ||
core | ||
cudaarithm | ||
cudabgsegm | ||
cudacodec | ||
cudafeatures2d | ||
cudafilters | ||
cudaimgproc | ||
cudalegacy | ||
cudaobjdetect | ||
cudaoptflow | ||
cudastereo | ||
cudawarping | ||
cudev | ||
features2d | ||
flann | ||
hal | ||
highgui | ||
imgcodecs | ||
imgproc | ||
java | ||
ml | ||
objdetect | ||
photo | ||
python | ||
shape | ||
stitching | ||
superres | ||
ts | ||
video | ||
videoio | ||
videostab | ||
viz | ||
world | ||
CMakeLists.txt |