configuración de vídeo opencv a pantalla completa android
Estoy tratando de establecer un video a pantalla completa utilizando opencv. la entrada procede de la cámara. se muestra en la pantalla en el centro, pero no como pantalla completa. Código pertinente:
public class Sample3Native extends Activity implements CvCameraViewListener { private static final String TAG = "OCVSample::Activity"; private Mat mRgba; private Mat mGrayMat; private Mat mFinalMat; private CameraBridgeViewBase mOpenCvCameraView; private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { Log.i(TAG, "OpenCV loaded successfully"); // Load native library after(!) OpenCV initialization System.loadLibrary("native_sample"); mOpenCvCameraView.enableView(); } break; default: { super.onManagerConnected(status); } break; } } }; public Sample3Native() { Log.i(TAG, "Instantiated new " + this.getClass()); } /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { Log.i(TAG, "called onCreate"); super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); setContentView(R.layout.tutorial3_surface_view); mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.tutorial4_activity_surface_view); mOpenCvCameraView.setCvCameraViewListener(this); }
He intentado usar:
- Cómo seguir reproduciendo video mientras cambia a modo horizontal android
- Extraer / modificar marcos de video en Android
- Android: Copiar RawFile a Sdcard (video mp4)
- Barra de búsqueda personalizada para un archivo de vídeo en streaming en android
- Reproducción de vídeo mediante la clase MediaPlayer
//mOpenCvCameraView.setScaleX(0.8f); // mOpenCvCameraView.setScaleY(0.4f); //mOpenCvCameraView.setMinimumHeight(800); // mOpenCvCameraView.setMinimumWidth(1000);
Pero no funciona.
¿cómo puedo strech los marcos para llenar toda la pantalla?
- Forzar el no-flash Vimeo incrustar o deshabilitar Flash en un WebView?
- HTML5 Lienzo drawImage con fuente de video que no funciona en Android
- Aplicación de falla en la fusión de videoclips MP4
- Transferir flujo de video en tiempo real al servidor mediante Android
- Cómo hacer que una videoview NO se inicie automáticamente después de preparado
- Android: Jcodec: codificación de archivos de imagen para vídeo .mp4
- Reproducción de FLV / HTTP en la aplicación de Android
- ¿Cómo puedo capturar una grabación de vídeo en Android?
Puede obtener una lista de las resoluciones disponibles o la configuración manual.
Si desea obtener la lista de los tamaños disponibles y obtener el tamaño óptimo de la cámara.
if (mOpenCvCameraView != null) { List<Size> sizes = mOpenCvCameraView.getSupportedPreviewSizes(); int mFrameWidth = width; int mFrameHeight = height; // selecting optimal camera 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); } } } mOpenCvCameraView.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, mFrameWidth); mOpenCvCameraView.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, mFrameHeight); }
Si el tamaño óptimo de la cámara no es de pantalla completa, es fácil obtener el gran tamaño que admite la cámara de la lista.
Otra opción es configurar manualmente el tamaño:
mOpenCvCameraView.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, 1000); mOpenCvCameraView.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, 800);
La fuente del código es de Detección de Cara OpenCV versión 2.4.2.
Para aquellos que google aquí y sólo quieren cambiar la resolución,
mOpenCvCameraView.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, 1000)
método no funciona.
Intente utilizar mOpenCvCameraView.setMaxFrameSize(640, 480);
Funciona para OCV4Android2.4.5, tutorial 2, procesamiento mixto.
Para cualquier persona que todavía está buscando esto, he resuelto el problema (clase-de). Parece que esto no funciona para OpenCV v 2.4.3. He intentado todo en el Internet. Sin embargo, en OpenCV 2.4.3.2 han añadido una forma de configurar el tamaño de la cámara
disconnectCamera(); mMaxHeight = //your desired height mMaxWidth = //your desired width connectCamera(mMaxWidth, mMaxHeight);
Echa un vistazo a la OpenCV Tutorial 5, específicamente el SampleJavaCameraView -> método setResolution
Probar esto reemplazar
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
código en la onCreate con
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
por favor vaya a AndroidMainifest.xml y defina android: screenOrientation = "landscape"
- Tipo Mime de la cámara Android PreviewFormat
- Android: Cómo aplicar android: inputType globalmente en todos los EditText