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

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

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

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

Java

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

解決済

OpenCVのソースコードについての質問

tomoe
tomoe

総合スコア0

OpenCV

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

Java

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

1回答

0評価

0クリップ

3026閲覧

投稿2016/11/24 15:57

AndroidstudioでOpenCVを使いテンプレートマッチングを行いたいと考えています。サンプルが無いかと探した所下記のコードを発見しました。
inFIleはマッチングする画像データ、templateFileはテンプレート用画像データだと思いますがoutFileは結果出力用のものでしょうか?
###該当のソースコード

java

package opencv; import org\.opencv\.core\.Core; import org\.opencv\.core\.Core\.MinMaxLocResult; import org\.opencv\.core\.CvType; import org\.opencv\.core\.Mat; import org\.opencv\.core\.Point; import org\.opencv\.core\.Scalar; import org\.opencv\.highgui\.Highgui; import org\.opencv\.imgproc\.Imgproc; class MatchingDemo { public void run\(String inFile, String templateFile, String outFile, int match_method\) { System\.out\.println\("\\nRunning Template Matching"\); Mat img = Highgui\.imread\(inFile\); Mat templ = Highgui\.imread\(templateFile\); // / Create the result matrix int result_cols = img\.cols\(\) - templ\.cols\(\) \+ 1; int result_rows = img\.rows\(\) - templ\.rows\(\) \+ 1; Mat result = new Mat\(result_rows, result_cols, CvType\.CV_32FC1\); // / Do the Matching and Normalize Imgproc\.matchTemplate\(img, templ, result, match_method\); Core\.normalize\(result, result, 0, 1, Core\.NORM_MINMAX, -1, new Mat\(\)\); // / Localizing the best match with minMaxLoc MinMaxLocResult mmr = Core\.minMaxLoc\(result\); Point matchLoc; if \(match_method == Imgproc\.TM_SQDIFF || match_method == Imgproc\.TM_SQDIFF_NORMED\) { matchLoc = mmr\.minLoc; } else { matchLoc = mmr\.maxLoc; } // / Show me what you got Core\.rectangle\(img, matchLoc, new Point\(matchLoc\.x \+ templ\.cols\(\), matchLoc\.y \+ templ\.rows\(\)\), new Scalar\(0, 255, 0\)\); // Save the visualized detection\. System\.out\.println\("Writing "\+ outFile\); Highgui\.imwrite\(outFile, img\); } } public class TemplateMatching { public static void main\(String\[\] args\) { System\.loadLibrary\("opencv_java246"\); new MatchingDemo\(\)\.run\(args\[0\], args\[1\], args\[2\], Imgproc\.TM_CCOEFF\); } }

http://stackoverflow\.com/questions/17001083/opencv-template-matching-example-in-android/17516753\?noredirect=1#comment28832789_17516753

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

MasahikoHirata
MasahikoHirata

2016/11/24 16:06

まず、入力は’ Mat img = Highgui\.imread\(inFile\);’で、’ Core\.rectangle\(img, matchLoc, new Point\(matchLoc\.x \+ templ\.cols\(\), matchLoc\.y \+ templ\.rows\(\)\), new Scalar\(0, 255, 0\)\);’でマッチした場所を四角で囲って(入力イメージに)、’ Highgui\.imwrite\(outFile, img\);’で出力しています。
tomoe
tomoe

2016/11/24 16:18

素早い回答ありがとうございますm\(_ _\)m  Highgui\.imwrite\(outFile, img\);はimgのデータをoutFileに格納してるんでしょうか?
MasahikoHirata
MasahikoHirata

2016/11/25 01:10 編集

はい。’outFile'にファイル名を格納します。ファイル名の拡張子で保存される形式も変えられます'\.jpg'とか'\.png'とか。
Chironian
Chironian

2016/11/25 05:10

MasahikoHirataさん、回答なので回答欄に記載された方が良いように感じます。
tomoe
tomoe

2016/11/25 05:16

遅くなりました。回答ありがとうございます!String型ということはファイルパスを指定すればそこに画像が保存されるってことでしょうか?
MasahikoHirata
MasahikoHirata

2016/11/25 05:21

そうです。ファイル名だけの時はカレントに保存されます。
tomoe
tomoe

2016/11/25 05:28

ありがとうございました! ベストアンサーとしたいので下の回答に何か書いていただきたいですm\(__\)m

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

OpenCV

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

Java

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