質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

787閲覧

opencvのカメラ全画面表示について

shutein

総合スコア14

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

1クリップ

投稿2018/01/16 08:55

編集2018/01/18 06:19

###前提・実現したいこと
androidstudioでJavaとOpenCVを使い画像認識を使ったアプリを開発しています。
アプリを起動した際にCameraBrideViewbaseを使用しカメラを表示しているのですが、
全画面表示するために一度向きを横向きに回転させ
Manifestに
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"を記入したのですが全画面に表示できませんでした。

###発生している問題・エラーメッセージ
全画面表示をしたいが出来ていない。
カメラのview自体は端末の画面の端あたりに表示はされています。

エラーは出ておらずレイアウトの問題かもしれないです。
###該当のソースコード
カメラを表示するために関係しそうなコード

Java

1public class MainActivity extends Activity implements CameraBridgeViewBase.CvCameraViewListener { 2 private static final String TAG = "OCVSample::Activity"; 3 4 private CameraBridgeViewBase mOpenCvCameraView; 5 private boolean mIsJavaCamera = true; 6 private MenuItem mItemSwitchCamera = null; 7 int touId = 0; 8 private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { 9 @Override 10 public void onManagerConnected(int status) { 11 switch (status) { 12 case LoaderCallbackInterface.SUCCESS: { 13 Log.i(TAG, "OpenCV loaded successfully"); 14 mOpenCvCameraView.enableView(); 15 } 16 break; 17 default: { 18 super.onManagerConnected(status); 19 } 20 break; 21 } 22 } 23 }; 24 25 public MainActivity() { 26 Log.i(TAG, "Instantiated new" + this.getClass()); 27 } 28 /* Called when activity is first created */ 29 30 @Override //カメラの向きを縦に変えることに成功! 31 public void onCreate(Bundle savedInstanceState) { 32 Log.i(TAG, "called onCreate"); 33 super.onCreate(savedInstanceState); 34 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 35 this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 36 setContentView(R.layout.activity_main); 37 mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.tutorial1_activity_java_surface_view); 38 mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE); 39 mOpenCvCameraView.setCvCameraViewListener(this); 40 } 41 42 43 @Override 44 public void onPause() { 45 super.onPause(); 46 if (mOpenCvCameraView != null) 47 mOpenCvCameraView.disableView(); 48 } 49 50 51 @Override 52 public void onResume() { 53 super.onResume(); 54 //エラーを直したら「if文」増えた?  55 if (!OpenCVLoader.initDebug()) { 56 Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization"); 57 OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback); 58 } else { 59 Log.d(TAG, "OpenCV library found inside package. Using it!"); 60 mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS); 61 } 62 } 63 64 public void onDestroy() { 65 super.onDestroy(); 66 if (mOpenCvCameraView != null) 67 mOpenCvCameraView.disableView(); 68 } 69 70 public void onCameraViewStarted(int width, int height) { 71 } 72 73 public void onCameraViewStopped() { 74 } 75 76 77 //38行目のエラーを直した時に追加された(下2行) 78 @Override 79 public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { 80 81 } 82

Manifest

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.janome.color2"> <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera2" android:required="false" /> <uses-feature android:name="android.hardware.camera2.autofocus" android:required="false" /> //themeを「@style/AppTheme」から変更 フルスクリーンへ <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SubActivity" android:label="@string/app_name"></activity> </application> </manifest>

mainactivityのXmlファイル

<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" xmlns:opencv="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.janome.color2.MainActivity"> <!--<TextView--> android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <RelativeLayout android:layout_width="351dp" android:layout_height="565dp" android:keepScreenOn="true" tools:context=".MainActivity" tools:layout_editor_absoluteX="8dp" tools:layout_editor_absoluteY="8dp"> <org.opencv.android.JavaCameraView android:id="@+id/tutorial1_activity_java_surface_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:visibility="gone" opencv:camera_id="any" opencv:show_fps="true" /> </RelativeLayout> </android.support.constraint.ConstraintLayout>

###補足情報(言語/FW/ツール等のバージョンなど)
androidstudio 2.3.1
java
OpenCV 3.0.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

>カメラのview自体は端末の画面の端あたりに表示はされています。

これは「カメラの画像が画面の端に小さく表示されている」という解釈でよろしいのでしょうか?
intWidthやintHeightの具体的な指定、カメラそのものの解像度がわかりませんが、
「アプリの表示領域は大きく取ったけど、カメラ画像が小さいので端に小さく表示されている」可能性があるかと思われます。
(例)表示領域:3840x2160 カメラ画像:640x480
この場合、カメラ画像も拡大する必要があります。

投稿2018/01/18 06:49

Wind

総合スコア442

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shutein

2018/01/20 13:47

>カメラの画像が画面の端に小さく表示されている 回答ありがとうございます。解釈はそれで合っています。 カメラの撮影画面をレイアウト側で大きくしたのですが上手くいかなかったです。 拡大するには数値を変更すれば良いのでしょうか。 また、表示領域を確認する方法はありますか?
Wind

2018/01/25 01:41

カメラ画面のレイアウトを拡大しただけでは、画像が小さいままなので意味が無いと思います。 拡大するにはOpenCVのresize()等で、画像を拡大する必要があります。 解像度についてはpx解像度とdp解像度の違いがありますので、注意して設定してください。 https://qiita.com/nein37/items/0a92556a80c6c14503b2
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問