使用 OpenCV 3.0 + Visual Studio 2013 镜像网络摄像头流

Webcam Streaming is mirrored using OpenCV 3.0 + Visual Studio 2013

每次我编译此代码时,网络摄像头流都被镜像,就像我举起右手一样,看起来好像是我的左手在屏幕上,经过几次重新编译后出现错误消息并且代码再也不能用了。

错误: Camera.exe 中 0x00007FFB3C6DA1C8 处的未处理异常:Microsoft C++ 异常:cv::Exception 在内存位置 0x000000D18AD5F610。

除了中断进程之外别无选择。

代码:

#include <opencv2/highgui/highgui.hpp>
#include <opencv\cv.h>

using namespace cv;


int main(){

    Mat image;

    VideoCapture cap;

    cap.open(1);

    namedWindow("Window", 1);

    while (1){

        cap >> image;

        imshow("window", image);

        waitKey(33);

   }


}

不知道是不是我的代码有问题刚开始学习opencv!

#include <opencv2/highgui/highgui.hpp>
#include <opencv\cv.h>

using namespace cv;


int main(){

    Mat image;

    VideoCapture cap;

    cap.open(1);

    namedWindow("Window", 1);

    while (1){

        cap >> image;
        flip(image,image,1)
        imshow("window", image);

        waitKey(33);

   }


}

只需水平翻转图像即可Find More Here

当您的图像在垂直 (/x) 轴上镜像时没有任何问题(我猜在您的示例中您使用的是 built-in(笔记本电脑)网络摄像头)。

用于捕获和显示图像的(非常)简单的代码如下:

// imgcap in opencv3
#include "opencv2/highgui.hpp"
#include "opencv2/videoio.hpp"

int main() {

    cv::VideoCapture cap(0); // camera 0
    cv::Mat img;
    while(true) {
        cap >> img;
        cv::flip(img,img,1);
        cv::imshow("live view", img);
        cv::waitKey(1);
    }
    return 0;
}

使用 OpenCV 3 时,您应该包括 headers,例如: #include <opencv2/highgui.hpp>