前提・実現したいこと
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/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。