2016-10-09 38 views
-4

私は100枚の画像を平均化し、10個のJPEGファイルこのループを解除するにはどうすればいいですか?

int main(int argc, char** argv) 
{ 
    VideoCapture cap("C:/Pics/test_%d.jpeg"); 
    while (cap.isOpened()) 
    { 
     Mat img; 
     cap.read(img); 
     // process(img); 
     if (img.empty()) break; 

     for (int i = 0; i < 10; i++) 
     { 
      Mat avgImg(480, 640, CV_32FC3, Scalar()); 
      for (int avgnumb = 10 * i; avgnumb < (10 * i) +10; ++avgnumb) 
      { 
       cv::accumulate(img, avgImg); 
      } 
      avgImg = avgImg/10; 
      avgImg.convertTo(avgImg, CV_8UC3); 
      char filename[100]; 
      sprintf(filename, "C:/AvgPics/test_%d.jpeg", i); 
      imwrite(filename, avgImg); 
     } 
    } 

    return 0; 
} 

にそれらを保存するには、このコードを持っているしかし、9日のファイルを保存し終えた後、それを破ると、何度も何度も保存したファイルを上書きしていきません。誰もがこれで私を助けることができますか?どうもありがとう。

+0

「while」を削除する – Amit

+0

あなたは2つのループを持っています。あなたは 'while'を忘れましたか? – PaulMcKenzie

+0

なぜ 'VideoCapture'オブジェクトコンストラクタのフォーマット文字列がありますか?その「%d」の議論はどのようになりますか?あなたはそれをどこに置いていますか? –

答えて

0

私はばかです。 while

+0

これは正しい答えです!私はもちろん、2番目の部分を意味します。 – xinaiz

関連する問題