ここは私のループ構造です。Javaで3つのネストループを編成する方法は?
int k = 0;
do {
....
do {
fc = Recognize();
....
do {
....
} while(fc != false);
k++;
} while(k != 20);
if (k == 20) {
return;
}
} while(true);
私はどちらかk
は20かfc
真等しいと等しいときに、すべてのループを終了する必要があります。
これを行うにはさまざまな方法を試しましたが失敗しました。上記のコードは私の最後の試みです。それを修正する際に助けが必要です。
grabber.start();
int k=0;
do {
grabber.stop();
grabber.start();
img = grabber.grab();
if (img != null) {
canvas.showImage(img);
canvas.pack();
cvWaitKey(0);
}
do {
fc= Recognize();
grabber.start();
do {
img = grabber.grab();
if (img != null) {
CvHaarClassifierCascade cascade = new
CvHaarClassifierCascade(cvLoad(XML_FILE));
CvMemStorage storage = CvMemStorage.create();
CvSeq sign = cvHaarDetectObjects(img,
cascade,storage, 1.5, 3,CV_HAAR_DO_CANNY_PRUNING);
cvClearMemStorage(storage);
total_Faces = sign.total();
for(int i = 0; i < total_Faces; i++){
CvRect r = new CvRect(cvGetSeqElem(sign, i));
cvRectangle (img,
cvPoint(r.x(),r.y()),
cvPoint(r.width()+r.x(),r.height()+ r.y()),
CvScalar.RED,2,CV_AA,0);
x=r.x();
y=r.y();
h=r.height();
w=r.width();
}
cvFlip(img, img, 1);
canvas.showImage(img);
canvas.pack();
cvWaitKey(0);
}
} while(fc!=false);
k++;
} while(k!=21);
} while(true);
}
ある;'、あなたがしているとき第2レベルの 'do'は' k ++ 'を持ち、同じdo-while-loopをチェックすると 'while(k!= 20);'この時点で 'k'は21で立ち上がります。あなたが投稿したコードスニペットにこのdo-whileループを残すことは決してありません。 –
@Kevin Cruijssen。それはk = 0です。私のコードで。私はその投稿を書いたときに間違っています。 –
まだ非常に混乱しています...このコードは何をしていますか?あなたがイメージをつかんでいて、それがヌルでないなら、それを表示して、次にあなたは何か「認識」して別の(?)イメージをつかみます。この後者の画像がヌルでない場合は、それについて何らかの分析を行い、何かを見つけたら、見つけたオブジェクトのそれぞれにレクラグルを付けます。あなたがしたいことを言葉で説明してください。 – Johnny