私はopencvに新しい、おそらく何か理解していないだけのImがあります。 私は手紙aを待っているウェイトキーと、休憩して出口を出す別のものを持っています。 1つ、またはもう1つは正常に動作するようですが、両方はうまく動作しないようです。コンパイラのエラーや警告は出ません。含まれているコードは、列挙された画像のシリーズになりますが、キーボードの文字「q」を押すと閉じることはありません。 私は何が間違っていますか?opencv waitkeyが応答していませんか?
#include <stdio.h>
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv){
VideoCapture cap;
// open the default camera, use something different from 0 otherwise;
if(!cap.open(0))
return 0;
// Create mat with alpha channel
Mat mat(480, 640, CV_8UC4);
int i = 0;
for(;;){ //forever
Mat frame;
cap >> frame;
if(frame.empty()) break; // end of video stream
imshow("this is you, smile! :)", frame);
if(waitKey(1) == 97){ //a
String name = format("img%04d.png", i++); // NEW !
imwrite(name, frame);
}
if(waitKey(1) == 113) break; // stop capturing by pressing q
}
return 0;
}
プログラムを終了するにはどのように 'q'キーを取得できますか? the documentationから
「waitKey(1)== 113」を「waitKey(0)== 113」に変更します。この方法では、1 msだけでなく、キーストロークを待つことになります。 – DimChtz