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

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

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

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

Java

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

Android Studio

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

Q&A

解決済

1回答

3496閲覧

android opencv 座標を返す

退会済みユーザー

退会済みユーザー

総合スコア0

OpenCV

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

Java

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

Android Studio

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

0グッド

0クリップ

投稿2017/12/20 15:05

編集2017/12/20 15:15

私はandroidstudioでアプリ開発を行っています。

私が書いたプログラムはカメラで撮っている映像の中に映る赤い物の中心に点を描画する物です。

この中心点の座標を獲得したいのですがどうすればいいでしょうか?Pointをintなどに変換できるのでしょうか?

こちらを参考にしてopencvをandroidに導入した後
以下のコードをそれぞれコピペしてXXXと書かれている部分を直してもらえれば実際に使えるようになると思います。

#MainActivity.java

java

1package com.example.XXX.XXX; 2 3import android.app.Activity; 4import android.os.Bundle; 5import android.util.Log; 6import android.view.MenuItem; 7import android.view.SurfaceView; 8import android.view.WindowManager; 9import org.opencv.android.BaseLoaderCallback; 10import org.opencv.android.CameraBridgeViewBase; 11import org.opencv.android.LoaderCallbackInterface; 12import org.opencv.android.OpenCVLoader; 13import org.opencv.core.Core; 14import org.opencv.core.CvType; 15import org.opencv.core.Mat; 16import org.opencv.core.MatOfInt; 17import org.opencv.core.MatOfInt4; 18import org.opencv.core.MatOfPoint; 19import org.opencv.core.MatOfPoint2f; 20import org.opencv.core.Point; 21import org.opencv.core.RotatedRect; 22import org.opencv.core.Scalar; 23import org.opencv.core.Size; 24import org.opencv.imgproc.Imgproc; 25import org.opencv.imgproc.Moments; 26 27 28import java.util.ArrayList; 29import java.util.List; 30 31 32import static org.opencv.core.CvType.CV_8U; 33import static org.opencv.core.CvType.CV_8UC1; 34import static org.opencv.core.CvType.CV_8UC3; 35 36 37public class MainActivity extends Activity implements CameraBridgeViewBase.CvCameraViewListener { 38 private static final String TAG = "OCVSample::Activity"; 39 40 int i =0; 41 42 private CameraBridgeViewBase mOpenCvCameraView; 43 private boolean mIsJavaCamera = true; 44 private MenuItem mItemSwitchCamera = null; 45 46 47 private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { 48 @Override 49 public void onManagerConnected(int status) { 50 switch (status) { 51 // 読み込みが成功したらカメラプレビューを開始 52 case LoaderCallbackInterface.SUCCESS: 53 { 54 Log.i(TAG, "OpenCV loaded successfully"); 55 mOpenCvCameraView.enableView(); 56 } break; 57 default: { 58 super.onManagerConnected(status); 59 }break; 60 } 61 } 62 }; 63 64 public MainActivity() { 65 Log.i(TAG, "Instantiated new " + this.getClass()); 66 } 67 68 @Override 69 protected void onCreate(Bundle savedInstanceState) { 70 Log.i(TAG, "called onCreate"); 71 super.onCreate(savedInstanceState); 72 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 73 setContentView(R.layout.activity_main); 74 75 mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.camera_view); 76 77 mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE); 78 79 mOpenCvCameraView.setCvCameraViewListener(this); 80 } 81 82 @Override 83 protected void onPause() { 84 super.onPause(); 85 if (mOpenCvCameraView != null) 86 mOpenCvCameraView.disableView(); 87 } 88 89 @Override 90 protected void onResume() { 91 super.onResume(); 92 if (!OpenCVLoader.initDebug()) { 93 Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization"); 94 OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback); 95 } else { 96 Log.d(TAG, "OpenCV library found inside package. Using it!"); 97 mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS); 98 } 99 } 100 101 102 @Override 103 protected void onDestroy() { 104 super.onDestroy(); 105 if (mOpenCvCameraView != null) 106 mOpenCvCameraView.disableView(); 107 } 108 109 110 @Override 111 public void onCameraViewStarted(int width, int height) {// カメラプレビュー開始時に呼ばれる 112 } 113 114 @Override 115 public void onCameraViewStopped() {// カメラプレビュー終了時に呼ばれる 116 } 117 118 @Override 119 public Mat onCameraFrame(Mat inputFrame) { 120 Mat src = inputFrame; 121 Mat src1 = src.clone(); 122 Imgproc.cvtColor(src, src, Imgproc.COLOR_RGB2HSV);//HSVに変換 123 Imgproc.medianBlur(src, src, 5); 124 Core.inRange(src, new Scalar(150,100,100),new Scalar(180,255,255),src); 125 Mat hierarchy=Mat.zeros(new Size(5,5), CvType.CV_8UC1); 126 List<MatOfPoint> contours = new ArrayList<MatOfPoint>(); 127 Imgproc.findContours(src, contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_TC89_L1); 128 Scalar color=new Scalar(200,20,100); 129 // Imgproc.drawContours(src1, contours, -1, color,10); 130 int i=0; 131 int index = -1; 132 double area = 0; 133 for(i=0;i<contours.size();i++) 134 { 135 double tmp = Imgproc.contourArea(contours.get(i)); 136 if (area < tmp) { 137 area = tmp; 138 index = i; 139 } 140 } 141 if (index != -1) { 142 MatOfPoint ptmat= contours.get(index); 143 color=new Scalar(0,200,0); 144 MatOfPoint2f ptmat2 = new MatOfPoint2f( ptmat.toArray() ); 145 RotatedRect bbox=Imgproc.minAreaRect(ptmat2); 146 Imgproc.circle(src1, bbox.center,5, color,-1); 147 } 148 return src1; 149 } 150 151} 152

#activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:opencv="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:keepScreenOn="true" tools:context="com.example.XXX.XXX.MainActivity"> <org.opencv.android.JavaCameraView android:id="@+id/camera_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:visibility="visible" opencv:camera_id="any" opencv:show_fps="true" /> </RelativeLayout>

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

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

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

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

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

guest

回答1

0

ベストアンサー

ここを参考にした

Point point = new Point(10, 20);

int x = point.x;
int y = point.y;

投稿2017/12/20 15:28

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問