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

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

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

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

解決済

1回答

2897閲覧

processingでwebカメラからの映像を読み取りテンプレートマッチングしたい

marr

総合スコア7

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2019/12/17 07:38

前提・実現したいこと

webカメラで映像を読み取り、その読み取った映像と、用意している画像を比較してテンプレートマッチングを行いたいです。
理想は、記号のようなものを読み取り、そこに対して新たな画像を貼り付けるように表示するというものです。
初心者ですので、出来るだけ詳しく説明していただけますと助かります。

発生している問題・エラーメッセージ

画像と画像のテンプレートマッチングと、webカメラの映像を表示するプログラムは別々に実行できる状態です。二つを組み合わせてうまいこと出来ないでしょうか・・・。

該当のソースコード

processing

1//テンプレートマッチング 2 3import gab.opencv.*; 4import org.opencv.core.Mat; 5import org.opencv.core.CvType; 6import org.opencv.imgproc.Imgproc; 7import org.opencv.core.Core.MinMaxLocResult; 8import org.opencv.core.Core; 9 10PImage inputImage = loadImage("temp.png", "png"); 11OpenCV inputCV = new OpenCV(this, inputImage); 12Mat inputMat = OpenCV.imitate(inputCV.getGray()); 13 14PImage templateImage = loadImage("temp2.png", "png"); 15OpenCV templateCV = new OpenCV(this, templateImage); 16Mat templateMat = OpenCV.imitate(templateCV.getGray()); 17 18int resultCols = inputMat.cols() - templateMat.cols() + 1; 19int resultRows = inputMat.rows() - templateMat.rows() + 1; 20Mat resultMat = new Mat(resultRows, resultCols, CvType.CV_32FC1); 21 22Imgproc.matchTemplate(inputCV.getColor(), templateCV.getColor(), resultMat, Imgproc.TM_CCOEFF_NORMED); 23 24size(1200, 900); 25image(inputImage, 100, 0); 26image(templateImage, 10, 10); 27 28 29MinMaxLocResult mmlr = Core.minMaxLoc(resultMat); 30 31if (mmlr.maxVal > 0.9) { 32 println("Val: " + mmlr.maxVal); 33 stroke(255, 0, 0); 34 strokeWeight(3); 35 noFill(); 36 rect((int)mmlr.maxLoc.x + 100, (int)mmlr.maxLoc.y, templateMat.cols(), templateMat.rows()); 37} 38 39/////////////////////////////////////////////////////////////////// 40//カメラの映像を出力 41/////////////////////////////////////////////////////////////////// 42import processing.video.*; 43 44Capture cam; 45 46void setup() 47{ 48 /* 画面サイズ */ 49 size(640, 480); 50 /* 接続されている全てのカメラの名前を取得 */ 51 String[] cams = Capture.list(); 52 /* カメラのキャプチャー */ 53 cam = new Capture(this, cams[0]); 54 cam.start(); 55} 56 57void draw() 58{ 59 /* カメラの画像を取得 */ 60 if (cam.available()) 61 { 62 cam.read(); 63 } 64 /* 画像を表示 */ 65 image(cam,0,0,640,480); 66}

試したこと

loadImageの部分にどうにかしてカメラの映像の画像?image(cam,0,0)を入れようとしているのですが、うまくいきません。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

まずは、
Processing IDEのメニュー[ファイル]-[サンプル...]で、[Contributed Libraries]の下に[OpenCV for Processing]としてサンプル群があるので、いろいろ眺めてみて下さい。
LiveCamTestとか結構参考になると思います。

投稿2019/12/21 07:11

thkana

総合スコア7639

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問