opencv加入rect后无法打开摄像头

代码如下


#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
    VideoCapture video(2);
    if(!video.isOpened())
    {
        cout << "图像错误" << endl;
        return -1;
    }
    while(1)
    {
        Mat img;
        video >> img;
        if(img.empty())
        {
            break;
        }
        Mat img1, img2;
        img.copyTo(img1);
        img.copyTo(img2);
        blur(img, img, Size(9, 9));
        cvtColor(img, img, COLOR_BGR2HSV);
        inRange(img, Scalar(26, 43, 46), Scalar(34, 255, 255), img);
        Mat canny;
        Canny(img, canny, 80, 160, 3, false);

        Mat kernel = getStructuringElement(0, Size(3, 3));
        dilate(canny, canny, kernel);
        morphologyEx(canny, canny, MORPH_OPEN, kernel);

        vector<vector<Point>> contours;
        vector<Vec4i> hierarchy;
        findContours(canny, contours, hierarchy, 0, 2, Point());
        int ccc = 0;
        double maxm = 0;
        int j = 0;
        for (int i = 0; i < contours.size(); i++)
        {
            double mianji = contourArea(contours[i]);
            if (mianji > maxm)
            {
                maxm = mianji;
                j = i;
            }
            if (i == (contours.size() - 1)) {
                ccc = j;
            }
        }
        Rect rect = boundingRect(contours[ccc]);
        rectangle(img1, rect, Scalar(0, 0, 255), 2, 8, 0);
        imshow("img1",img1);
        waitKey(1000/video.get(CAP_PROP_FPS));
    }
    waitKey();
    return 0;
}

删了rect那就可以开摄像头了 不然他就闪退