为什么我看不到捕获的图像?

Why can I not see captured image?

我遇到了一个奇怪的问题。

我能够加载和显示图像。此外,我能够捕获图像,但在显示器中看不到图像。摄像头连接正常,拍摄图像正常,但看不到图像。

我的系统是 window 10-64 位,opencv 3.3.0。

代码如下。

int main()
{

    cv::VideoCapture cap(0);

    if (!cap.isOpened()) {
        std::cerr << "camera didn't connected." << std::endl;
        return 0;
    }

    int nFrame = 0;

    cv::Mat image = cv::imread("orgin102.jpg");

    cv::imshow("image", image);

    cvWaitKey(0);

    while (true) {

        cv::Mat origin;

        cap >> origin;

        //flip orign 
        flip(origin, origin, 1);

        nFrame++;

        cv::imshow("image", origin);

        //if (cv::waitKey(27) >= 0) break;

        cvWaitKey(0);
    }
    return 0;
}

我通过更改 cap 的参数解决了这个问题。

这里是

cv::VideoCapture cap(1);

对于某些系统,0 索引显示为第一个摄像头。对于其他人,索引 1 显示第一台摄像机。

希望这对您有所帮助。 干杯!