如何打破这个循环?

时间:2016-10-09 19:04:59

标签: c++

我有这个代码平均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个文件的保存后,它也不会中断并继续反复覆盖保存的文件。任何人都可以帮助我吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

我是个白痴。只需删除while

即可