对于OpenCV,我的Python代码可以显示网络摄像头,但是我的C ++无法显示

时间:2018-07-14 03:51:10

标签: python c++ opencv webcam

我在使用OpenCV 3.3.1,Python 3,最新的C ++和Visual Studio 2017的Windows 10 64位上。

这是我的Python 3代码,可以正确显示我的网络摄像头:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

ret, last_frame = cap.read()
row, col, ch = last_frame.shape

if last_frame is None:
    exit()

while(cap.isOpened()):
    ret, frame = cap.read()

    if frame is None:
        exit()

    cv2.imshow('frame', frame)

    if cv2.waitKey(33) == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

以下是不显示我的网络摄像头的C ++代码。此代码仅显示灰色框:

#include "opencv2/opencv.hpp"
using namespace cv;

#include <iostream>
using namespace std;

int main()
{
    VideoCapture cap(0); // 1st device, DSHOW
    while (cap.isOpened())
    {
        Mat frame;
        cap >> frame;
        imshow("ocv", frame);

        int k = waitKey(10);
        if (k == 27) break;
    }
    return 0;
}

有人可以帮我解决这个问题吗?我尝试将C ++修改为VideoCapture cap(1),VideoCapture cap(2),VideoCapture cap(3)和VideoCapture cap,但仍然无法从网络摄像头中获取实时视频。

正在运行的Python代码的屏幕截图: Python Code

正在运行的C ++代码的屏幕截图: Cpp Code

1 个答案:

答案 0 :(得分:1)

我终于有了可以针对Visual Studio C ++ OpenCV正常显示的网络摄像头。这是我所做的:

  1. 使用C ++和Python工具安装Visual Studio 2015。
  2. 下载并解压缩OpenCV 3.4.2
  3. 添加到路径C:\ <...> \ opencv \ build \ x64 \ vc14 \ bin
  4. 在Visual Studio 2015中,创建一个Win32 CONSOLE应用程序。
  5. 右键单击您的项目,然后选择属性。进行以下更改:

a。 C / C ++-常规-其他包含目录:C:\ <...> \ opencv \ build \ include

b。链接器-常规-其他库目录:C:\ <...> \ opencv \ build \ x64 \ vc14 \ lib

c。链接器-输入:opencv_world342d.lib

谢谢大家的回应!